본문 바로가기

분류 전체보기

(4)
[자료구조] 우선순위큐(PriorityQueue)에 대한 고찰 우선순위 큐(Priority Queue)는 각 요소에 우선순위(priority)를 부여하여, 우선순위가 가장 높은 요소가 먼저 처리되는 자료구조이다. 일반적인 큐와 다른 점은, 큐에서는 FIFO(First In, First Out) 원칙에 따라 요소가 처리되지만, 우선순위 큐에서는 우선순위에 따라 요소가 처리된다. 우선순위: 각 요소는 우선순위를 가지고 있으며, 우선순위가 높은 요소가 먼저 큐에서 제거된다.동적 크기: 우선순위 큐는 동적으로 크기가 변할 수 있으며, 요소를 추가하거나 제거할 수 있다.구현 방식: 우선순위 큐는 보통 힙(Heap) 자료구조를 사용하여 구현된다. 최소 힙(Min-Heap)이나 최대 힙(Max-Heap)을 사용하여 우선순위를 관리한다.우선순위 큐는 동적으로 크기가 변할 수 있다..
[Spring] @RequiredArgsConstructor에 @Qualifier 적용하기 @RequiredArgsConstructor는 Lombok에서 제공하는 어노테이션으로, 클래스의 final 필드나 @NonNull로 선언된 필드에 대해 자동으로 생성자를 생성해주어 의존성 주입을 간편하게 만들어준다. 문제의 코드는 아래와 같다.@Service@RequiredArgsConstructorpublic class MyService { @Qualifier("restClientSSE") private final RestClient restClient; ...} @Qualifier를 사용하여 특정 빈(restClientSSE)을 주입하여 "http://localhost:8080/"의 baseUrl을 포함한 API를 호출하려고 했는데, 다른 빈(restClient)이 주입되어 "www...
[Spring] Spring Security Filter 예외 핸들링 Spring Security에서 JWT를 통한 인증 / 인가를 위해 FilterChain 단 개발 중 JWT가 만료되어서 블랙리스트에 있는 AccesToken일 경우 예외를 발생시켜 아래와 같이 ExceptionHandler에서 핸들링하려고 하였다. 하지만 원하는 예외 메세지 "ACCESS_TOKEN_IS_BLACKLIST("블랙리스트에 포함된 Access Token 입니다." 가 출력되지 않았다. 왜일까? 결론부터 말하면, 필터에서 발생한 예외는 필터 체인 내에서 처리되어야 하며, 필터가 실행되는 시점에서 발생한 예외는 DispatcherServlet을 넘어가지 않기 때문에 @RestControllerAdvice 같은 컨트롤러 기반의 예외 처리기가 이를 인식하지 못한다.@RestControllerAdv..
[Spring] Logback 로그 관리 (logback-spring.xml 설정) 프로젝트를 진행하면서 로그 파일의 중요성을 체감하지 못했다. 배치 서버를 개발하면서 배치 로직이 잘 실행되는지, 만약 에러가 발생할 경우 로그를 명확하게 분석하기가 어려웠다. 별도의 설정 없이도 Logback을 통해 로그를 콘솔에 출력해 오다가 배포를 진행하면서 이전의 로그를 찾는데 불편함을 느끼면서 로그 관리의 필요성을 깨달았다.로그백(Logback) 설정을 하는 이유는 여러 가지가 있으며, 특히 클라우드 서버와 같은 환경에서 로깅을 효율적으로 관리하고 분석하기 위한 중요성이 크다. 1. 유연한 로그 레벨 관리로그 레벨 지정: 로그백을 사용하면 DEBUG, INFO, WARN, ERROR 등 다양한 로그 레벨을 설정할 수 있다. 이를 통해 필요한 정보만 필터링하여 볼 수 있어, 문제를 빠르게 파악하고 ..