패키지 구조
도메인 분류
# member
member
# directory
rss_directory_group
rss_directory
# sbscribe
rss_sbscribe
rss_directory_subscribe
# post
post
react
bookmark
open
# alert
alert
alert_service
레이어 구조
📂 config
📂 global
📂 utill
📂 domian
📂 ...{domain_name}
🟢 {domain_name}.java
📂 exception
🟢 GlobalHttpExceptionHandler
🟢 ErrorObject
🟢 NoSuchElementException ...
📂 presentation
📂 controller
📂 dto
📂 docs // swagger custom annotation
📂 service
📂 infrastructure
📂 entity
📂 ...{domain_name}
🟢 {domain_name}Entity.java
📂 repository
📂 api
계층적인 느낌 제시안1 좀더 나은거같은
장점: 도메인과 엔티티를 분리하면 도메인이 자유로워 진다
장점: DB 교체 가능
단점: 중복이 많아짐
Exception
GlobalHttpExceptionHandler
- http 오류 코드
도메인 별로
동사(에러) + 목적어(파라미터, 메시지)
동사
NoSuchElementException(목적어-Member)
"~를 찾을 수 없습니다."
목적어
enum
MEMBER, DIRECTORY
특수한 에러
- e.g.) RSS 구독 URL을 넣었는데 블로그가 사라진다면? 외부 API에서 에러가 남 <- 이건 우리 서버 에러? 사용자의 잘못도 아님
- 이럴 땐 상의하기
주석 컨벤션
복잡한 로직, 외부 인프라를 사용하는 로직, 메서드에 Javadoc 주석을 단다.
본인이 생각하기에 미완성인 부분은 TODO로 남겨주기
e.g.) // TODO: 이 부분 예외처리 해야됨
property 관리 방식
인프라 종류별로 나누기
e.g.)
application-mysql.yml
application-oauth.yml
application-kakao-alert.yml
테스트 방식
단위 테스트 위주
API 테스트 툴