
백엔드
심볼릭 링크로 스프링 배치 무중단 배포하기
두줄요약
Spring Batch Job 실행 중 배포가 겹치면 jar 파일 변경으로 예외가 발생하는 문제를 다루었습니다. 심볼릭 링크를 활용해 무중단 배포를 적용한 과정을 소개했습니다.
문제 상황
- Spring Batch Job 실행 중 배포가 진행되면 실행 중인 jar 파일이 업데이트·제거되며
NoClassDefFoundError,ClassNotFoundException발생 - Jenkins로 주기 실행되는 팀 배치 서버에서 배포와 Job 실행이 겹칠 때 비정상 종료 또는 배치 실패 발생
해결 방법
- 실행 중인 배포 대상 jar와 실제 실행 경로를 분리해 배포 중 파일 변경 영향을 줄이는 방식 검토
- 심볼릭 링크를 활용한 무중단 배포 적용 과정을 공유하는 글
