[Read] 도메인 주도 개발 시작하기(1)

노아카프카·2022년 7월 7일
0

1. 도메인 모델 시작하기

1.1 도메인이란?

도메인 : 소프트웨어로 해결하고자 하는 문제영역.
상황에 따라서 필요한 하위 도메인을 구성하면 된다.(도메인마다 고정된 하위 도메인을 구성할 필요는 X)

1.2 도메인 전문가와 개발자 간 지식 공유

각 도메인에서는 요구사항에 대한 이해와 분석이 필요하다.
요구사항의 구체에 대해서 추측하지 말고, 진짜 필요로 하는 기능을 개발해야한다.(Garbage In, Garbage Out)
이를 위해서 이 책에서 추천하는 간단하고 좋은 방법은 전문가와 대화하는 것이다.

1.3 도메인 모델

도메인 자체를 이해하기 위해서 표현하는 개념 모델.
특정 도메인을 이해시킬 수 있는 여러가지 방식으로 표현된다.(e.g 객체 도메인 모델, 상태 다이어그램 등)

1.4 도메인 모델 패턴

일반적 애플리케이션의 아키텍쳐는 다음과 같이 구성된다.
User <-> [표현 - 응용 - 도메인 -인프라] <-> DB
도메인 모델 패턴은 도메인의 규칙을 도메인계층에서 객체지향적으로 구현하는 것을 말한다.

1.5 도메인 모델 도출

도메인의 요구사항에 맞게 도메인 객체 내부의 변수 및 함수를 모델링한다.

1.6 엔티티와 밸류

  • 엔티티 : 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것. 식별자(Primary Key)를 가진다.
  • 밸류 : 개념적으로 완전한 하나를 표현할 때 사용.
    밸류 객체의 데이터를 변경할 때에는 기존 데이터를 수정하는 방식 보다는, 새로운 밸류 객체를 생성하는 편이 좋음. -> Safe
    밸류 객체에 set메서드를 무조건적으로 넣는 것은 좋지 않다. 데이터가 변경되어서는 안되는데 변경될 여지가 있음. -> 생성자에서 구현
    (set메서드를private하게 구현해서 생성자에서 호출)

1.7 도메인 용어와 유비쿼터스 언어

도메인에서 사용하는 용어는 도메인에서 필요로 하는 요구사항이 반영이 되어야한다.
단순 step1,2,3,4 로 표현하기 보다는 흔히 말하는 업무로직으로 표현하는 것이 코드를 이해하고 관리하기에 용이하다.

0개의 댓글