스프링3 스프링 이벤트(Spring Event) 사용해보기 스프링 이벤트를 사용하면 관심사를 분리하고 패키지 간의 의존성을 줄일 수 있습니다. 개인 프로젝트를 진행하면서 이래저래 사용하고 있어 짤막하게 정리해보려고 합니다. 1. 스프링 이벤트 개요 다음의 내용은 스프링 공식 문서 Standard and Custom Events 항목의 소개를 번역한 것입니다. ApplicationContext의 이벤트 핸들링은 ApplicationEvent 클래스와 ApplicationListener 인터페이스를 통해 제공됩니다. ApplicationListener 인터페이스를 구현하는 bean이 컨텍스트를 통해 배포되면 ApplicationEvent가 컨텍스트에 발행될 때마다 bean이 알림을 받습니다. 이는 표준 옵저버 디자인 패턴입니다. 스프링 이벤트의 발행은 이벤트를 발행.. 2024. 2. 12. 로그 세팅하기 지난 금요일, 애니프렌즈 프로젝트의 백엔드와 프론트엔드 API 연동을 시작했습니다. 하지만 중간 중간 api가 연동이 잘 안될 때마다 문제를 확인하기 위해 INFO, WARN 여러 레벨의 로그가 기록된 콘솔을 들여다보는 것은 번거로운 일이라는 것을 절실히 느꼈습니다. 따라서 이번 이슈를 해결함으로써 달성하고자 하는 목표는 두 가지 입니다. 첫째, 예외와 API 요청 로깅하기 둘째, 로그 레벨 별 파일로 출력하기 이를 통해 클라이언트로부터의 요청에 응답하는 과정에서 어떤 문제가 발생했는지 훨씬 쉽게 파악할 수 있을 것이라 기대합니다. AOP 적용하기 프로젝트 초기, 예외 상황에 대해서는 AOP를 통해 로그를 남기는 것으로 계획하였습니다. 그러나 이번에 프론트엔드와 연동을 진행하며 어떤 요청이 들어왔는지에 .. 2023. 11. 19. 스프링 시큐리티 인증 프로세스와 데이터베이스 인증 처리 복습 AbstractAuthenticationProcessingFilter는 사용자의 인증을 위한 정보를 모아서 미완성의 Authentication 객체를 만듭니다. 구현체를 기준으로 다시 정리해봅시다. UsernamePasswordAuthenticationFilter는 HTTP 요청으로부터 인증을 위한 파라미터를 뽑아냅니다. 이를 토대로 인증되지 않았고 권한도 없는 UsernamePasswordAuthenticationToken 객체를 만듭니다. 생성된 Authentication 객체는 AuthenticationManager로 전달되어 인증 프로세스를 수행합니다. 다시 한 번 구현체를 기준으로 정리해봅시다. 생성된 UsernamePasswordAuthenticationToken 객체는 Pro.. 2023. 8. 12. 이전 1 다음