왠 XXX같은 사람이 이상한 질문을 해서 정리하는 글
✔ Spring Boot의 생명주기
- 일반적으로 Spring 과 동일하다. 간편하게 축약해봄
- 초기화 (Initialization): Spring Boot 애플리케이션이 시작될 때, 애플리케이션 컨텍스트를 설정하고, 빈(Bean)들을 등록하며, 다양한 설정이 로드
- 실행 (Execution) : 등록된 빈들이 초기화되고, 서비스들이 실행됨. 웹 애플리케이션의 경우 내장 서버가 시작되고, HTTP 요청을 받을수 있음
- 종료 (Shutdown) :리소스의 정리 및 해제가 이루어지고, 애플리케이션 종료 전에 후처리 작업이 수행
- 이벤트 (Events): 이벤트 리스너를 등록하여 특정 이벤트가 발생할 때 특정 작업을 수행
Spring Boot 애플리케이션은 주로 스프링 프레임워크의 컴포넌트들을 기반으로 하며, 스프링의 일반적인 라이프사이클을 따른다.
내장 서버의 시작 및 종료, 빈의 초기화 및 소멸 등을 관리해준다.
✔ Spring 의 메모리관리
결국 스프링도 자바고.... JVM 에 의해 관리가된다.
GC가 알아서 처리해준다.
여기서 조금 더 짚고 넘어가자면 @Bean(빈객체)는 어디에 할당이 될까?
이놈은 싱글톤이므로 Heap 영역에 할당된다.
(싱글톤 : 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 패턴)
Heap 영역에 있기 때문에 가비지 컬렉션의 대상이 될 때까지 유지된다.
일반적으로 애플리케이션 컨텍스트가 종료되면 해당 빈도 함께 소멸됨
그외에 프리미티브변수(원시변수), 메소드변수등은 Stack에 저장될꺼고...
인스턴스 및 오브젝트들은 물론 Heap 으로 가겠지,
static 같은 변수들은 static(메소드,데이터) 영역으로...
프로그램이 종료되면 없어진다.
라고 대답했는데 XXX같은 사람은 아니라고 박박 우긴다. 대체 뭘 물어본거지?
'web > SpringBoot' 카테고리의 다른 글
@Secured vs @PreAuthorize, @PostAuthorize (0) | 2024.04.01 |
---|---|
[WebClient] Memory Leak (0) | 2023.12.15 |
[SpringBoot] 다중 유저 요청처리 (1) | 2023.12.15 |
[WebClient] Block vs Subscribe vs Tuple (1) | 2023.12.04 |
[SpringBoot] ConvertUtils 클래스 (0) | 2023.12.01 |