보통 git flow 전략이 익숙한데 TBD 전략도 있다고 한다.
git flow 전략의 단점은 규모가 커질수록 작업한 사항을 trunk 브랜치에 반영할 때 충돌이 발생하게 된다.
TBD
: trunk 또는 master 라는 단일 브랜치에서 직접 모든 작업을 하는 것
- 모노레포 프로젝트에 적용하면 좋은 브랜치 전략
- 규칙을 잘 지키는 것이 중요하다.
- trunk에 commit 전 해당 작업을 개발자들과 미리 검수를 한 후 커밋이 되어도 문제가 없을 때 반영해야한다!
https://launchdarkly.com/blog/introduction-to-trunk-based-development/
필요한 조건
자동화 빌드
trunk에 반영되기 전 로컬에서 빌드 결과를 보고 문제가 없어야 한다.
TDD
trunk에 반영되기 전 기능적 에러 발생을 최대한 파악하고 수정되어야 한다.
실시간 코드 리뷰, 페어 프로그래밍
바로바로 리뷰 요청을 하고, 바로바로 검토해주어야 한다.
장점
- 코드 작성할 때 바로 피드백을 줄 수 있기 때문에 피드백이 빠르다.
- 페어프로그래밍에 적합하여 팀 스타일로 코드를 작성할 수 있다.
- CI(지속적 통합)의 의미에 상당히 근접하다.
- 대규모 리팩토링이 쉽다.
정리
- feature 브랜치 기반 개발은 개별 능력을 최적화하지만,
트렁크 기반 개발은 팀 능력을 최적화할 수 있다.
- TBD는 간단하지만, 인원이 많고 일이 많은 팀에서는 페어 프로그래밍과 빠른 코드리뷰가 어려울 것 같다.
👉 trunk 바로 하위에 feature 브랜치를 두어서 개발하는 STBD(Scaled Trunk Based Development) 전략 방법도 있다고 한다.
참고
https://code-masterjung.tistory.com/73
https://helloinyong.tistory.com/335