Spring/Spring Boot 4

Spring Boot의 SSE(Server-Sent Events) Graceful Shutdown 동작 원리

들어가기 전에 포스팅 계기앞전에 Graceful Shutdown의 동작원리에 이어서, SSE Graceful shutdown 이 어떻게 동작하는지 동작 원리를 명확히 알고자 포스팅하게 됐습니다.1. 일반적인 Graceful Shutdown vs SSE Graceful Shutdown일반적인 HTTP 요청과 SSE 연결의 가장 큰 차이점은 "연결 지속 시간"입니다.일반 HTTP 요청요청-응답 후 즉시 연결 종료대부분 짧은 시간 내 처리 완료Graceful Shutdown 시 진행 중인 요청만 완료하면 됨SSE 연결클라이언트와 서버 간 장기 연결 유지서버에서 클라이언트로 지속적인 이벤트 스트리밍명시적인 연결 종료 처리 필요2. SSE Graceful Shutdown 동작 과정2.1 Shutdown 시그널 수..

Spring/Spring Boot 2025.01.05

Spring Boot의 Graceful Shutdown 동작 원리와 구현 과정

들어가기 전에 포스팅 계기오랜만에 글 작성 해보려고 합니다. 최근에 사내에 SSE(Server-Sent Events)를 기반으로 개발한 기능이 있어서 Graceful shutdown 이 어떻게 동작하는지 추상적으로만 알고 있었고 동작 원리를 명확히 알고자 포스팅하게 됐습니다.본론Spring Boot 애플리케이션이 종료될 때, Graceful Shutdown은 중요한 역할을 합니다. 이는 처리 중인 요청을 안전하게 종료하고, 리소스를 정리하며, 종료 상태를 클라이언트에 알리는 메커니즘입니다. 본 글에서는 Spring Boot의 Graceful Shutdown이 어떻게 등록되고 실행되는지, 그리고 kill -15 신호를 받을 때 어떤 단계로 동작하는지 상세히 살펴보겠습니다.1. Graceful Shutdow..

Spring/Spring Boot 2024.11.24

@Log4j2 vs @Slf4j with log4j2

@Log4j2 vs @Slf4j with log4j2 프로젝트 진행 도중 @Log4j2 을 사용할지 @Slf4j로 log4j2.xml 을 설정해서 같이 사용할지 고민을 했었다. SLF4j(Simple Logging Facade For Java) 애플리케이션이 문자열을 기록하도록한다. Log4j2 API는 텍스트를 로깅하려는 경우 모든 CharSequence 로깅을 지원하지만 모든 개체를 있는 그대로 로깅하는 것도 지원한다 Log4j2 메시지 개체 로깅, Java 8 람다식 및 가비지 없는 로깅을 지원한다(CharSequence 개체 로깅시 문자열 생성방지) 뭘 써야할까? Log4j2와 slf4j는 똑같은 기능을 제공한다고 한다. Log4j2가 API와 구현 모듈로 분리되어서 SLF4J를 사용하지 않아도 ..

Spring/Spring Boot 2021.01.22

Spring Boot AutoConfiguration 자동 설정, 원리

Spring Boot AutoConfiguration 자동 설정, 원리 Spring Boot는 Spring과 마찬가지로 component-scan을 통해서 component들을 찾아서 bean을 생성한다. 이 과정으로 설정한 bean들(@Repository, @Service, @Controller, @RestController, @Configuration에 등록한 @Bean과 같은 설정들)이 생성된다 Spring Boot에서 미리 작성된 autoconfiguration에 의해 추가적인 bean들도 같이 생성된다. @SpringBootApplication @SpringBootApplication public class Application { public static void main(String[] ar..

Spring/Spring Boot 2021.01.03