https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=291420687
최범균님의 "도메인 주도 개발 시작하기(2022)" 책을 읽으며 제가 이해한 내용을 메모하였습니다.
(참고는 하시되 100% 신뢰하지 마시고 틀린 것이 있다면 함께 공유해주시면 감사하겠습니다.)
🌸
내가 그의 이름을 불러 주기 전에는
그는 다만
하나의 몸짓에 지나지 않았다.내가 그의 이름을 불러 주었을 때
그는 나에게로 와서
꽃이 되었다.내가 그의 이름을 불러 준 것처럼
나의 이 빛깔과 향기에 알맞은
누가 나의 이름을 불러 다오.
그에게로 가서 나도
그의 꽃이 되고 싶다.우리들은 모두
무엇이 되고 싶다.
너는 나에게 나는 너에게
잊혀지지 않는 하나의 눈짓이 되고 싶다.김춘수. ⟨꽃⟩
public class OrderLine {
private Product product;
private int price;
private int quantity;
private int amounts;
...
}
public class Money {
private int value;
public Money(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
//Money를 사용하도록 OrderLine을 변경한 코드
//Money 타입 덕에 price나 amounts가 금액을 의미한다는 것을 쉽게 알 수 있다. => 코드 가독성 향상
//**Money는 더 이상 단순 숫자가 아닌 도메인의 '돈'을 의미하는 것**
public class OrderLine {
private Product product;
private Money price;
private int quantity;
private Money amounts;
...
}
public class Money {
private int value;
...생성자, getValue()
public Money add(Money money) {
return new Money(this.value + money.value);
}
public Money multiply(int multiplier) {
return new Money(value * multiplier);
}
}
public class Order {
// OrderNo 타입 자체로 id가 주문번호임을 알 수 있다.
private OrderNo id;
...
public OrderNo getId() {
return id;
}
}
도메인이란 무엇일까. 이전까지 도메인이라고 한다면 단순히 인터넷 주소를 떠올리곤 하였다. 무지했지만 도메인 주도 개발이라고 하면 인터넷 주소를 작성하는 방법정도로 생각했었다(🦮무식;)
이번 챕터를 읽어나가면서 도메인에 대한 이해가 좁았음을 깨달았다. 그럼에도 아직은 누군가 도메인에 대해서 묻는다면 확실하게 대답할 자신은 없다.(책을 끝까지 읽어가는 과정에서는 나만의 답을 찾기를)
도메인은 아직이지만 도메인 주도 개발에서 추구하고자 하는 것이 무엇인지는 알 것 같다. 이는 도입부에 소개한 김춘수 시인의 '꽃'이 아닐까.
내가 어떤 무엇에게 관심을 주기 전까지 그것은 내게 아무것도 아니지만, 내가 그것에게 이름을 지어준다면 그것은 내게 의미있는 존재가 되는 것처럼.
도메인 주도 개발이 추구하는 것은 하나의(혹은 여럿) '의미'를 부여하는 행위가 아닐까. 그 의미를 공유하고 확장하는 과정이 아닐까.