1. 서론
보통 MVC 패턴을 사용하는 프로젝트 구조는 레이어 계층형과 도메인형으로 구성되어 있습니다.
[계층형 예시]
[도메인형 예시]
계층형 구조가 프로젝트 전체 구조 파악은 쉽지만, 세부적으로 어떠한 도메인들이 연결되어 있는지 파악하기 어렵습니다.
예시로 현재 로아투두 Service 단만 보더라도...
한폴더안에 너무 많은 클래스가 모입니다.
그래서 전반적인 프로젝트 구조를 도메인형으로 변경하려고 합니다.
2. 모집 게시판 구조 변경
먼저 현재 작업중인 모집 게시판의 구조부터 변경하고자 한다.
- 최상단이 domainV2인 이유 - 이미 domain 폴더를 쓰고있어서 추후 변경
- 기존 Controller -> Api 로 이름 변경
- @RestController를 쓰기 때문에 크게 보면 Controller가 맞지만, View로 리턴하는 Controller를 이 프로젝트 안에서 쓰지 않고 Api만 있기때문에 더 적합한거 같아 교체하였다.
- Repository -> Service 에서 Repository -> Dao -> Service 로 변경
- 기존에 Dao 역할을 Service에서 하게 되면 다른 Service와 복합적으로 작용되는 메서드가 Controller단에서 이루어진다.
- Api로 이름을 바꾸면서 Api 클래스의 역할은 단순히 메소드를 실행해서 Service로 전달해주는 역할만 하게 하기 위해서 Dao 역할을 따로 생성하였다.