반응형

applicationevent 3

[Spring Boot 공식 문서 정리] 46. ApplicationEvent를 운영 신호로 쓰는 법

45편에서는 애플리케이션 종료를 어떻게 설계해야 하는지를 다뤘다.이번 글에서는 실행과 종료의 경계에 위치한 주제, ApplicationEvent를 “운영 신호”로 사용하는 방법을 정리한다.ApplicationEvent는 잘 쓰면 운영 가시성을 높이는 도구가 되지만, 잘못 쓰면 구조를 망가뜨리는 트리거가 된다.1) ApplicationEvent의 본질은 “알림”이다ApplicationEvent는 Spring 내부에서 발생한 사실을 외부로 알리는 메커니즘이다.중요한 점은 이것이다. 이벤트는 “무언가를 하라”는 명령이 아니라, “무언가가 일어났다”는 신호다. 이 차이를 무시하는 순간, 이벤트는 제어 흐름의 일부가 되어버린다.2) Spring Boot가 제공하는 주요 라이프사이클 이벤트Spring Boot는 실..

[Spring 공식문서 정리] 42. Bean 생명주기 이벤트 활용 전략

41편에서는 @Conditional을 활용해 대규모 서비스에서 Bean을 “무엇을 생성할지” 설계하는 방법을 살펴봤습니다.이번 글에서는 그 다음 질문에 답해보겠습니다.“Bean이 생성되고, 준비되고, 종료되는 그 순간에 우리는 무엇을 할 수 있을까?”이 질문의 답이 바로 Bean 생명주기 이벤트입니다.1. Bean 생명주기 이벤트는 왜 필요한가대규모 서비스에서는 다음과 같은 요구가 자주 등장합니다.애플리케이션 기동이 끝났을 때 초기 작업 실행특정 Bean이 준비된 이후 후속 로직 수행종료 시 리소스 정리이 로직을생성자@PostConstruct에 넣기 시작하면, Bean의 책임이 급격히 무거워집니다.생명주기 이벤트의 목적은 명확합니다.“Bean 생성과 운영 로직을 분리한다”2. Spring에서 제공하는 주..

[Spring Boot 공식 문서 정리] 11. ApplicationEvent & Listener, 언제 쓰고 언제 쓰지 말아야 할까

10편에서는 Spring Boot를 “프레임워크처럼 의존하는 대상”이 아니라 이해한 뒤 활용해야 할 실행 환경으로 바라보는 관점을 정리했다.Part 2는 그 관점을 바탕으로, Spring Boot 애플리케이션의 실행과 운영을 더 깊게 이해하는 단계다.그 첫 주제는 실행 흐름과 항상 함께 등장하지만, 기준 없이 쓰이면 구조를 망치기 쉬운 기능, ApplicationEvent와 Listener다.1) ApplicationEvent는 “알림”이지 “제어 수단”이 아니다Spring Boot에는 애플리케이션 실행 과정에서 발생하는 여러 이벤트가 존재한다.이를 흔히 이렇게 오해한다.“이 시점에 이 코드가 실행되게 하고 싶다 → 이벤트 쓰자”하지만 ApplicationEvent의 본래 목적은 흐름을 제어하는 것이 아..

반응형