Trunk Based Development (TBD)
- 단일 메인 브랜치를 사용한다.
- 개발자들이 하나의 트렁크에서 작업을 하여 지속적인 통합 + 빠른 배포 가능.
- git flow 보다 간단함
- git flow 의 경우 feature, release, hotfix 등의 브랜치가 있어서, 브랜치 관리의 복잡성이 증가한다.
- 또한 브랜치가 오랫동안 유지되고, 상대적으로 많은 변경사항을 한번에 머지하는걸 선호한다.
- 따라서 개발 사이클이 빨라진다.
문제점
- 큰기능을 만들 때 메인 브랜치에 머지하기 어렵다.
- 기능을 별도의 스테이징 서버에 검증하고 배포하는 것이 아니므로, 잘못된 기능이 메인브랜치로 머지될 위험이 증가한다.
- 의존성 문제. 만들고자하는 기능 A가 다른 기능 B릴리즈에 의존적이라면..B기능이 완료되기 전까지 A기능도 배포하기 어렵다.
해결방법
- Feature Flag을 사용하여, 작성한 코드를 운영 서버에 미리 배포해두고, 이 코드를 실제로 운영환경에서 실행- 할지를 원격으로 (별도 배포없이) 결정 할 수 있다.