도메인 주도 설계 - 02. 의사소통과 언어 사용

dvmflstm·2020년 2월 8일
0
post-thumbnail

ubiquitous language (보편 언어)

1장에서 다루었듯이 도메인 전문가와 개발자 간, 혹은 개발자와 개발자 간의 지식 탐구는 매우 중요하다. 그리고 이 지식탐구를 통해 풍부한 지식을 설계에 담아내기 위해서는
다양한 상황에서 사용할 수 있는 팀의 '공유 언어'가 필요하다. 그리고 이 언어는 그 가치에 대한 활발한 실험이 필요하다.

도메인 전문가는 개발자들의 기능적인 용어들을 알아듣지 못할 것이고, 개발자들은 도메인 전문가의 전문적인 용어들을 알아듣지 못할 것이다. 이러한 간극을 보편 언어가 메워야 한다.
프로젝트에서 사용하는 언어가 분열되면 심각한 문제가 발생한다. 일상적인 토론에서 쓰이는 용어가 코드로 녹아들지 못할 것이고, 공유되지 못한 언어들 간의 번역은 의사소통을
무디게 하고 지식 탐구를 빈약하게 만든다. 번역이 필요없는, 팀 내의 모든 사람이 직접적으로 알아듣고 의사소통할 수 있는 보편 언어가 필요하다.

보편 언어는 모델을 기반으로 만들어져야 한다. 모델 사이의 관계는 모든 언어에 내재된 결합 규칙이 될 것이며, 단어와 구절의 의미는 모델을 구성하는 개별 요소의
의미를 각각 반영할 것이다. 이러한 모델 기반 보편 언어를 지속적으로 사용하다 보면 모델의 취약점이 드러날 것이고, 언어에는 공백을 메우기 위해 새로운 단어가 등장할 것이다.이러한 언어의 변화는 곧 도메인 모델의 변화를 의미한다.

모델을 언어의 근간으로 사용해야 한다.

팀 내의 모든 의사소통과 코드에서 해당 언어를 끊임없이 적용하는 데 전념해야 한다.

다이어그램과 문서에서, 그리고 특히 말할 때 동일한 언어를 사용해야 한다.

보편 언어의 변화가 곧 모델의 변화라는 것을 인식해야 한다.

개발자는 설계를 어렵게 만드는 보편 언어의 모호함과 불일치를 찾아내는 데 촉각을 곤두세워야 한다.

profile
서울대학교 컴퓨터공학부 github.com/BaekGeunYoung

0개의 댓글