-
Notifications
You must be signed in to change notification settings - Fork 11
대충 이해한 DDD
Sanghyuk Jung edited this page Jul 22, 2016
·
3 revisions
하려는 이야기
- DDD를 둘러싼 분위기가 어떻게 변했다고 느끼는가?
- DDD에서 무엇을 얻을 수 있다고 생각하는가?
- DDD를 적용하려다보면 무엇이 걱정이 되는가?
한 10년전?
- Rich Domain이 논의의 중심
- Active Record + Domain Logic
- Spring의 @Configurable, Sng ROO
- 어떻게 해야할지 모르겠다.
- 좋은 사상 같은데, 구체적인 예제가 없어
- 의구심
- 과연 실용적인가? 과연 Java에 어울리는가?
- Model객체에 조금씩 로직을 담는 정도로만..
- DDD에 올리는 스펙, 구현기술이 이전보다는 성숙
- JPA, Spring Data JPA
- 발전된 논의
- CQRS, EventSourcing
- Micrososervice와의 접목
- 좋은 책들이 많이 나왔다.
- 최범균님 책도..
- 패키지를 나누기
- 경계의 기준 : 업무영역 * 레이어
- 이름
- 의존 관계, 양방향 여부
- 객체의 책임, 의존관계
- 객체 그래프를 어디에서 끊을 것인가?
- 컴퍼넌트/패키지별 담당 조직 배분
- 테스트하기 쉬운 구조
- 구체적 패턴
- presentation, application, infrastructure
- 아키텍처 패턴?
- Aggregate Root
- 이론/개념적으로 더 정제되어 가는 느낌 : 테스트로 치면 XUnit test pattern과 비슷?
- presentation, application, infrastructure
- 더 쪼갠 역할
- Model객체 -> DTO, Command(Form), Entity
- Entity 내부에서의 그룹핑(Embbeded)
- ORM의 활용의 길잡이
- 결국은 객체 중심지향의 기본
- 업무 어플리케이션에서 Immutable한 Busineess 객체
- 너무 많은 생성자를 가진 DTO 때문에 전에는 Java에서는 실용적이지 않다고 생각했다.
- 다시 돌아보니 Model 설계를 쪼개야한다는 신호가 아닐까?
- DB 테이블의 컬럼이 많아도
@Embbeded
등을 이용해서 쪼개야하지 않을까?
- 이름짓기
- 영어
- Account vs User
- 늘 했어야하는 고민
- 데이터를 담는 객체가 너무 많아지지 않을까?
- Entity, DTO, Command, Event
- Map 선호자들까지 설득할수 있을까?
- Java웹개발 문화에 대한 비난을 더 크게 하지 않을까?
- 너무 만들어야할 코드가 많다? : 주로 얇은 레이어를 선호하는 문화를 가진 곳에서 나오는 비난들
- Event를 통한 전파
- 적정인 Rerefence로 코드를 추적하기 어려워지지 않을까?
- 응용/변형/타협