Skip to content

02. Convention

임채성 edited this page Sep 12, 2023 · 8 revisions

Git Convention

Branch

종류

참고 문헌

  • main: 제품 출시 브랜치
  • develop: 출시를 위해 개발하는 브랜치
    • feat/{기능명}: 새로운 기능 개발하는 브랜치
    • refactor/{기능명}: 개발된 기능을 리팩터링하는 브랜치
  • hotfix: 출시 버전에서 발생한 버그를 수정하는 브랜치

예시

  • dev/feat/login
  • dev/feat/register



Commit

참고 문헌

본 프로젝트에서는 <Type>을 제외한 모든 커밋 내용에 한글 허용.

커밋 형식

<type><break or not>: <subject>
<BLANK LINE>
<body>
<BLANK LINE>

제목

제목에는 변경 사항에 대한 간결한 설명이 포함되어 있습니다.

허용하는 타입 <type>

  • feat: 기능(feature)
  • fix: 버그 수정
  • docs: 문서 작업(documentation)
  • style: 포매팅, 세미콜론 누락 등.
  • refactor: 리팩터링
  • test: 누락된 테스트
  • chore: 관리(maintain), 빌드 등

브레이크 체인지 여부 <break or not>

브레이크 체인지란: 기존 개발하는 방식과 구현 방식이 변경된 경우.

브레이크 체인지가 존재하는 커밋을 경우, !를 추가 커밋 바디에 변경사항에 대한 설명을 추가할 것

예시:

  • feat!: 랭킹 점수 계산식 변경 브레이크 체인지 존재하지 함. (확인 필요)
  • feat: 로그인 기능 구현 브레이크 체인지 존재하지 않음.

내용 <subject>

  • 명령조, 현재 시제 사용
  • 끝에 . 없이 작성

예시: feat: 로그인 기능 구현


메세지 본문 <body>

  • 필수 X, 다만 브레이크 포인트가 존재하는 경우에는 필수
  • 명령조, 현재 시제 사용
  • 변화에 대한 동기를 포함하고 이전 행동과 대조
  • 브레이크 포인트가 존재하는 경우, 변경 매뉴얼을 작성해야 함

예시

feat: 경매품 업로드 기능 구현
feat!: 랭킹 점수 계산식 변경

기존 계산식은 기여 `횟수 * 영상 시간(분)`이었지만, 기획 변경으로 인해 `횟수 * 영상 시간(초)`로 변경되었습니다.
해당 논의가 포함된 (이슈)[https://github.com/gyeongnam-gyeongmae/server/issues/1]



Issue Convention

  • 담당자(Assignees) 명시할 것
  • Task list 적극 활용할 것.
  • 기능 관련 Issue라면 Github Project에 연결하여 진행 상황 공유할 것.



PR Title

[#<PR 번호>] 변경 사항

  • 예시: [#3] 로그인 기능
  • 예시: [#11] 회원 엔티티 변경




Coding Convention

Java Syntax

Directory Structure

공식 문서

DDD로 분리

example

└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── demo
    │   │               ├── DemoApplication.java
    │   │               ├── coupon
    │   │               │   ├── controller
    │   │               │   ├── domain
    │   │               │   ├── exception
    │   │               │   ├── repository
    │   │               │   └── service
    │   │               ├── member
    │   │               │   ├── controller
    │   │               │   ├── domain
    │   │               │   ├── exception
    │   │               │   ├── repository
    │   │               │   └── service
    │   │               └── order
    │   │                   ├── controller
    │   │                   ├── domain
    │   │                   ├── exception
    │   │                   ├── repository
    │   │                   └── service
    │   └── resources
    │       └── application.properties
그 외 폴더들(utils, common, error etc.)
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── spring
    │   │           └── guide
    │   │               ├── ApiApp.java
    │   │               ├── SampleApi.java
    │   │               ├── domain
    │   │               │   ├── coupon
    │   │               │   │   ├── api
    │   │               │   │   ├── application
    │   │               │   │   ├── dao
    │   │               │   │   ├── domain
    │   │               │   │   ├── dto
    │   │               │   │   └── exception
    │   │               │   ├── member
    │   │               │   │   ├── api
    │   │               │   │   ├── application
    │   │               │   │   ├── dao
    │   │               │   │   ├── domain
    │   │               │   │   ├── dto
    │   │               │   │   └── exception
    │   │               │   └── model
    │   │               │       ├── Address.java
    │   │               │       ├── Email.java
    │   │               │       └── Name.java
    │   │               ├── global
    │   │               │   ├── common
    │   │               │   │   ├── request
    │   │               │   │   └── response
    │   │               │   ├── config
    │   │               │   │   ├── SwaggerConfig.java
    │   │               │   │   ├── properties
    │   │               │   │   ├── resttemplate
    │   │               │   │   └── security
    │   │               │   ├── error
    │   │               │   │   ├── ErrorResponse.java
    │   │               │   │   ├── GlobalExceptionHandler.java
    │   │               │   │   └── exception
    │   │               │   └── util
    │   │               └── infra
    │   │                   ├── email
    │   │                   └── sms
    │   │                       ├── AmazonSmsClient.java
    │   │                       ├── SmsClient.java
    │   │                       └── dto
    │   └── resources
    │       ├── application-dev.yml
    │       ├── application-local.yml
    │       ├── application-prod.yml
    │       └── application.yml