서론
사내에서 DDD Start! 책으로 스터디를 진행하기로 했다. 정리하지 않으면 또 아무곳에 남지않을 것 같아 블로그에다가 정리해보려고 한다.
우선 DDD는 무엇이고 왜 공부하기로 마음 먹었는지부터 정리해본다.
What, Why and How
What is DDD(Domain Driven Design)?
도와줘요! 위키피디아!! https://en.wikipedia.org/wiki/Domain-driven_design
Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model.[1] The premise of domain-driven design is the following:
- placing the project's primary focus on the core domain and domain logic;
- basing complex designs on a model of the domain;
- initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
왜 DDD를 공부하기로 맘 먹었는가?
- 회사에서 MSA할거라고 팀을 도메인별로 나누어 버렸다. 도메인 별 구현을 하려면 알면 좋겠다고 생각했다.
- 그냥 공부를 요새 너무 안해서 공부가 필요했다. (뭐든 상관 없다. 일단 공부 좀 해야겠다.)
- 선배들이랑 공부해보고 싶어서. 항상 주니어 위주의 스터디를 해왔는데, 답을 내리지 못하는 경우들이 있었다. 시니어들이 많은 스터디여서 어떤 점이 다를까 조금 궁금하기도 했다.
어떻게 DDD를 공부할 것인가?
회사에서는 화, 목 점심시간에 모든 구성원이 세션을 읽어오고, 발표 담당자가 내용을 요약하여 발표한다. 나는 발표담당자가 아녀서 맘이 편하긴 하지만, 편한 맘 만큼 공부를 많이 안할 수 있으니 매주, 내가 공부한 내용들을 정리할 예정이다. 스터디에서 오간 내용들을 모두 올리면 철컹철컹 할 수 있으니.. 대략적인 논쟁거리, 의문사항이 있으면 추가로 작성해볼까 한다.
회사에서는 한 시간마다 두 챕터를 나가기로 했는데, 잘 지켜지지 않고는 있다.
책의 서론에 보니 책의 내용이 다음과 같이 구성되어있다. 책이 말하는 대로 꼭지를 잡아서 업로드를 올릴까 한다. 올리는 주기는 주에 1회!
1장, 2장: 도메인 모델을 구현하기 위한 기본 내용
- 도메인 모델이 뭐지? 엔티티와 밸류
- 아키텍쳐의 네 영역, DIP pattern, 도메인 영역의 구성 요소
3장, 4장: 애그리거트와 리포지터리: 애그리거트가 뭐지? 어떻게 구현하지?
- 리포지터리는 어떻게 구현하지?
- 리포지터리의 조회 기능을 우리 다같이 구현해볼까?
5장: 응용 서비스와 표현 영역
- 지금 까지 만든 도메인 모델은 어떤 역할인데? 응용 서비스가 어떻게 사용할꺼야? 표현 영역이랑 응용 서비스를 어떻게 연결할꺼야?
6장: 도메인 서비스의 이유와 구현방법
- 도메인 서비스가 왜 필요하지? 어떻게 구현할꺼지?
7장, 8장: 애그리거트의 트랜잭션 범위에 따른 구현
- 선점잠금과 비선점 잠금 구현법
9장: Bounded context
- Bounded context가 뭐지? 어떻게 통합하고 관계가 있지?
10장: 도메인 이벤트와 CQRS
- 도메인 이벤트 활용법, 처리법 등
- CQRS가 무엇이고 어떤 효과를 얻을 수 있을까??
'개발개발' 카테고리의 다른 글
과학과 예술에 대해서, 그리고 Bubblesortzines (0) | 2018.08.17 |
---|---|
MR과 PR의 차이 (0) | 2018.03.04 |
개발 공부하기 좋은 유용한 사이트 정리 (0) | 2017.10.09 |
개발을 잘하고 싶다. (0) | 2016.06.26 |