본문 바로가기
Study/Knowledge

[Git] 컨벤션 Commit, Branch 전략

1. 컨벤션 커밋 전략

코드 컨벤션을 준수하도록 개발자들에게 권고하고, 이를 유지하도록 하는 전략입니다.

이 전략은 코드의 가독성을 향상시키고, 개발자들 간의 협업을 원활하게 하기 위해 중요합니다.

 

컨벤션 커밋 전략의 주요 원칙

  1. 컨벤션을 정의하고 문서화합니다. 코드 컨벤션은 개발자들 간에 공유되어야 합니다. 따라서 프로젝트에서 사용되는 컨벤션을 문서화하여 모든 개발자들이 쉽게 참고할 수 있도록 합니다.
  2. 코드 리뷰에서 컨벤션 준수 여부를 확인합니다. 코드 리뷰를 통해 컨벤션 준수 여부를 확인하고, 이를 개발자들에게 피드백합니다. 이를 통해 컨벤션 준수를 강제하지 않고, 개발자들 스스로가 컨벤션을 준수하도록 유도합니다.
  3. CI/CD 파이프라인에서 컨벤션 검사를 수행합니다. CI/CD 파이프라인을 통해 코드 컨벤션 검사를 자동화합니다. 이를 통해 개발자들이 코드 컨벤션을 준수하지 않을 경우 빌드가 실패하도록 설정합니다.
  4. 도구를 사용하여 컨벤션 준수를 자동화합니다. 코드 컨벤션을 자동으로 검사하는 도구를 사용하여 개발자들이 코드를 작성할 때 바로바로 컨벤션 준수 여부를 확인할 수 있도록 합니다.
  5. 컨벤션 변경 사항을 공유합니다. 코드 컨벤션은 프로젝트 진행 중에 변경될 수 있습니다. 이러한 경우 개발자들에게 변경 사항을 공유하고, 적용 방법을 안내합니다.

이러한 전략을 통해 코드 컨벤션을 준수하도록 유도하고, 코드의 가독성과 유지보수성을 향상시킵니다.

 

커밋 컨벤션

아래와 같은 내용으로 커밋을 작성합니다.

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • hotfix : 급하게 치명적인 버그 수정
  • docs : 문서 수정
  • style : 코드 포맷팅, 세미콜론 등의 스타일 수정(코드 자체 수정 X)
  • refactor : 프로덕션 코드 리팩토링
  • test : 테스트 코드, 테스트 코드 리팩토링
  • chore : 빌드 과정 또는 보조 기능(문서 생성 기능 등) 수정
  • rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
  • remove : 파일을 삭제하는 작업만 수행한 경우
  • comment : 필요한 주석 추가 및 변경

 

컨벤션 커밋메세지 사용 Example

Bugfix > [개발] 신청한 캠페인 옵션X + 리워드O 경우 → 신청옵션 플로우 누락

불필요한 params제거
캠페인명을 특정상황에서만 조회하여 보여지는 버그 수정
리워드 금액 정상화(기존에 제공제품의 가격이 들어갔었음)
불분명한 함수명,변수명 수정
model 추가후 불필요한 함수 주석처리 및 코드 간소화
설명 주석 강화, model내 toString() 추가
신청옵션이 없는 경우 보여지는 화면 추가
회수예정 정보뱃지 추가
현금리워드 유무에 따른 문구변경
전체적인 폰트,크기,색상, 레이아웃 피그마대로 수정

closes #125

 

위와같은 방식으로 통일된 커밋을 남기는 습관이 협업과 유지보수 코드관리에 매우 유용해질 것이다.

 

 

2. Branch 전략

항상 유지되는 2개의 메인 브랜치와 역할을 완료하면 사라지는 3개의 보조 브랜치로 구성됩니다.


Main Branch

항상유지되는 브랜치를 말합니다.

  • master : 제품으로 출시될 수 있는 브랜치
  • develop : 다음 출시 버전을 개발하는 브랜치

보조 Branch

Merge 되면 사라집니다.

  • feature : develop 브랜치에 새로 추가할 기능을 개발하는 브랜치
  • release : develop 브랜치 개발이 완료되면 출시버전을 준비하면서 QA, TEST를 위해서 사용하는 임시 브랜치
  • hotfix : master 브랜치에서 발생한 버그를 수정하는 브랜치

 

사용 Example 

https://velog.io/@backtony/git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%A0%84%EB%9E%B5%EA%B3%BC-%EC%BB%A4%EB%B0%8B-%EC%BB%A8%EB%B2%A4%EC%85%98

1. master 브랜치에는 15.3 버전이 업로드 되어 있습니다.

2. develop 브랜치에는 15.4 버전 기능 출시를 위해 개발이 진행중입니다.

3. 2개의 feature 브랜치에서 그에 따른 개발을 진행중입니다.

4. 현재 버전에서 보안 문제가 발생하여 hotfix 브랜치를 생성하여 해결하고 master와 develop으로 merge 합니다.

5. 개발 기능을 완료하여 develop 브랜치에 merge 합니다.

6. release 브랜치를 생성하여 QA와 베타버전을 출시합니다.

7. 버그를 발견하면 수정 master devlop merge하여 최종 배포합니다.