TIL8. 깃, 브랜치 전략

2025. 2. 28. 19:19·TIL

 

개인 공부를 하겠다는 나의 오늘 하루는 이 짤로 요약이 가능하다.

 

브랜치 전략

앞서 브랜치란?



SW개발을 하게되면 개발자들은 동일한 소스코드를 함께 공유하고 다루게 된다. 동일한 소스코드 위에서 어떤 사람은 버그를 수정하기도하고 어떤 사람은 새로운 기능을 만들어 내기도 한다. 이처럼 여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 하면 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없다.

이럴 때 여러 개발자들이 동시에 다양한 작업을 할 수 있게 해주는 것이 바로 '브랜치(BRANCH)' 이다. 각자 독립된 작업 영역안에서 마음대로 소스코드를 변경하고 이렇게 변경된 내용은 나중에 원래 버전과 비교해서 하나의 새로운 버전으로 만들어 낼 수 있다.

 

여러 개발자가 동시에 작업할 때 다른 사람의 작업에 영향을 주거나 받지 않도록 하기 위해 메인 브랜치에서 자신의 작업 전용 브랜치를 만든다.
그리고 각자 작업 후, 작업이 끝난 사람은메인 브랜치에 자신의 브랜치 변경 사항을 저장한다. 

이렇게 함으로써 독립적으로 특정 작업을 수행하고 그 결과를 하나로 모아가게 된다. 이런 방식으로 작업하는 경우 '작업 단위', 즉 브랜치로 그 작업의 기록을 중간중간 남기게 됨으로 문제가 발생했을 때 원인이 되는 작업을 찾아내고 그에 따른 대책을 세우기가 쉬워진다.

🔥 깃(Git) 브랜치 전략이 뭐야?

여러 개발자가 협업을 좀 더 효과적으로 하기 위해 Git Branch에 대해 규칙을 정하고, 장소를 잘 활용하기 위한 작업 흐름을 정의하는 것을 말한다.

그럼 Git Branch 전략은 왜 필요할까? ❌❌안하면 어떻게 되는걸까?❌❌

1. 충돌 증가 :여러 개발자들이 같은 파일을 수정하면서 충돌 자주 발생
2. 배포 환경 엉망 : 개발 중인 코드와 배포할 코드도 섞이고, 테스트 되지 않은 코드가 배포될 수도 있다.
 3. 코드 관리의 어려움 : 버그가 발생했을 때 어느 시점에서 문제가 생겼는지 추적이 어려움

✅ 브랜치 전략을 사용해야 하는 이유

1. 협업이 쉬워짐 
2. 안정적인 배포 가능
3. 문제 해결이 빨라짐
4. 코드 관리가 명확해짐 

 

📌 대표적인 깃 브랜치 전략

1️⃣ Git Flow (가장 많이 사용되는 전통적인 방식)

- 기본적인 가지 이름은 5가지로 구분한다
- master < hotfix < release < develop < feature
어우귀찮아 다음벊에쓰자 

 

 

2️⃣ GitHub Flow (단순)

- 가볍고 지속적인 통합과 빈번한 배포를 하는 작은 프로젝트에서 단일 브랜치를 중심으로 하는 전략으로 주로 사용이 된다.
- ‘main(=master) 브랜치’를 기반으로 기능 브랜치를 생성하고 변경 사항을 만들며 변경 사항을 주 브랜치(main)에 병합하는 전략이다.

마치며

이외에도 GitLab Flow (배포 중심), Trunk-Based Development (TB)이 있다지만 아직은 나에게 너무 생소하다. 프로젝트 경험을 통해 겪어봐야 알 것 같다.
https://adjh54.tistory.com/367 시간나면 이분의 블로그 글도 읽어봐야겠다.


참고
https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
https://nvie.com/posts/a-successful-git-branching-model/

 

'TIL' 카테고리의 다른 글

TIL11. 키오스크 Lv2,3 진행  (1) 2025.03.12
TIL10. 자바 기초를 공부하면서(2)  (0) 2025.02.28
TIL9. 자바 기초를 공부하면서(1)  (0) 2025.02.28
TIL7. 1주차를 마치며.. KPT회고  (0) 2025.02.28
TIL6. 1주차 - 상세 페이지 만들기  (0) 2025.02.28
'TIL' 카테고리의 다른 글
  • TIL10. 자바 기초를 공부하면서(2)
  • TIL9. 자바 기초를 공부하면서(1)
  • TIL7. 1주차를 마치며.. KPT회고
  • TIL6. 1주차 - 상세 페이지 만들기
에그마요샌드위츼
에그마요샌드위츼
  • 에그마요샌드위츼
    아자아자
    에그마요샌드위츼
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • java
      • sql
      • TIL
      • spring
      • JPA
      • spring-security
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    til
    GIT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
에그마요샌드위츼
TIL8. 깃, 브랜치 전략
상단으로

티스토리툴바