Skip to content

Commit dd04b10

Browse files
author
yumin-kim
committed
feat: Add chapter 09
1 parent 2e8166b commit dd04b10

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

Diff for: chapter09/README.md

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# 09. 암시적인 개념을 명확하게
2+
3+
심층 모델이 강력한 이유는 심층 모델에 사용자의 행위, 문제, 문제의 해법에 대한 본질적인 지식을 간결하고 유연하게 표현하는 중심 개념과 추상화가 담겨 있기 때문이다.
4+
5+
심층 모델로 향하는 첫걸음은 일단 도메인의 본질적인 개념을 모델 내에 표현하는 것이다.
6+
7+
지식탐구와 리팩터링은 중요한 개념이 모델과 설계 내에 명확하게 인식되고 표현될 때에야 비로소 본 궤도에 오른다.
8+
9+
개발자들이 토의 중에 단서를 얻거나 설계상에 암시적으로 존재하는 개념을 인지하면 도메인 모델과 관련 코드를 대량으로 변환하게 되며, 그 후 하나 이상의 객체와 객체 간의 관계를 활용해 모델 내에 해당 개념을 명확하게 표현하게 된다.
10+
11+
대개 도약은 여러 가지 중요 개념이 모델 내에서 명확해지고 난 후에야 나타난다. 성공적인 리팩터링 과정을 거쳐 반복적으로 개념에 할당된 책임을 조정하고, 다른 객체와의 관계를 변경하며, 심지어 이름까지도 몇 번씩 수정한다.
12+
13+
### 개념 파헤치기
14+
15+
개발자는 잠재해 있는 암시적인 개념을 드러내는 단서에 민감해야 하며, 이따금 한발 앞서 미리 암시적인 개념을 찾아야 할 때도 있다.
16+
17+
### 언어에 귀 기울여라.
18+
19+
도메인 전문가가 사용하는 언어에 귀 기울여라. 복잡하게 뒤얽힌 개념들을 간결하게 표현하는 용어가 있는가? 여러분이 선택한 단어를 고쳐주는가? 여러분이 특정 문구를 이야기할 때 도메인 전문가의 얼굴에서 곤혹스러운 표정이 사라지는가? 이 모두가 바로 모델에 기여하는 개념의 실마리에 해당한다.
20+
21+
새로운 단어를 듣게되면 명료하고 유용한 개념을 찾기 위한 대화와 지식탐구로 이어진다.
22+
23+
UBIQUITOUS LANGUAGE는 언어, 문서, 모델 다이어그램, 심지어 코드에도 널리 퍼져 있는 어휘로 구성돼 있다. 어떤 용어가 설계에 누락돼 있다면 누락된 용어를 설계에 포함시켜 모델과 설계를 향상시키는 기회가 될 수 있다.
24+
25+
### 어색한 부분을 조사하라
26+
27+
필요한 개념이 늘 대화나 문서로 인식할 수 있을 만큼 확연히 드러나 있지는 않다. 이미 존재하는 개념을 파헤치거나 새로운 개념을 만들어내야 할지도 모른다. 아울러 설계에서 가장 어색한 부분을 조사해야 한다.
28+
29+
객체가 모든 작업을 원활하게 수행하지만 할당된 일부 책임이 어색하다는 것을 발견할지도 모른다. 또는 뭔가가 누락됐다는 사실을 깨닫는다고 해도 모델과 관련된 문제를 어떻게 풀어야 할지 감이 잡히지 않을 수도 있다.
30+
31+
### 모순점에 대해 깊이 고민하라.
32+
33+
도메인 전문가는 자신의 경험과 필요에 따라 각기 다른 방식으로 사물을 바라본다.
34+
35+
어떤 모순은 용어를 다르게 쓰는 데서 발생하며, 어떤 모순은 도메인을 잘못 이해하는 데서 발생한다. 하지만 용어와 오해의 문제 말고도 두 도메인 전문가가 서로 모순되는 사실을 진술하는 경우도 있다.
36+
37+
모든 모순을 해소한다는 것은 현실적이지도, 바람직하지도 않다.
38+
39+
그러나 모순되는 사항을 그대로 유지해야 하는 상황에서조차 모순되는 양측의 주장을 모두 동일한 외부 현실에 적용하는 방법을 심사숙고하는 과정에서 숨겨져 있던 사실들을 밝히는 계기가 마련될 수 있다.
40+
41+
### 서적을 참고하라
42+
43+
모델의 개념을 조사할 때는 분명해 보이는 사실이라고 해서 간과해서는 안 된다.
44+
45+
### 시도하고 또 시도하라
46+
47+
각 방향 선회는 모델에 좀더 심층적인 통찰력을 반영했음을 의미한다. 각 리팩터링은 더 유연하고, 차후에 좀더 변경하기 수월하며, 수정해야 할 것으로 판명된 곳을 지체하지 않고 바로 수정할 수 있게 모델의 상태를 유지해준다.
48+
49+
어차피 선택의 여지는 없다. 실험을 유용한 것이 무엇이고 유용하지 않은 것이 무엇인지를 배우는 방법이다.
50+
51+
---

0 commit comments

Comments
 (0)