on
What is Domain Model (1)
얼마 전, 도메인 주도 설계에 나오는 도메인 모델의 정의에 대해 질문을 받았다. 교과서적인 답변으로 마무리 지었고 나와 질문을 준 상대방도 답변에 대해 만족스럽지 못했다. 그 후로 며칠동안 이론적이고 추상적인 이 단어의 뜻을 어떻게 하면 이해하기 쉽게 설명할 수 있을지 고민했었다.
이 글은 에릭 에반스의 저서 “도메인 주도 설계”에서 제기된 “도메인 모델”의 설명을 뒷받침하는 내용이다. 도메인 모델의 실체가 무엇인지 이해하기 위해 에릭 에반스는 어떻게 각 단어의 정의를 설명했고 여기서는 그 내용을 더 깊게 파고들 것이다. 어쩌면 이 글은 소프트웨어의 기술적인 내용보다 개론에 가까운 글이 될 수도 있다.
Models in Life
그럼 도메인 모델로 들어가기 전에, 도대체 모델은 무엇일까? 우리는 일상생활에서 모델이란 단어를 쉽게 찾아볼 수 있는데 그 중 흔히 알고 있는 ‘모델하우스’는 모델을 대표하는 뜻이다.
흔한 모델하우스의 풍경
또 한가지는 모델이란 실체가 패션업계에서 직업으로 존재한다.
디자이너는 무엇을 말하고 싶었던 걸까
이렇듯 모델은 다양한 분야에서 쓰이고 있다. 그렇다면 이렇게 모델을 대표하는 2개의 뜻이 갖는 공통적인 의미는 무엇일까? 바로 실제, 실물을 설명 혹은 표현한 것이다. 이런 풀이는 오히려 더 혼란스럽게 만들수 있으니 위의 예로 다시 설명해보겠다. 모델하우스는 실제로 사람이 살 수 있는 집을 대신해서 표현(represent)하고, 집을 분양하려는 사람들은 이 모델하우스를 통해 실제 집의 모습을 짐작할 수 있다. 마찬가지로 옷, 악세사리, 메이크업, 헤어스타일, 조명 등으로 패션디자이너의 사상, 생각, 느낌, 감정을 모델에게 표현(represent)한다. 그리고 이렇게 꾸며진 모델의 걸어나오는 모습을 통해 관객들은 그 디자이너의 감정, 사상을 느낄 수 있다.
하나 더 예를 들면, 학창시절 자주 보았던 화학 분자 구조의 모형도도 모델이다.
현대 사회인들이 즐겨마시는 카페인의 화학 구조
위의 그림에서 카페인의 분자는 실제 자연 세계에서는 저렇게 생기진 않을 것이다. 다만 이해하기 쉽게 카페인의 실제를 그래픽으로 표현한 것이므로 모델이라 할 수 있다.
지금까지 예시를 이용한 설명을 통해 모델이 갖는 의미가 무엇인지 감이 왔을 것이다. 모델은 인간이 복잡한 자연 세계를 이해하기 위해 만든 인공물이다. 그러므로 자연 세계는 모델이 될 수 없다.
우리가 배웠던 수학 방정식, 음악의 악보, 조각상, 지도 등 같이 주변은 모델로 가득하고 더 진화할 수록 많은 모델이 창조될 것이다. 이런 모델의 세계를 실제 세계인 것 처럼 받아들이는 인간은 어쩌면 가상의 세계에 산다고 해도 틀린 말은 아닐 것이다.
Make Reality Simple
모델의 뜻은 알겠는데 그럼 모델은 어떤 특성을 가질까. 모델은 실제의 모습을 단순화(simplification)한다. 화학 분자 모델에 나타나 있는 것처럼 실제를 알기 쉽게 단순화하여 중요한 사실만 전달한다. 에릭 에반스는 모델을 설명하면서 18세기 중국이 만든 세계 지도를 예시로 들었는데, 그 지도도 모델의 특징인 단순화가 잘 나타나 있다.
상상속의 세계지도 천하도
당시 중국은 한족(漢族)이 한족의 문화를 자랑스러워하며 타 민족을 배척하는 사상인 중화사상이 깊게 깔려 있었다. 그래서 중화사상의 측면을 알 수 있도록 중국을 제외한 나머지 국가를 단순하게 지도(model)로 세계(reality)를 표현했다.
이 내용을 종합해서 에릭 에반스가 일반화한 모델의 정의는 다음과 같다.
a model is a selectively simplified and consciously structured form of knowledge.
모델은 중요한 사실만 전달하기 위해 단순화를 한다했다. 즉 모델을 만드는 주체는 모든 정보를 해석하거나 표현하지 않고 핵심 요소만 선택하여(selective) 표현한다(중국의 세계지도가 중화사상을 표현하기 위해 다른 나라들만 형식상 표기했던 것처럼). 모델이 핵심 요소를 선택하여 표현 할 때, 그 요소를 표현하기 위해 틀이 필요하다. 모델을 만드는 주체는 그 틀을 의도적으로(consciously) 구조화시켜 선택된 핵심 요소의 뜻을 이해하기 쉽게 표현한다(주체가 중화사상을 의식하여 한족은 크게, 다른 나라를 작게 구조화).
into Model world
다음글에서는 이 모델을 도출하기 위한 “모델링”에 대해 알아보겠다.