[DDD] 2. DDD의 아키텍쳐
·
Back-End/DDD
일반적인 아키텍쳐 4가지의 계층으로 나누어져 어플리케이션을 구성한다. 표현 계층(UI)는 응용 계층을 위해 정보를 가공한다. 응용 계층은 도메인 계층을 가지고와 메소드를 호출한다. 응용 계층은 데이터의 저장을 위해 인프라스트럭쳐에 의존한다. 일반적으로 상위 계층이 하위 계층에 의존하는 구조를 가지고 있다. 이전 포스트에서 도메인 영역에서 도메인 핵심 규칙을 구현한다고 하였는데, 구현한 기능을 누가 사용하고 누가 관리할까? 바로 응용 계층이다. 스프링을 한참 공부하면서 Controller, Service, Repository 컴포넌트들의 역할을 무엇이고 왜 나누어져있는지 궁금했다. 맨땅에 박치기 방식으로 개발을 하다보니 Controller는 Service에서 사용할 데이터 가공, Repository는 Se..
[DDD] 1. 도메인 모델 시작하기
·
Back-End/DDD
도메인이란? 다시, 도메인의 정의는 무엇일까? 도메인은 개발자가 구현으로 해결하고자 하는 문제 영역이다. 개발을 하기 앞서, 기획과 기능을 정한다. 이는 개발자가 직접 정할수도있고, 또는 기획자나 stakeholder에 의해 정해질 수 있다. 도메인은 이들이 공통적으로 집중할 수 있는 소통창구 역할을 한다. 도메인 모델 패턴 일반적인 어플리케이션의 아키텍쳐는 다음과 같다. 표현(UI) 사용자의 요청 처리 응용(Service) 사용자가 요청한 기능 실행, 비즈니스 로직을 직접 구현하지 않고 도메인 계층을 조합하여 기능을 실행 도메인 도메인 규칙 구현 인프라스트럭쳐 DB나 MQ같은 외부 시스템과의 연동을 처리 도메인 계층은 도메인의 핵심 규칙을 구현한다. 도메인의 핵심 규칙은, '출고 전에 배송지를 변경할 ..
[DDD] 0. DDD 시작하기
·
Back-End/DDD
DDD란 무엇일까? Domain Driven Design, 도메인 주도 개발이라는 뜻이다. 일반적인 백엔드 서버 개발은 DB와 뗄 수 없는 구조이다. 오히려 서버 로직 구성보다, DB 테이블 설계와 객체 생성에 더 시간을 많이 쏟는다. DDD는 도메인 모델이라는 키워드에 집중해, 어플리케이션 구성을 더 효율적으로 하는 일종의 방법론이다. 까지가 내가 아는 전부이다.... 주변 백엔드 개발자로부터 DDD를 공부해보라는 추천을 받아서 이번 기회에 공부하려고 한다. 학교 도서관에서 우연히 다음과 같은 책을 발견해서 얘로 결정!