개발놀이터

온라인 쇼핑몰 ver.3 (4) 클래스 로더 Warm Up, JIT 컴파일러 Warm Up 본문

사이드 프로젝트/온라인 쇼핑몰 ver.3

온라인 쇼핑몰 ver.3 (4) 클래스 로더 Warm Up, JIT 컴파일러 Warm Up

마늘냄새폴폴 2023. 7. 8. 00:10

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. 느낀점

  • 배포를 진행할 때 다양한 것들을 고려해야 한다는 것을 알게 되었습니다. 이런것도 이슈가 되는구나... 하는 감정을 느끼게 되었습니다. 아직 배울게 많이 남아있다는 것을 실감하게 되는 프로젝트였습니다.