개발놀이터
온라인 쇼핑몰 ver.3 (4) 클래스 로더 Warm Up, JIT 컴파일러 Warm Up 본문
0. Introduce
- 배포를 진행할 때 고려해야 하는 점을 공부하다 Warm Up 이라는 개념에 대해서 알게 되었습니다. 그리고 클래스 로더, JIT 컴파일러를 Warm Up 하는 방법에 대해서 학습하고 실습했습니다.
1. 기존 프로젝트의 배포
- 배포를 진행하고 클래스 로더의 지연로딩, JIT 컴파일러의 활성화 조건을 만족하지 않았습니다.
2. 기존 프로젝트의 문제
- 배포를 하고 난 조금 뒤에는 지연 시간이 안정되지만 배포를 한 직후에는 지연 시간이 많이 발생할 수 있는 문제점을 파악했습니다.
3. ver.3 에서 해결한 점
- ApplicationRunner를 구현함으로써 클래스 로더의 지연 로딩을 해결했습니다.
- Jenkins의 CI 파이프 라인에서 curl 명령어를 통해 많은 요청이 예상되는 API를 warm up 시켰습니다.
- 모든 warm up이 끝나기 전에는 Interceptor를 이용해 400 코드로 내려주고, 모든 warm up이 끝난다면 200 코드로 내려줘서 health check를 진행했습니다.
4. 느낀점
- 배포를 진행할 때 다양한 것들을 고려해야 한다는 것을 알게 되었습니다. 이런것도 이슈가 되는구나... 하는 감정을 느끼게 되었습니다. 아직 배울게 많이 남아있다는 것을 실감하게 되는 프로젝트였습니다.
'사이드 프로젝트 > 온라인 쇼핑몰 ver.3' 카테고리의 다른 글
온라인 쇼핑몰 ver.3 (5) 모니터링 환경 구축 (0) | 2023.07.18 |
---|---|
온라인 쇼핑몰 ver.3 (3) Graceful Shutdown (0) | 2023.07.08 |
온라인 쇼핑몰 ver.3 (2) : 기술 선택 이유 (0) | 2023.06.16 |
온라인 쇼핑몰 ver.3 (1) : Docker + Nginx + Jenkins 무중단 배포 (0) | 2023.06.12 |