MSA 모듈 구조를 정리하기 위해 아침부터 팀원들 간의 회의가 있었다.
또한, msa 구조로 나눠지면 기존의 엔티티 연관관계들이 끊기게 되어 HTTP 통신을 따로 해서 그 데이터를 가져와야 하는데 로컬에서 돌리려면 nginx를 사용해야 한다는 것이다.
1) Layered Architecture VS DDD
한 컨트롤러가 service 파일을 주입받을 때 controller에 해당하는 application단의 service가 아니라 domain단의 data service를 주입받고 있었다.
이런 상황에서 module 정의 파일에서 provider를 import 해올 때 과연 data service 파일을 import 해와도 되는 것인가?에 대한 의문이 생겼다. 왜냐하면 기존에 module 파일에 주입되는 service들은 data service 파일이 아니라 application 단의 service 파일로 주입을 해왔었기 때문이다.
결국 이 문제를 해결하기 위해서는 유연한 레이어드 아키텍처냐, 타이트하게 관리하는 DDD냐의 차이이다.
presentation
application
domain 이 있다면 위에서부터 순서대로 계층을 거쳐야 하는데, 레이어드 아키텍처의 경우 application 단을 거치지 않고 바로 domain으로 간다이며, DDD는 presentation에서 application을 꼭 거치고(여기가 메인), domain으로 가냐의 차이이다.
** 또한 레이어드 아키텍처의 경우 presentation에서 바로 domain으로 갈 수도 있고, presentation을 거치지 않고 application에서 바로 domain으로 가는 등 말그대로 '유연하게' 계층 구조를 갖는 것이다.
디렉토리 구조를 정할 때 이런 구조는 눈에 잘 보이지 않았었는데, 레이어드 아키텍처와 DDD의 차이점을 알고나니 그 차이가 명확해졌다.
오늘도 수고했다. 내일도 화이팅 :)
'업무 TIL' 카테고리의 다른 글
24/10/28 월 업무 TIL (0) | 2024.10.28 |
---|---|
230801 월요일 업무 TIL (0) | 2023.08.02 |
230731 월요일 업무 TIL (0) | 2023.08.01 |
230728 금요일 업무 TIL (0) | 2023.08.01 |
230727 목요일 업무 TIL (0) | 2023.08.01 |