계층형 구조와 도메인형 구조
저희조는 도메인형 구조를 쓸 예정입니다.
도메인형 구조
com
ㄴ example
ㄴ vivid
ㄴ domain
| ㄴ user
| | ㄴ controller
| | ㄴ service
| | ㄴ repository
| | ㄴ domain
| | ㄴ dto
| | ㄴ exception
| ㄴ video
| | ㄴ controller
| | ㄴ service
| | ㄴ repository
| | ㄴ domain
| | ㄴ dto
| | ㄴ exception
| ...
ㄴ global
ㄴ auth
ㄴ common
ㄴ config
ㄴ error
ㄴ infra
ㄴ util
ㄴ security
Plain Text
복사
최상위 레벨의 패키지
•
최상위 레벨에서는 domain과 global로 패키징합니다.
◦
domain 패키지에서는 프로젝트와 DB 구조에서 핵심 역할을 하는 domian entitiy를 기준으로 하위 패키지를 구성합니다.
◦
global 패키지에서는 프로젝트 전방위적으로 사용할 수 있는 클래스 들로 구성됩니다.
domain 하위 패키지
•
controller, service, dao, domain, dto, exception 패키지로 구성됩니다.
◦
Service : serviceImpl, handler 도 포함 입니다.
◦
repository : repository 클래스들로 구성됩니다.
◦
domain : entity 클래스들로 구성됩니다.
◦
dto : dto 클래스들로 구성됩니다.
◦
exception : exception 클래스들로 구성됩니다.
global 하위 패키지
•
해당 패키지에는 특정 domain에 종속되지 않고, 프로젝트 전방위적으로 사용할 수 있는 클래스들이 모여있습니다.
•
global 패키지는 auth, common, config, error, infra, util 패키지로 구성됩니다.
◦
auth : 인증, 인가와 관련된 클래스들로 구성됩니다.
◦
common : 공통 클래스 혹은 공통 value 클래스들로 구성됩니다.
◦
config : 각종 configuration 클래스로 구성됩니다.
◦
error : 공통 exception, error와 관련된 클래스로 구성됩니다.
◦
infra : 외부 모듈, api 등을 사용하는 클래스로 구성됩니다.
◦
util : 공통 util성 클래스들로 구성됩니다.
◦
security : spring security 와 관련된 클래스들로 구성됩니다.