백엔드 개발자

Git 컨벤션 & Java 코딩 컨벤션 본문

프로그래밍

Git 컨벤션 & Java 코딩 컨벤션

임잠탱 2023. 9. 23. 17:35

싸피 공통프로젝트에서 깃과 지라 관리를 담당하여 컨벤션을 정하고 팀원들과 공유하게 되었다.
커밋 컨벤션과 코딩 컨벤션을 정하고 프로젝트에서 gitlab을 사용하였기 때문에 템플릿 작성까지 정리해보겠다.

커밋 컨벤션

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • docs : 문서 수정
  • style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • refactor : 코드 리펙토링
  • test : 테스트 코드, 리펙토링 테스트 코드 추가
  • chore : 빌드 업무 수정, 패키지 매니저 수정
feat : oAuth 구글 로그인

footer

Resolves: #67  -> 꼬리말
Ref: #64
Related to: #33, #34
  • 유형: #이슈 번호 형식으로 작성
  • 유형은 다음 중 하나를 사용

유형 예시

제목 태그 이름 설명
Fixes 이슈 수정 중 (아직 해결되지 않은 경우)
Resolves 이슈를 해결했을 때 사용
Ref 참고할 이슈가 있을 때 사용
Related to 해당 커밋에 관련된 이슈 번호 (아직 해결되지 않은 경우)
  • 본문과 꼬리말은 선택사항*

저희는 issue를 위해 꼬리말까지 쓰겠습니다.

예시 )

feat : oAuth 구글 로그인 -> 제목

related to : #1 -> 꼬리말
feat: "로그인 기능 구현"  -> 제목

새로고침 시 로그인 유지 기능 개발  -> 본문

Resolves: #67  -> 꼬리말
Ref: #64
Related to: #33, #34

브랜치 네이밍

  • master : 제품으로 출시될 수 있는 브랜치
  • develop : 다음 출시 버전을 개발하는 브랜치
    • feature/기능 : 기능을 개발하는 브랜치
  • release : 이번 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

—> 우선은 feature/기능 브랜치만 알고 생성해서 사용할 수 있습니다

(이슈번호 추가하여 feature-이슈번호-기능 으로 작성 ⇒ feature-1-구글로그인)

브랜치 네이밍은 gitflow 전략을 활용하였다.

Merge request 템플릿

gitlab 에서 템플릿을 추가하려면 .gitlab 폴더를 만들고
.gitlab > merge_request_templates > 아래에 추가해 주면 된다.

나는 merge_request_template.md 파일을 만들어 두고

## 어떤 이유로 MR를 하셨나요?
- [ ] feature 병합(feature issue #를 남겨주세요)
- [ ] 버그 수정(아래에 issue #를 남겨주세요)
- [ ] 코드 개선
- [ ] 기타(아래에 자세한 내용 기입해주세요)

## 세부 내용 - 왜 해당 MR이 필요한지 자세하게 설명해주세요
- 세부사항을 항목으로 설명해주세요

## MR하기 전에 확인해주세요
- [ ] push 하기 전에 pull 먼저 하셨나요?? (중요 * 100000000000000)
- [ ] reviewer 를 지정하셨나요?
- [ ] local ci test를 진행하셨나요 ?

## relavant issue number
- 관련된 이슈 넘버가 있으면 이곳에 기입해주세요 // #이슈번호

템플릿 내용을 이렇게 만들어 주었다.

Issue request 템플릿

마찬가지로 이슈 템플릿도 만들 수 있다.
.gitlab > issue_templates > 아래에 추가해 주면 된다.

이슈 생성 가이드

  • gitlab issue 탭 클릭!!

Untitled

  • 이슈 타입에 따라 description 선택.
    • 기능 추가 → feature_request 선택.
    • 버그 수정 → fix_request 선택.
    • 템플릿에 맞춰서 작성 후 이슈 생성.

=> 이렇게 원하는 템플릿을 선택하여 작성할 수 있고 merge request 도 마찬가지로 mr생성할 때 템플릿 선택하여 작성 할 수 있다.

작업 순서

  1. jira에서 내 할 일 확인.
  2. 깃 이슈 생성
    1. [아래 이슈 생성 가이드 참고]
  3. 브랜치 생성
    1. 생성된 이슈 넘버 확인 (예를 들면 #1)
    2. feature-1-추가할 기능
  4. 로컬에서 생성한 브랜치로 작업
    1. 커밋 컨벤션 참고하여 커밋 메시지 작성.related to #1
    2. → feat : 로그인 기능 화면
    3. pull request 요청 커밋 메시지
      • 이슈 생성 가이드와 마찬가지로 템플릿(pull_request) 선택 후 작성.

이렇게 작업 순서도 정리했었는데 사실 jira에서 이미 이슈를 생성하였기 때문에 git에서 따로 이슈를 생성하지는 않았다.
그래서 브랜치 네이밍을 feature-BE-기능 으로 정하여 작업을 했다.

코딩 컨벤션

코딩컨벤션 https://sihyung92.oopy.io/af26a1f6-b327-45a6-a72b-c6fcb754e219

  • 구글 포맷 적용

intellij-java-google-style.xml

  1. 파일 설치

ㅁㅁ

파일 → settings → editor → code style → java 다운받은 xml 파일 import scheme

tab size , indent 사이즈 4로 변경.

imports → use single class import 체크.

Untitled

저장할 때 컨벤션 적용 설정.

사용하지 않는 import제거.

  • 컨벤션 검사
    • 인텔리제이 파일→ settings → plugin → CheckStyle-IDEA 설치
    • settings→ tools → checkstyle → google check 선택.

'프로그래밍' 카테고리의 다른 글

WebSocket 프로그래밍  (1) 2023.06.28
Comments