
230
돼”라고 생각한다. 진짜 문제는 즉시 발견되지 않으며 발견한 후에는 실제 고장이 어디에서 발
생한 것인지를 알아내려고 여러 커밋을 샅샅이 살펴봐야 한다.
6
테스트 주도 개발과 자체 코드 시험이
CI
에 필수적이다.
11
장에서 코드와 구성 정의를 포함해
시험을 개발하는 데 이러한 관례를 사용하는 방법을 논의한다.
TDD
와
CI
는 몇 주 후에야 실
수의 대가를 치르는 일 없이 즉시 실수를 잡아낼 수 있게 해주는 안전망이다.
10
.
3
.
4
인프라를 위한 지속적 통합
코드로서의 인프라에서
CI
는 정의 파일, 스크립트, 도구의 변경뿐만 아니라 인프라를 운영하려
고 만들어 관리하는 구성까지도 지속해서 시험하는 것을 수반한다.
이들 모두는
VCS
에서 관리해야 한다. 병합하고 시험해야 할 코드의 ‘부채
debt
’가 증가하지 않도
록 가지치기는 가급적 피해야 한다. 매 커밋마다 일정 수준의 시험을 실행해야 한다.
11
장에서 인프라와 시스템에 관한 여러 계층의 시험을 구조화하는 방법인 ‘시험 피라미드’를
소개할 것이다 (
242
페이지의 ‘시험 구조화하기: 시험 피라미드’ 참고 ).
10.4
지속적 전달
지속적 통합은 단일 코드에서 이루어지는 작업을 처리한다. 같은 코드로 작업하는 개발자 다수
는 문제를 즉시 발견해 해결할 수 있도록 각자의 작업을 지속해서 병합한다. ...