
157
5
장
지속적 통합
CHAPTER
5
지속적 통합
멜리사 맥케이
항상 새롭게 실수하라.
- 에스더 다이슨
1
2
장에서 여러분은 소스 관리와 공통 코드 리포지터리의 중요성을 배웠다. 소스 관리 시스템 구
축과 정착은 시작에 불과하다. 소프트웨어가 전달하는 사용자 경험의 수준을 완벽의 경지까지
끌어 올리려면 앞으로 몇 단계를 더 거쳐야 한다.
프로그래머 개인이 소프트웨어를 개발하며 수행하는 작업들을 소프트웨어 개발 라이프 사이클
에 따라 정리해보자. 먼저 소프트웨어의 특정 기능이나 버그 픽스의 수용 기준을 결정한 다음,
단위 테스트와 실제 코드를 작성하고 코드베이스에 추가한다. 다음으로 모든 단위 테스트를 컴
파일하고 실행하며 신규 코드를 검증한다. 코드는 개발 의도에 맞게 작동해야 하며 단위 테스
트 정의를 만족시키는 동시에 기존 기능을 손상시키지 않아야 한다. 모든 테스트를 통과하면
애플리케이션을 빌드, 패키징하고 품질 검수
quality
assurance
(
QA
) 환경에 올려 통합 테스트 방식
으로 점검한다. 마지막으로, 꾸준히 유지 관리된 테스트 스위트
suite
가 최종 합격 통지를 내리면
마침내 소프트웨어를 프로덕션 환경에 전달하거나 배포할 수 있다.
실제로 소프트웨어가 프로덕션에 깔끔하게 안착하는 경우는 거의 없다. 필자를 포함한 유경험자
들은 누구나 아는