프로젝트 코딩 컨벤션 및 커밋 규칙

Sol's·2023년 1월 15일
0

팀프로젝트

목록 보기
1/25

코딩 컨벤션 및 커밋 규칙을 정하는 이유

팀 프로젝트를 진행하기전에 아래와 같은 이유로 코딩 컨벤션 및 커밋 규칙을 정하려고한다.
(아래 내용은 계속 바뀔 수 있음)

  1. 정해진 규칙이 있기 때문에 명칭이나 구조를 빠르고 정확하게 정할 수 있다.

  2. 통일된 규약이 있기 때문에 모든 사람들이 코드를 이해하기 쉽고 편리하다.

  3. 유지보수 비용을 줄일 수 있다.

가독성이 좋다.

코딩 컨벤션

  1. 엔티티 명은 테이블명과 동일하게 작성한다. (Entity를 붙이지 않는다.)
    ex) User (O), UserEntity(X)

  2. 선언은 한 줄당 하나의 선언문을 사용한다.
    ex) int a;(O)
    int a, b;(X)

  3. 패키지는 목적별로 묶어 생성한다.

    • common(공통기능 관련), user(유저 관련), Order(주문관련) ....
  4. Controller에서는 Service 호출만을 담당한다.

    • Controller에서의 비즈니스 로직 구현은 최대한 피한다.
  5. 메소드와 클래스는 하나의 목적만을 위해 생성한다.

    • 한개의 메소드는 한가지의 기능만을 가져야 한다.

    • 한개의 클래스 내부에는 같은 목적만을 가진 코드가 존재하여야한다.

  6. Dto -> Entity 또는 Entity -> Dto로 변환하는 메서드는 아래 메소드명으로 통일한다.

    • Dto -> Entity : toEntity
    • Entity -> Dto : of

변수 명명 규칙

1.변수명은 의도를 분명히 밝혀 이름을 짓기

2.클래스의 변수명은 클래스와 같은 명을 사용한다.

  • ex) UserJoinRequest userJoinRequest

Controller

컨트롤러 클래스 안에서 메서드 명을 작성 할 때는 아래와 같은 접미사를 붙인다.

orderList() – 목록 조회 유형의 서비스

orderDetails() – 단 건 상세 조회 유형의 controller 메서드

orderSave() – 등록/수정/삭제 가 동시에 일어나는 유형의 controller 메서드

orderAdd() – 등록만 하는 유형의 controller 메서드

orderModify() – 수정만 하는 유형의 controller 메서드

orderRemove() – 삭제만 하는 유형의 controller 메서드

Service

서비스 클래스 안에서 메서드 명을 작성 할 때는 아래와 같은 접두사를 붙인다.

findOrder() - 조회 유형의 service 메서드

addOrder() - 등록 유형의 service 메서드

modifyOrder() - 변경 유형의 service 메서드

removeOrder() - 삭제 유형의 service 메서드

saveOrder() – 등록/수정/삭제 가 동시에 일어나는 유형의 service 메서드

Mapper

Mapper 클래스 안에서 메서드 명을 작성 할 때는 아래와 같은 접두사를 붙인다.

selectOrder(); - 조회 유형의 mapper 메서드

insertOrder(); - 등록 유형의 mapper 메서드

updateOrder(); – 변경 유형의 mapper 메서드

deleteOrder(); - 삭제 유형의 mapper 메서드

Setter

Entity에는 Setter를 넣지 말것

  • DDD의 신뢰성을 높이기 위해 (Setter가 있으면 값이 언제변경 되었는지 파악하기 힘들다.)

TestCode

  • Test는 fixture를 활용하여 작성.
  • TestCode는 given, when, then의 구조로 작성.

커밋규칙

커밋 메시지의 7가지 규칙
1. 제목과 본문을 빈 행으로 구분한다
2. 제목을 50글자 내로 제한
3. 제목 첫 글자는 대문자로 작성
4. 제목 끝에 마침표 넣지 않기
5. 제목은 명령문으로 사용하며 과거형을 사용하지 않는다
6. 본문의 각 행은 72글자 내로 제한
7. 어떻게 보다는 무엇과 왜를 설명한다

커밋 메시지 구조

feat : 새로운 기능에 대한 커밋
fix : 버그 수정에 대한 커밋
build : 빌드 관련 파일 수정에 대한 커밋
chore : 그 외 자잘한 수정에 대한 커밋
ci : CI관련 설정 수정에 대한 커밋
docs : 문서 수정에 대한 커밋
style : 코드 스타일 혹은 포맷 등에 관한 커밋
refactor :  코드 리팩토링에 대한 커밋
test : 테스트 코드 수정에 대한 커밋

참고자료

[Git] 좋은 커밋 메세지 작성하기위한 규칙들

profile
배우고, 생각하고, 행동해라

0개의 댓글