without haste but without rest

DDD 본문

etc.

DDD

JinungKim 2022. 5. 6. 16:10

Domain Driven Development

 

1. Value object

원시 객체는 자유롭지만, 자유롭기 때문에 값을 제대로 표현할 수 없다.

값 객체는 값과 행위를 가지는 도메인 객체를 의미한다.

 

2. Entity

Value ojbect와 쌍벽을 이룬다. 엔티티는 라이프 싸이클에서도 동일성을 구분할 수 있다.

이때 Identity를 이용해서 동일한 객체를 구분할 수 있다.

 

3. Domain service

Value object만으로는 부자연스러운 점이 생기게 된다.

유저의 아이디가 유효한지 검사할 때 해당 Value object에서 담당하게 되면, 해당 객체가 아이디를 생성하고 스스로 중복을 검사한다.

어색하다.

Domain service는 이러한 부자연스러움을 해결해주는 객체다.

 

4. Repository

새로운 유저를 생성하는 도메인 서비스가 존재 한다고 가정하자.

도메인 서비스는 유저의 아이디를 생성하고, 중복인지 검사하고, 저장한다. 

데이터 스토리지를 직접 다뤄야 하므로 본질과 멀어지게 된다. 

따라서 데이터 스토어를 직접 다루는 코드를 리포지토리 레이어에 분리한다.

데이터 스토어의 종류가 변경되더라도 도메인 서비스는 필요한 정보만을 리포지토리 레이어에 넘겨서 처리하므로,

리포지토리 레이어만 수정하면되므로 코드의 밀집성이 높아진다.

'etc.' 카테고리의 다른 글

Codility Lesson4 MaxCounter 파이썬 풀이  (1) 2021.10.08
ubuntu 20.04 - konlpy 설치 이슈 및 트러블슈팅  (0) 2021.09.30
konlpy m1 칩 이슈  (0) 2021.09.23
크론탭 튜토리얼  (0) 2021.05.17
자바스크립트 UTC to KST 변환  (0) 2021.05.07
Comments