Trunk based

신석진( Seokjin Shin)·2023년 7월 7일

Trunk based

Trunk based 전략이란?
브랜치 하나를 기본으로 두고 이를 기준으로 작은 단위의 커밋을 하고 잦은 병합을 하는 버젼 관리 기법입니다.
트렁크 기반 개발은 모든 개발자가 기본 코드에 액세스할 수 있으므로 보다 개방적인 모델입니다.
이를 통해 팀은 빠르게 반복하고  CI/CD를 구현할 수 있습니다 .

조건

  • 소규모 배치 작업
  • 모든 개발자가 main 브랜치에 접근할 수 있다.
  • 브랜치 커밋시 CI와 테스트 코드가 동작해야한다.(실패하면 롤백)
  • 브랜치 개수 3개 이하
  • 하루에 한번 이상 메인 병합
  • 빌드 & CI 프로세스가 수 분 안으로 실행되어야한다.

장점

  • 병합 충돌이 적게 난다.
  • 작은 단위의 커밋은 코드 리뷰 하기 좋다.
  • main에는 항상 배포 가능한 코드가 존재한다.

한계

  • 작업을 충분히 작게 나누기 어렵다.
  • 코드 검토 프로세스가 너무 많고 어렵다.
  • 코드 리뷰가 동시 다발적으로 이뤄진다. => 리뷰어 파악 불가 => 오랜 기간 대기

소규모 배치 작업

  • Independent(독립적). 작업 배치를 다른 배치와 가능한 한 독립적으로 만들어서 팀이 다른 작업 배치와 독립적으로 해당 배치를 배포하고 검증할 수 있도록 합니다.
  • Negotiable(절충 가능). 각 작업 배치는 반복 가능하며 피드백이 수신되면 절충할 수 있습니다.
  • Valuable(가치 있는). 개별 작업 배치가 유용하며 이해관계자에게 가치를 제공합니다.
  • Estimable(추정 가능한). 범위를 쉽게 추정할 수 있는 작업 배치에 대한 충분한 정보가 있습니다.
  • Small(소규모). 스프린트 중에 몇 시간에서 며칠을 의미하는 작은 시간 단위로 작업 배치를 완료할 수 있어야 합니다.
  • Testable(테스트 가능). 각 작업 배치를 사용자가 기대하는 방식으로 작업하면서 테스트, 모니터링, 검증할 수 있습니다.

작은 작업의 기준 = 1시간 이내로 테스트 후 배포

0개의 댓글