안녕하세요! 개발자 꿈나무 엠디노입니다.
지난 포스팅에서 말한 것처럼 '웹개발 풀스택' 과정을 훈련하고 있습니다.
(벌써 2주나 해버린!)
이번에는 '위클리 페이퍼 #2'를 포스팅하고자 합니다.
혹시 1탄이 궁금하시다면 아래 링크를 클릭해주세요..!
⭐️ 위클리 페이퍼 #1-CSS Cascading, 시맨틱 태그 [바로가기] ⭐️
각설하고 바로 시작하겠습니다.
⭐️ 위클리 페이퍼 #2 주제
- 깃(Git)에서 브랜치 머지(branch merge) 방법들과 각 방법의 특징에 대해 설명
- 깃 플로우 브랜치(Git Folw Branch) 전략에 대해 설명
이번 숙제는 강의 후에 작성하는 거라 지난 포스팅과 궤가 다릅니다!
이 주제를 보고 든 생각은.... 바로바로....
"아 그거 나 들었는데... 아는데...!!" 였습니다.
그 후... 또 수많은 서칭과... 강의 복기와...
강사님의 은총인 노션과... 갓 구글의 재미나이가 준 정보들을 merge하여...
(이게 개발자의 길인거죠 강사님?)
자 이제 숙제 시작해보겠습니다...!
(본격 숙제 포스팅 시작)
1. Git에서 branch merge, 각 방법의 특징
자자, 어떻게 시작해야하나 고민을 하다가 세가지를 뜯어서 간략히 소개부터 해야겠습니다.
(강의 복기도 할겸...)
💻 기본설명 - 개발을 위해 이용(깃), 각자 작업(브랜치), 브랜치 병합(머지)
- 깃(Git) : 소프트웨어 개발의 버전 관리, 동시 협업을 위한 무료 공개 소프트 웨어
- 브랜치(Branch) : Git의 가장 핵심적인 기능, 독립적인 코드 관리와 개발 흐름을 의미함(나뭇가지 모델 어쩌구 저쩌구)
- 머지(merge) : 한 브랜치의 변경 내용을 다른 브랜치에 병합, 여려 결과를 하나로 모으는 Git의 기능
역시 글로 정리해보니까 다시 기억이 새록새록 (배운지 얼마 안되긴 함)

💻 Git branch merge 방법 및 특징 - 주로 3가지, 3-Way Merge 쓰기
간단히 설명하자면 위에서 설명한대로 깃에서 브랜치를 머지(병합) 한것인데..
여러가지 방법이 있습니다.
3-Way Merge (Merge Commit 생성) ⭐️⭐️⭐️
- 상황: 두 브랜치에 서로 다른 커밋이 존재(분기된 경우)
- 동작: 병합 내역 기록을 위한 새로운 Merge Commit이 만들어지고, 커밋 메시지 작성 창이 열림
- 결과: 그래프에서 두 브랜치가 하나로 합쳐지고, 병합 커밋이 명확히 남음
- 문제점: 브랜치가 많고, 병합이 많을 경우 복잡하고 지저분해짐

Fast-Forward Merge
- 상황: 내용을 받을 브랜치에 신규 커밋이 없고, 가져올 브랜치만 계속 앞으로 나아간 경우
- 동작: Merge Commit 없이 포인터만 빨리감기(FF)처럼 이동
- 문제점: 별도의 작업 흐름을 파악하기 어렵게 히스토리가 한 줄로 합쳐짐

Rebase & Merge
- 상황: 기존 브랜치가 뻗어나가다 다른 길로 가는 경우
- 동작: 브랜치가 뻗어나온 기준점을 변경
- 문제점: 하나의 브랜치로 작업한 것처럼 히스토리가 한 줄임, 브랜치끼리 작업 내역의 차이가 많은 경우 충돌 발생

그외 공부하다보니 Squash & Merge 등 다른 머지들도 있는 것 같습니다.
하지만 개발을 비롯한 다양한 직군들에서
일을 하다보면 필연적으로 이전 작업으로 돌아가야할 경우가 생깁니다.
그리고 혹시 잘못된 게 있고, 그 흐름을 명확히 파악하기 위해선
복잡하더라도 히스토리가 명확사게 남아있는 것이 잘못을 바로 잡고, 나아가는데
제일 좋다는 것을 뼈저리게 공감합니다.
따라서, 강사님이 강조하고 알려주신 3-Way-Merge 방식을 최대한 고수할 거 같습니다.
⭐️ 결론, 3-Way-Merge 최고.. 강사님 최고..
2. Git Folw 브랜치 전략
Git에는 Git Flow, GitHub Flow 등 다양한 브랜치 전략이 있음.
Git Flow는 Vincent Driessen이 제안한 가장 유명하고 표준적인 브랜치 관리 전략.
(우리나라에서도 우아한형제들, 당근마켓(페이) 등에서 사용)
핵심은 브랜치마다 정해진 역할과 수명(Life Cycle)이 있다는 것...
# 기본설명 - 5가지 브랜치를 활용하여 운영 및 개발 ⭐️⭐️⭐️
Git Flow는 크게 5가지 종류의 브랜치를 사용하여 운영함
- main: 사용자에게 언제든 배포 가능한, 에러 없는 최종 제품 상태의 코드를 관리하는 브랜치
- develop: 다음 배포를 목표로 개발된 모든 기능이 하나로 모이는 개발 중심 브랜치
- feature: develop에서 갈라져 나와, 새로운 기능을 개발하고 완성되면 다시 합치는 브랜치
- release: 기능 개발이 끝난 후, 실 배포 직전에 최종 테스트와 마무리 작업을 하는 브랜치
- hotfix: 이미 배포된 main 버전에서 발생한 치명적인 버그를 긴급하게 수정하는 브랜치

# 요약 - 효율적이나 관리규칙이 필요
- 브랜치를 여러가지로 나누어서 작업(메인, 디벨롭, 릴리즈 등)
- 작업을 한 후 배포용 main, 개발용 develop 등으로 머지하여 관리
- 효율적, 합리적 운영을 위해 역할이 명확하고 관리규칙이 필요함
- 공동작업을 위한 효율적 전략
- 우리나라에서는 배달의 민족(우아한형제들)에서 사용함
⭐️ 결론, 대체적으로 좋지만, 관리규칙이 없으면 엉키고 난리난다..
이상 개발자 꿈나무 엠디노였습니다...
머지않아 크고 작은 숙제와 문제들로 찾아뵙겠습니다..
그럼 이만!
'▼ 코딩 공부하기' 카테고리의 다른 글
| 💻 JS This, 렉시컬 스코프 개념 전 알아보기 (feat. 왕초보 위클리 페이퍼 #3) (0) | 2025.12.11 |
|---|---|
| 💻 웹 개발로 전향 후 깨달은 것: CSS Cascading과 시맨틱 태그 알아보기 (feat. 왕초보 위클리 페이퍼 #1) (0) | 2025.11.27 |