브랜칭 전략을 이해하려면 각 환경에서 발생하는 목적과 활동을 이해해야 합니다. 여러 환경을 설정하면 개발 활동을 단계별로 분리하고, 해당 활동을 모니터링하고, 승인되지 않은 기능이 의도치 않게 릴리스되는 것을 방지할 수 있습니다. 각 환경에 하나 이상을 둘 수 있습니다.
AWS 계정
대부분의 조직에는 사용할 수 있는 몇 가지 환경이 설명되어 있습니다. 그러나 환경 수는 조직 및 소프트웨어 개발 정책에 따라 달라질 수 있습니다. 이 설명서 시리즈에서는 서로 다른 이름으로 불릴 수도 있지만 개발 파이프라인에 걸쳐 다음과 같은 5가지 공통 환경이 있다고 가정합니다.
샌드박스 — 개발자가 코드를 작성하고, 실수를 저지르고, 개념 증명 작업을 수행하는 환경입니다.
개발 — 개발자가 코드를 통합하여 모든 코드가 하나의 응집력 있는 애플리케이션으로 작동하는지 확인하는 환경입니다.
테스트 — QA 팀 또는 승인 테스트가 이루어지는 환경입니다. 팀은 종종 이 환경에서 성능 또는 통합 테스트를 수행합니다.
스테이징 — 프로덕션 환경과 동일한 환경에서 코드와 인프라가 예상대로 작동하는지 검증하는 사전 프로덕션 환경입니다. 이 환경은 프로덕션 환경과 최대한 유사하도록 구성되어 있습니다.
프로덕션 — 최종 사용자와 고객의 트래픽을 처리하는 환경입니다.
이 섹션에서는 각 환경에 대해 자세히 설명합니다. 또한 다음 단계로 넘어갈 수 있도록 각 환경의 빌드 단계, 배포 단계 및 종료 기준에 대해서도 설명합니다. 다음 이미지는 이러한 환경을 순서대로 보여줍니다.

Git 기반 브랜칭 전략을 가장 복잡하지 않은 것부터 가장 복잡한 순서로 자세히 설명합니다.
트렁크 — 트렁크 기반 개발은 모든 개발자가 일반적으로 or 브랜치라고 하는 단일 브랜치에서 작업하는 소프트웨어 개발 방식입니다. trunk main 이 접근 방식의 기본 개념은 코드 변경 사항을 자주 통합하고 자동화된 테스트와 지속적인 통합을 통해 코드베이스를 지속적으로 릴리스할 수 있는 상태로 유지하는 것입니다.
GitHub GitHub Flow — Flow는 에서 개발한 가벼운 분기 기반 워크플로입니다. GitHub 수명이 짧은 feature 브랜치라는 아이디어를 기반으로 합니다. 기능이 완성되어 배포할 준비가 되면 기능이 브랜치에 병합됩니다. main
Gitflow — Gitflow 접근 방식을 사용하면 개별 기능 브랜치에서 개발을 완료할 수 있습니다. 승인 후에는 feature 브랜치를 통합 브랜치로 병합합니다. 통합 브랜치는 보통 이름이 지정됩니다. develop develop브랜치에 충분한 기능이 누적되면 release 브랜치를 만들어 상위 환경에 기능을 배포합니다.

