일단 도메인구현은 어느정도 완료됐고,이제 웹과 데이터베이스를 붙일때니,붙이기전에 대충 패키지위치를 조정한다음에 추가할거임
원래 뭐 추가하기 직전이나,변경하기 직전이 리팩터링하기 제일 좋은시점이니까
그래도 나중에 웹과 db가 추가됐을때의 결과물도 표시를 하는게 글쓸때는 보기편하니까,멤버만 추가하고 나머지는 똑같이 진행할거임
대충 구조를
- inputapi(외부에서 요청을 받는 패키지,컨트롤러라고 생각해도됨)
- controller
- usecase(서비스 인터페이스라고 생각하면됨)
- outputapi(외부로 요청을 하는 패키지)
- 각종 외부요청패키지들
- domain
- 각종 도메인들
- repository
- service
- 각종 도메인들
- share(여러곳에서 사용하는 인터페이스들 모아두는곳)
이런식으로 생각하고 리팩터링을 진행할거임
나중에 유스케이스나 이런거도 도메인별이 아니라 다 쪼갤수도 있고 하지만,일단 별거없기때문에 뭉쳐두는걸로 진행하겠음
리팩터링을 하고나니,최상위는 이런구조고
여기서 config와 util은 각각 자기클래스만 가지고있는,다른곳에 들어가기 뭐한 애들이고
도메인은
이런식으로 의존성역전을 해서,상위클래스가 하위클래스의 인터페이스를 소유하게 만들었고,
또한 같은맥락으로 inputapi에서 컨트롤러가 서비스의 인터페이스를 소유하게 만듬
사실 서비스를 다형성으로 사용할거도 아니고 필요없다고 생각되기도 하지만,
다형성보다는 구현과 인터페이스의 분리를 목적으로 했고,만약 서비스가 다른 서비스를 필요로할때,UseCase를 의존하는걸 강제하는식으로 진행하려고 이렇게 만들었음
그 외로 외부api와 share는
이런식으로 모아뒀음
share는 여러군데서 의존해서,어떤 한 패키지가 인터페이스를 소유하기 애매한것들을 모아두는 패키지임
도메인과 엔티티도 분리할까 생각했는데,어짜피 뭐있지도않은데 연관코드늘리기싫어서 걍 붙였음
이제 대충 구조는 나왔으니까 도메인에 엔티티붙이고 맨날하던 컨트롤러서비스레포지토리 만들면됨
어짜피 비즈니스로직은 다 뽑아뒀으니 금방만듬
'사이드프로젝트 > (240808)이거왜오름?' 카테고리의 다른 글
이거왜오름? 테스트 작성 (0) | 2024.09.12 |
---|---|
이거왜오름?컨트롤러서비스레포지토리 추가 (2) | 2024.09.01 |
이거왜오름?거래량 순위 받아오기 (1) | 2024.08.24 |
이거왜오름?Spring AI 사용법 익히기 (0) | 2024.08.23 |
이거왜오름?gpt사용전 의존성추가 및 openAI api key 받기 (0) | 2024.08.23 |