인프런 커뮤니티 질문&답변

컴퓨터공부하자님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파

어플리케이션 계층이 예제에 있는 것인지 궁금합니다.

해결된 질문

21.11.14 22:45 작성

·

168

0

안녕하세요. 

도메인 주도 모델을 공부하면서 강의를 복습하고 있습니다. 비즈니스 로직이 Entity 객체에 들어가는 이유 등은 조금씩 이해가 가고 있는 중입니다. 그런데 제가 경험이 없다보니 이론서와 예제를 비교하다 보니까 다른 점이 몇 가지 있어서 실제로는 반드시 이론대로 사용하는 것은 아닌가? 라는 생각도 들고 학습을 위해서 간단히 만드신 건가 잘 모르겠어서 질문드려봅니다.

도메인 주도 설계 아키텍쳐를 보면 

1 프레젠테이션 계층 
2 애플리케이션 계층
3 도메인 계층
4 인프라스트럭처 계층 

이렇게 나누어진다고 하는데요. 
여기서 1 프레젠테이션 계층이 MVC이고
영상에서 나오는 controller domain service는 3 도메인 계층으로 보입니다. 그런데 2 애플리케이션 계층은 보이지 않고 애플리케이션 계층이 와야 할 자리에 도메인 계층이 있는 것처럼 보입니다. 예를 들면 도메인 객체인 Entity나 Repository가 Controller에서 사용되고 있습니다.

이론서를 보면 컨트롤러에서는 도메인 계층의 구현을 알지 않는 것이 좋으며, 모든 도메인 계층에 대한 호출은 어플리케이션 계층 안에서(ex entityApplicationService Class 안에서) 이루어지는게 좋다고 하더라고요.

실무에서도 예제처럼 어플리케이션 계층을 생략하고 할 때가 많나요? 아니면 강의에서는 학습용으로 생략이 된 것인지 제가 무언가 간과하고 있는 부분이 있는지 궁금해서 이렇게 질문드리게 되었습니다.

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

2021. 11. 15. 21:59

안녕하세요. 컴퓨터공부하자님

여러가지 아키텍처가 있고, 실무에서는 그것들을 그대로 딱 적용하기 보다는 현재 프로젝트에 맞는 방향으로 적용한다고 생각하시면 됩니다. 그래서 용어가 딱 맞지는 않는 것이지요.

참고로 강의에서는 도메인 주도 설계 아키텍처를 따르고 있지는 않습니다.

비유를 해서 맞추어보자면 여기서는 service가 애플리케이션 계층이고, 도메인이 domain(entity)객체로 보시면 됩니다. 도메인 부분에 service가 포함될 수도 있습니다.

추가로 실무에서 계층을 생략하거나 더 만들거나 할 때도 있습니다.

감사합니다.