Search

컨벤션

Code Convention

Entity
setter 사용 금지
메소드 사용 금지
private Builder → Builder 강제함으로써 코드 통일성
객체간 변환 작업
org.mapstruct.Mapper 사용
implementation 'org.mapstruct:mapstruct:1.5.3.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.3.Final'
Shell
복사
Custom ResultCode 사용
Custom ResponseEntity 사용
api 1개당 dto 1개씩 (req, res)
단건 조회 @Pathvariable 사용
요청할 데이터가 1개일 경우만 해당
2개 이상은 Dto에 담아서 요청
CQRS 도입에 대해서… 보류

Commit Convention

Feat : 새로운 기능을 추가하는 경우
Fix : 버그를 고친경우
Docs : 문서를 수정한 경우
Style : 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는경우
Refactor : 코드 리팩토링
Test: 테스트 코드 작성

Git flow

main
develop (default)
feature/
ex. feature/login

Code Style

API 명세서

Search
API Docs
Description
Domain
Method
URL
권한
request
response
구현
사용자 user
회원가입
POST
No
username: username, email: email, password: password
로그아웃
GET
User
투두 todo
투두리스트 조회
GET
User
투두 생성
POST
User
투두 수정
PATCH
User
투두 삭제
DELETE
User
투두 체크
PATCH
User
네이밍 규칙
dto
도메인 + 기능 + 요청 / 응답 Req / Res
request: Req
response: Res
메소드명: 무슨 일을 하는 메소드인지 이해될 정도면 됨
Entity
엔티티명: 도메인명 그대로 ex) User
테이블명: tb접두사를 붙혀서 표현하기
id → 도메인명 + id
Optional를 뺀다 → vaildator file 로 로직 분리
repository 인터페이스를 하나더 넣어서 사용할 메서드만 정리하자!
save, delete 등등 이정도?
구현 방법은 !
사진의 1번방법을 도입
Service
update → transactional, LAZY → tr = readonly = true
Test
단위 테스트로 진행
자신이 맡은 부분은 테스트코드 자신이 작성하기!
패키지 구조
domain / global / infra (도메인 별로)
User
login / logout 처리를 어디서!?
filter → 근거 빈약! 한번더 공부해보자
소셜로그인
google, naver, github
로컬로그인
메일 인증 → 링크 방식
닉네임 / 이메일 / 패스워드 회원가입
id → autoincrement
소셜 / 로컬 이메일 중복이어도 다른 유저 취급
Search
Description
Domain
Method
URL
권한
구현
인증 auth
회원가입
POST
No
로그인
POST
No
로그아웃 (액세스토큰만으론 로그아웃 불가..) (redis 로 블랙리스트 처리 하는듯)
POST
User
투두 todo
투두리스트 조회
GET
User
투두 생성
POST
User
투두 수정
PATCH
User
투두 삭제
DELETE
User
투두 체크
PATCH
User
yml vs proiperties = yml
풀리퀘, 이슈 템플릿 사용
라벨 커스텀으로 생성
이슈 하나당 1작업으로 이슈 내부에 체크박스 없게 할지, 아니면 이슈 내에 체크박스 둬서 다 한 거 체크할지.
database → value_together
에러코드는 주석으로 도메인별로 나눠서 작성하는게 좋더라~