1. 일단 JVM Shutdown Hook 부터
JVM Shutdown Hook은 JVM이 종료되기 직전에 우리가 원하는 정리 작업을 마지막으로 실행할 수 있는 callback 메커니즘이다.
예를 들어
- 파일 저장
- 로그 flush
- DB 커넥션 종료
- 슬랙에 “서비스 종료될게~” 알림 보내기
등의 기능을 구현할 때 사용할 수 있다.
그럼 shutdown hook이 언제 호출되는가?
JVM은 다음과 같은 정상적인 종료 시점에 shutdown hook을 실행한다.
- System.exit() 호출
- Ctrl + C 로 종료
- SIGTERM (종료 시그널) 발생
- 정상적으로 main 함수 종료
등등