너 내 동료가 돼라! : Github 브랜치 전략 & Git 컨벤션🚣

밍갱·2025년 2월 13일
0

GIT

목록 보기
4/5

1. Github 브랜치 전략🌳

01. 브랜치를 나누는 목적

  • 팀원 각자가 기능을 구현하면서 코드 충돌을 줄일 수 있게 된다.
  • 잘못된 코드를 main(배포용) 브랜치에 바로 반영하지 않도록 보호할 수 있다.
  • 누가, 어떤 기능을, 어떤 브랜치에서 작업했는지 명확하게 알 수 있다.

02. 대표적인 브랜치 전략 : Git Flow

i) Git Flow란?
Git Flow는 협업 시 브랜치들의 효율적 관리를 위한 브랜치 관리 전략 또는 방법론이다. 이를 잘 활용하면 팀원이 늘어났을 경우 생기는 문제들을 효율적으로 관리할 수 있다.

ii) Branch 분류하는 방법
Branch를 분류하는데 정답은 없다. 보통은 팀원들과 프로젝트를 진행하기 전, 정하는 것이 좋다.

브랜치명설명예시
main배포용 브랜치main
dev통합(개발)용 브랜치dev, develop
feature기능 개발 브랜치feature/login
bugfix버그 수정 브랜치bugfix/nav-bar
hotfix긴급 패치 브랜치hotfix/payment
chore문서, 설정파일 변경 브랜치chore/update-readme
docs문서 작업 브랜치docs/api-guide
refactor리팩토링 브랜치refactor/homepage-ui

2. Git 컨벤션🤙

01. Git 컨벤션을 정하는 목적

프로젝트가 진행될수록 코드 스타일이 제각각이면 유지보수가 어려워지고, 팀원 간 충돌이 생긴다. 그래서 공통된 컨벤션을 정해두고, 최대한 엄격하게 지키는 것이 좋다.

02. commit 컨벤션

i) commit 컨벤션 정하기
commit 컨벤션 또한 정답은 없다. 아래는 많은 사람들이 사용하는 컨벤션으로, 이것을 참고하여 본인의 팀에게 맞도록 설정하면 된다.

commit type설명
feat새로운 기능 추가 (변수, 함수 선언+호출)
fix버그 수정
docs문서 수정
style코드 포맷팅, 세미콜론 누락 등
refactor코드 리팩토링, 성능 개선 (기능 변경 없이 구조 개선)
test테스트 관련 코드(누락된 테스트 추가, 리팩토링 테스트 등)
chore빌드 업무, 패키지 매니저 설정, 기타 자잘한 수정

ii) 현업 꿀팁
commit 할 때 이슈번호를 추가하면 PR에 자동으로 관련 issue가 등록된다.

git commit -m "feat: 로그인 기능 개발 #1"
//#1 = issue 번호

03. 코드 스타일 가이드

팀에서 합의한 룰을 공유하고, 자동화하여 스타일이 강제로 통일되도록 세팅한다.

  • Prettier: 코드 포맷팅 자동화 도구 (코드 포매터)
  • ESLint: 자바스크립트 문법 검사 (정적 분석기)

3. 우리 팀의 컨벤션🫂

01. Branch 컨벤션

브랜치명설명예시
main배포용 브랜치main
dev통합(개발)용 브랜치dev
feature/기능 개발 브랜치feature/login
bugfix/버그 수정 브랜치bugfix/nav-bar
chore/문서, 설정파일 변경 브랜치chore/update-readme
docs/문서 작업 브랜치docs/api-guide
refactor/리팩토링 브랜치refactor/homepage-ui
hotfix/긴급 패치 브랜치hotfix/payment

02. Commit 컨벤션

우리팀의 경우, Prettier와 ESLint 설정을 통일했다. 그리고 기존에 style을 css 작업으로 사용하던 팀원이 있어서 우리팀 내의 컨벤션에서는 코드 스타일링이 아닌 레이아웃(css) 스타일링으로 수정하여 사용한다.

커밋 타입설명예시 메시지
feat새로운 기능 추가 (변수, 함수 선언+호출)feat: 회원가입 로직 추가
fix버그 수정fix: 로그인 시 비밀번호 검증 오류 해결
docs문서 수정docs: README에 프로젝트 개요 추가
styleUI (css 등) 디자인 수정style: 버튼 추가
refactor코드 리팩토링, 성능 개선 (기능 변경 없이 구조 개선)refactor: 홈 화면 UI 로직 개선
test테스트 관련 코드(누락된 테스트 추가, 리팩토링 테스트 등)test: 유닛 테스트 추가
chore빌드 업무, 패키지 매니저 설정, 기타 자잘한 수정chore: package.json 버전 업그레이드
add없던 파일을 생성함, 초기 세팅 (기능제외 rafce)add: ~컴포넌트 생성

Git Flow 참고 사이트 1
Git Flow 참고 사이트 2

profile
미술 전공에서 프론트엔드 개발까지

0개의 댓글