176
자바 개발자를 위한 데브옵스 툴
업데이트를 반영하지 않은 과거 코드를 기준으로 테스트를 수행하면 막상 최신 코드에 머지하
는 순간 비호환성이 발견된다.
개발자 본인이 발견하지 못한 문제가 다른 이의 개발 환경에서 빌드를 방해하는 경우도 있다.
부끄러운 고백을 하자면, 과거에 필자는 코드를 커밋하며 신규 파일이나 리소스를 누락하는 실
수를 여러 번 저질렀다. 필자의 빌드나 테스트는 문제가 없었지만 필자의 변경 사항을 가져간
다른 개발자는 갑자기 빌드나 테스트가 실패하여 이를 해결하는 데 골치를 썩였을 것이다. 비
슷한 사례로, 제한된 환경이나 특정
OS
에서만 작동하도록 개발된 코드도 여러 개발자를 힘들
게 한다.
누구나 운이 좋지 않은 날이 있다. 가장 이상적이고 안정적인 개발 환경에서도 문제는 발생하
는 법이다. 손상된 빌드는 마치 바이러스처럼 은연중에 팀 전체에 스며든다. 통합과 관련된 장
애는 주변으로 전파되지 않도록 사전에 완화 전략을 세워 두어야 한다. 가장 일반적인 대책은
자동 빌드 서버 또는
CI
서버 도입이다. 이러한 서버는 통합 빌드와 테스트를 수행하며 여러 개
발 팀이 공유한다. 또한 코드 커밋 후 통합 빌드 결과를 보고하는 역할도 한다.
젠킨스
Jenkins
, 서클
CI
CircleCI
, 팀시티
TeamCity
, 뱀부
Bamboo
깃랩
GitLab
등은 모두 널리 알려진
CI
서버다.
JFrog
파이프라인처럼 한층 강화된 기능을 제공하는 시스템도 등장했다. 그러나 무엇
보다
CI
서버는 코드 변경 사항을 감시하는 ...