분류 전체보기153 Logback 설정하기 Logback 이란? - SLF4J(Simple Logging Facade for Java)라는 인터페이스를 구현하는 구현체이다. ( Simple Logging Facade for Java provides a Java logging API by means of a simple facade pattern. The underlying logging backend is determined at runtime by adding the desired binding to the classpath and may be the standard Sun Java logging package java.util.logging, log4j, reload4j, logback or tinylog. ) - 즉 Logging Frame.. Spring Boot/Logback 2023. 1. 15. Feign Client - Error Decoder 및 logger DemoFeignErrorDecoder public class DemoFeignErrorDecoder implements ErrorDecoder { private final ErrorDecoder errorDecoder = new Default(); @Override public Exception decode(String methodKey, Response response) { HttpStatus httpStatus = HttpStatus.resolve(response.status()); if (httpStatus == HttpStatus.NOT_FOUND) { System.out.println("[DemoFeignErrorDecoder] Http Status = " + httpStatus); throw.. Spring Boot/Feign Client 2023. 1. 15. Feign Client - Interceptor Feign Client의 인터셉터 설정을 해보겠습니다. 인터셉터의 경우 우리가 요청을 보낼 때 한 곳에서 요청에 필요로 하는 공통적인 설정을 할 수 있는 곳이라 생각하시면 됩니다. DemoFeignInterceptor @RequiredArgsConstructor(staticName = "of") public class DemoFeignInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate template) { //get 요청일 경우 if (template.method() == Request.HttpMethod.GET.name()) { System.out.println("[GET] [DemoFeignInt.. Spring Boot/Feign Client 2023. 1. 15. Feign Client 기본 구성 및 흐름 Feign 이란 ?선언적으로 사용할 수 있는 Clent이다. (= Feign is a declarative web service client. ) ref : https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html 이 글을 작성하게 된 이유는 백엔드 프로젝트를 하다 보면 외부 API와 통신을 할 일이 생기게 됩니다. 그럴 때 자주 사용하는 것이 HttpURLConnection이나 RestTemplate입니다. 두 개다 사용해봤지만 HttpURLConnection 은 HTTP 한번 호출하기 위해서 많은 코드를 작성해야 생산성이 떨어지는 단점이 있고 RestTemplate는 spring5부터는 Deprecated 되어 있습니다. 그래.. Spring Boot/Feign Client 2023. 1. 14. [Java] Mac에서 여러개의 Java 버전 확인하기 1. 설치된 Java 버전 확인하기 터미널에 접속해줍니다. 다음과 같은 명령어를 입력합니다. /usr/libexec/java_home -V 그러면 다음과 같이 2개의 버전이 나옵니다. 저의 경우는 Oracle의 Java 11 버전과 Aws의 자바 11버전 두개가 나옵니다. 이 중 기본 JDK로 설정된 버전을 확인하기 위해선 아래와 같은 명령어를 사용하면 됩니다. java -version 그러면 현재 openJDK 11이 기본 버전으로 설정되어 있는 것을 확인할 수 있습니다. Java 2022. 12. 13. [Java] Stream API 활용 및 사용법 총 정리 (3) 1. FlatMap을 통한 중첩 구조 제거 [ FlatMap이란? ] 만약 우리가 처리해야 하는 데이터가 2중 배열 또는 2중 리스트로 되어 있고, 이를 1차원으로 처리해야 한다면 어떻게 해야 할까? 이러한 경우에 map을 이용해도 결과는 2중 Stream의 형태일 것이다. 이처럼 중첩 구조를 한 단계 제거하기 위한 중간 연산이 필요한데, 이것이 바로 flatMap이다. flatMap은 Function 함수형 인터페이스를 매개 변수로 받고 있다. 예를 들어 다음과 같이 2중 리스트가 존재한다고 할 때, 이를 1중 리스트로 변환하기 위해서 flatMap을 이용할 수 있다. // flatMap 함수 Stream flatMap(Function Java/stram-api 2022. 12. 11. [Java] Stream API 활용 및 사용법 총 정리 (2) 1. Stream 생성하기 앞서 설명한대로 Stream API를 사용하기 위해서는 먼저 Stream을 생성해주어야 한다. 타입에 따라 Stream을 생성하는 방법이 다른데, 여기서는 Collection과 Array에 대해서 Stream을 생성하는 방법에 대해 알아보도록 하겠습니다. [ Collection의 Stream 생성 ] Collection 인터페이스에는 stream()이 정의되어 있기 때문에, Collection 인터페이스를 구현한 객체들(List, Set 등)은 모두 이 메소드를 이용해 Stream을 생성할 수 있다. stream()을 사용하면 해당 Collection의 객체를 소스로 하는 Stream을 반환한다. // List로부터 스트림을 생성 List list = Arrays.asList(.. Java/stram-api 2022. 12. 10. [Java] Stream API 활용 및 사용법 총 정리 (1) - 람다식과 함수형 인터페이스 1. 람다식(Lamda Expression) 이란? Stream 연산들은 매개변수로 함수형 인터페이스(Functional Interface)를 받도록 되어있다. 그리고 람다식은 반환값으로 함수형 인터페이스를 반환하고 있다. 그렇기 때문에 우리는 Stream API를 정확히 이해하기 위해 람다식과 함수형 인터페이스에 대해 알고 있어야 한다. [ 람다식(Lamda Expression) 이란?] 람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있다. 익명함수(Anonymous Function)란 함수의 이름이 없는 함.. Java/stram-api 2022. 12. 10. [Docker] Docker MySQL사용하기 Docker에 MySQL 설치하기 DockerHub에 MySQL이 존재하기 때문에 별도의 설치 없이 바로 mysql을 사용할 수 있습니다. 만약 MySQL 이미지를 설치하려면 docker pull mysql:8.0.17 위와 같은 명령어를 치면 됩니다. docker pull mysql 시에는 최신 버전 'latest'를 가져옵니다! MySQL 컨테이너 생성하기 docker run -p 3306:3306 --name board -e MYSQL_ROOT_PASSWORD=1234 -e MYSQL_DATABASE=board -e MYSQL_USER=jisu -e MYSQL_PASSWORD=1234 -d mysql 포트 번호는 '3306'으로 여러개의 mysql을 만들시에는 3307:3306, 3308:3306 .. docker 2022. 10. 9. [Git] Permission denied (publickey). fatal- Could not read from remote repository IntelliJ에서 기존 프로젝트의 코드를 추가하고 늘 하던 대로 Github에 push를 시도하였다. 새로운 기기도 아니고, 어제까지 푸쉬를 했던 상황인데 오류가 나길래 구글링을 얼른 하였다. 에러 내용은 publickey가 permission denied 되어 remote repository로부터 읽을 수 없다는 내용이다.(맞겠지..) 해결방법은 새로운 ssh key를 생성하면 쉽게 해결된다. 해당 프로젝트 경로로 가서 (.git 파일이 있는 경로) git bash here를 하여 Git Bash를 실행해줍니다. ssh-keygen -t rsa -b 4006 -C "본인 깃허브 연동 이메일" 위와 같이 본인이 깃허브의 사용중인 이메일을 입력해줍니다. 그러면 위의 하얀줄 쳐져있는 부분이 출력됩니다. 처.. Spring Boot 2022. 10. 9. Spring WebSocket 클라이언트가 서버와 통신하는 방법 일반적인 클라이언트 - 서버 HTTP 통신은 클라이언트에서 서버로 Request 후 서버에서 클라이언트로 Response 해주고 연결을 끊어 버리는 식으로 통신을 합니다. 그렇다면 만약에 실시간 검색어 같은 기능은 어떻게 구현을 해야 될까요? 실시간 검색어는 주기적으로 업데이트가 되어야 합니다. 웹 소캣을 몰랐을 때는 폴링을 사용하여서 했을 거라 생각했습니다. 폴링 폴링이란 위키백과에서는 폴링(polling)이란 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다. 이 방식은 버스, 멀티포인트 형태와 같이 여러 개의 장치가 동일.. Spring Boot 2022. 9. 9. [DB] 함수(FUNCTUIN) 단일 행 함수의 주요 특징 ① SELECT, WHERE, ORDER BY 절에 사용 가능하다. ② 각 행(Row)들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴 한다. ③ 여러 인자(Argument)를 입력해도 단 하나의 결과만 리턴 한다. ④ 함수의 인자(Arguments)로 상수, 변수, 표현식이 사용 가능하고, 하나의 인수를 가지는 경우도 있지만 여러 개의 인수를 가 질 수도 있다. ⑤ 특별한 경우가 아니면 함수의 인자(Arguments)로 함수를 사용하는 함수의 중첩이 가능하다 단일 행 함수의 종류 단일 행 문자형 함수 사용 --단일행 문자형 함수 예시 SELECT LOWER('SQL Developer') AS "LOWER('SQL Developer')".. DB 2022. 8. 23. 이전 1 2 3 4 5 6 7 8 ··· 13 다음