프로젝트에 레이어 4 계층 적용기

반응형
반응형

1차때는 모노로식으로 개발을 해서 설계가 없이 들어갔었는데 이번에는 MSA을 하기로 했다.
전 직장에서도 MSA로 개발했지만 개인적으로 이게 맞는 방법인지에 대해서 의구심이 계속 들었다.
그러다 레이어 4계층이라는 걸 알게 되었다.
근데 이게 생각보다 쉽지 않았다. 처음부터 잘될리가 없지만, 프리젠테이션이며, 어플리케이션이며 하나같이 이해가 안가는거 투성이었다.
이게 DDD라는 건가? 도메인 주도라는게 도대체 뭘까?
개인적으로 요런것들이 프로젝트 전반에 걸쳐서 가장 중요한 작업이라고 생각이 들었다.
그래서 튜터님에게 계속 질문을 했던걸로 기억한다. 아래는 튜터님이 주신 그림이다.

중요한 점은 고수준을 얼마나 보호할 수 있는가를 생각해봐야 한다고 하셨다.
그럼 여기서의 고수준은 어떤걸까? 바로 도메인이다. 그림으로 보면 알 수 있다시피 도메인 쪽으로 메시지를 보내고는 있지만 도메인은 어떠한 메시지를 보내고 있지도 않고 있다는점에서 도메인쪽이 가장 고수준이라고 볼 수 있다고 생각한다.
원칙적으로는 도메인은 자바 POJO로 개발을 해야 된다고 한다. 그래야 도메인 모듈을 분리했을때 사용할 수 있어야 한다고 하셨다.
물론 지금은 편의상 롬복같은걸 사용하지만 원칙적으로는 지워야 한다고 하셨다.

그렇다면 외부에서 받은 정보는 어떻게 할까?
바로 인프라스트럭처에서 정보를 넣어두고 사용을 해야 하는데 이것을 직접적으로 사용하면 안된다고 하셨다.
그러면 JPA에서 가져온 정보는 어떻게 사용할 수 있을까?
여기서 나온 정보가 DIP라고 알고 있다.

DIP가 의존성 제어 역전이라는 건데 결국 어플리케이션이나 도메인에서 직접적으로 인프라스트럭처를 직접사용하지 말라는 것에 있다.
이거에 대해 기억이 안나서 작성하기가 어렵지만 암튼 DIP라는걸 사용하게 되면 인프라 스트럭처에 직접 접근하지 않아도 그 객체들을 사용할 수 있다고 한다.

아직도 잘 모르겠다. 알면 알 수록 어려운거 같다.
근데 설계를 고민해야 실력이 느는것 같다고 생각이 들고 전 직장에서 뭘 했는지 잘모르겠다.

 

반응형

'국비지원 (스파르타)' 카테고리의 다른 글

프로젝트에 레코드를 추가해보자.  (1) 2025.03.14
4 layer 아키텍처  (0) 2025.03.13
2차 프로젝트  (1) 2025.03.12
카프카 - config 동적 할당 (json 매핑)  (1) 2025.03.11
ACID vs BASE  (0) 2025.03.07

댓글

Designed by JB FACTORY