개인 PC에 의존하던 수동 배포를 공통 빌드 환경과 실행 이력이 남는 Jenkins 작업으로 전환했습니다.
<aside>
개인 PC 수동 배포를 팀 공통 Jenkins 작업으로 전환했습니다.
시기: 2023.05 도입 · 2024년 초 안정화 · 2026년 고도화
기술: Jenkins, SVN, Git, Maven, SSH, Shell
SVN에서 배포할 코드를 취합해 개인 PC에서 빌드하고, SFTP로 전송한 뒤 SSH로 접속해 배포·확인했습니다. 개발 중인 코드가 섞이지 않도록 배포용 소스를 따로 유지해야 했습니다.
자체 라이브러리 추가나 의존성 변경 때 PC에서는 실행되지만 기존 배포 환경에서는 동작하지 않는 경우가 있었습니다. 배포 준비 시간이 길고 어떤 코드로 배포했는지 추적하기도 어려웠습니다.
자체 라이브러리를 pom.xml로 관리하고 Jenkins 서버에 보관한 라이브러리를 빌드에서 참조하도록 구성했습니다. 빌드 산출물을 SSH로 전송하고 서버의 셸 스크립트를 실행해 배포하도록 연결했습니다.
Jenkins를 직접 구축·테스트한 뒤 배포 절차를 팀에 공유했습니다. 이후 팀원들도 같은 작업을 실행해 개발 환경에 배포하고 있습니다.
| 항목 | 적용한 방식 |
|---|---|
| 실행 | 한 번의 Jenkins 실행으로 빌드·전송·배포 처리 |
| 추적 | Jenkins 빌드 기록과 SVN 변경 이력을 함께 확인 |
| 이전 버전 | 서버에 이전 배포본을 일정 기간 보관 |
| 오래된 버전 | 이력을 확인해 해당 코드로 다시 빌드 |
오래된 버전은 SVN 이력의 해당 revision으로 재빌드합니다. 당시 WAR의 장기 보관은 운영 범위에 포함하지 않았습니다.
2026년에는 SVN 원본을 유지하는 Git 미러 동기화와 커밋 설명 보강의 야간 실행으로 활용 범위를 넓혔습니다. GitSync는 원본 이력을 보존하고 AI 해설을 별도 관리하며, Jenkins는 이 작업의 반복 실행과 이력을 관리합니다.