
소스 코드 저장소에서 코드 딜리버리하기
소스 코드는 이미 소스 저장소에 있고, 많은 인프라 코드 도구에는 코드를 릴리스로 취급하기
위한 패키지 형식과 도구 체인이 없기 때문에 대부분의 팀은 단순히 소스 코드 저장소에서 환
경에 코드를 적용한다.
메인 브랜치 (트렁크
trunk
)의 코드를 모든 환경에 적용하면 다른 버전의 코드를 관리하기 어려
워진다. 따라서 이 작업을 수행하는 대부분의 팀은 환경별로 브랜치를 유지보수하고 코드 버전
을 관련 브랜치에 병합하여 환경으로 프로모션한다.
GitOps
는 이 방식을 지속적인 동기화와
결합한다 (
20
.
4
절 참고).
코드 프로모션을 위해 브랜치를 사용하면 코드를 변경하는 것과 딜리버리하는 것의 구분이 흐
려진다.
CD
의 핵심 원칙은 빌드 단계 이후에는 절대로 코드를 변경하지 않는 것이다.
3
팀이 브
랜치에서 코드를 변경하지 않겠다고 약속할 수 있지만 지키기 어려운 경우가 많다.
19.2
프로젝트 통합
18
.
1
절에서 언급했듯이 코드베이스 내의 프로젝트는 일반적으로 프로젝트 간에 의존성이 있
다. 다음 질문은 의존성이 있는 다른 버전의 프로젝트를 언제 어떻게 결합하느냐다.
예를 들어
ShopSpinner
팀의 코드베이스에 있는 여러 프로젝트를 생각해보자. 두 개의 스택
프로젝트가 있다. 그 중 하나인
application-infrastructure-stack ...