2022. 12. 14. 09:22ㆍDevOps
트렁크 기반 개발은 코드 변경 사항을 "트렁크"(혹은 main)라고도 하는 프로젝트 코드베이스의 주요 분기에 직접 커밋하는 것과 관련된 소프트웨어 개발 방법이다. 이 접근 방식은 개발자가 작업 중인 각 기능 또는 버그 수정에 대해 별도의 분기를 만드는 기능 분기와 같은 다른 분기 모델(Git Flow 등)과 대조된다.
트렁크 기반 개발의 주요 이점 중 하나는 그것이 제공하는 단순성이다.
여러 브랜치를 관리할 필요 없이 개발자는 트렁크만 걱정하면 된다. 이렇게 하면 프로젝트의 코드베이스를 더 쉽게 이해할 수 있고 개발자가 코드 변경에 대해 더 쉽게 협업할 수 있다.
트렁크 기반 개발의 또 다른 이점은 코드 변경을 더 자주 배포할 수 있다는 것이다.
개발자는 코드 변경 사항을 트렁크에 직접 커밋하므로 이러한 변경 사항을 프로덕션에 배포하는 것이 더 쉽다. 이는 지속적인 제공 또는 지속적인 배포 사례에 의존하는 조직에 특히 유용할 수 있다.
그러나 트렁크 기반 개발에 문제가 없는 것은 아니다.
한 가지 잠재적인 단점은 트렁크가 파손될 위험이 있다는 것이다. 코드 변경으로 인해 트렁크에 문제가 발생하면 다른 문제를 일으키지 않고 해당 변경 사항을 롤백하기 어려울 수 있다. 이는 자동화된 테스트 및 코드 검토 프로세스를 사용하여 완화할 수 있으며, 트렁크에 문제가 발생하기 전에 문제를 파악하는 데 도움이 될 수 있다.
트렁크 기반 개발이 모든 프로젝트나 조직에 적합하지는 않다.
오래 지속되는 분기 또는 복잡한 분기 모델이 있는 프로젝트에 가장 적합하지 않을 수 있다. 트렁크 손상 위험을 최소화하기 위해 강력한 자동 테스트 및 코드 검토 프로세스를 마련하는 것도 중요하다.
전반적으로 트렁크 기반 개발은 코드베이스를 단순화하고 코드 변경을 더 자주 배포하려는 조직에 유용한 접근 방식이 될 수 있다. 이 접근 방식을 채택하기로 결정하고 이를 지원하는 데 필요한 프로세스를 마련하기 전에 장단점을 신중하게 고려하는 것이 중요할 것이다.
'DevOps' 카테고리의 다른 글
소프트웨어 개발의 기능 토글(Feature toggle)이란? (0) | 2022.12.21 |
---|---|
애자일 소프트웨어 개발(Agile software development) 개념 정리 (0) | 2022.12.12 |
단일 저장소(Monorepo)에 대한 개념 정리 (0) | 2022.12.11 |
Firebase란? - Firestore, Cloud Functions, Hosting (0) | 2022.11.27 |
CI/CD란? - 테스트, 배포 자동화 (0) | 2022.10.25 |