Skip to content

4. 코드 컨벤션

ashd89 edited this page Jul 23, 2024 · 11 revisions

1. 응답 형태

🔹 BaseResponse를 사용하여 API 응답을 일관되게 처리

🔹 BaseResponse 클래스는 요청의 성공 시 SUCCSS 상태의 "메시지", "상태 코드", "결과 데이터"를 포함.


2. 예외 처리

🔹 예외는 발생한 위치에서 throws BaseException을 통해 BaseResponseStatus를 포함하여 상위 클래스로 전달

🔹 최종적으로 Hexangonal Arichitecture의 InnerAdapter인 controller에서 try-catch를 이용하여 처리

🔹 Spring Security를 사용하며, filter처리 과정에서 발생하는 로그인 에러는 BaseResponse형태로 CustomAutheticationEntryPoint를 활용하여, direct응답으로 처리

3. 네이밍 규칙

🔹 DTO는 요청(Request)과 응답(Response) 패키지로 구분,
클래스 이름은 CreatePaymentRequest 와 같은 형식으로 통일한다

🔹 서비스 클래스는 implement하는 해당 기능의 UseCase 이름에 service를 붙여 명명 ex)
SignupSerivce (O)
SignupImpl(X)

🔹Controller는 Usecase를 기준으로 하여 Create/Read/그 외 기능으로 분류


4. 명명 규칙

🔹Spring Code 내 생성자, 변수, 클래스명은 대문자 카멜 케이스를 사용한다.

class ProgramController{
  ...
};
private String programName;
private String programInfo;

private LocalDateTime reservationOpenDate;
private LocalDateTime programStartDate;
private LocalDateTime programEndDate;

🔹client가 서버로 요청하는 Mapping주소는 소문자와 "-"(hyphen)의 결합 형태로 작성 ex)
/main-page (O)
'/mainPage(X)`

5. Git Convention

🔹브랜치명
[제목 / 기능 / 상세기능]
feature/program/create

🔹이슈명
[Type] 이슈명
[Refactor] 예약 가능 좌석 성능 개선


6. 커밋 컨벤션

Type 설명
Feat 새로운 기능 추가
Fix 버그 수정 또는 typo
Refactor 리팩토링
Design CSS 등 사용자 UI 디자인 변경
Comment 필요한 주석 추가 및 변경
Style 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
Test 테스트(테스트 코드 추가, 수정, 삭제, 비즈니스 로직에 변경이 없는 경우)
Chore 위에 걸리지 않는 기타 변경사항(빌드 스크립트 수정, assets image, 패키지 매니저 등)
Init 프로젝트 초기 생성
Rename 파일 혹은 폴더명 수정하거나 옮기는 경우
Remove 파일을 삭제하는 작업만 수행하는 경우