도메인 모델링 세미나 14
< Context와 컴포넌트와 이상적인 아키텍처>편에서 Context에 대해 글을 썼다. 그때 인용한 동료의 Context에 관한 설명에 하나 빠진 요소가 있다. 오늘의 주제는 그것이다.
이번 글을 쓰는 직접적인 계기도 <경계 설정은 소프트웨어 설계의 핵심 활동>편과 마찬가지로 오락용으로 보던 축구 영상에서 영감을 얻은 것이다.
<경계 설정은 소프트웨어 설계의 핵심 활동>편에서는 이분법적으로 축구적인 관점(이 글에서는 측면과 동의어로 쓴다)과 사업적인 관점이라는 표현이 나온다. 캡처 한 새축(새벽의 축구 전문가)에서는 경기력적인 측면이란 표현이 나온다.
유럽에서 가장 축구를 잘하는 클럽인 레알마드리드의 크-카-모(3명의 선수 이름을 말함) 미드필더 조합이 깨지는 문제를 지적한 것이다. 경기력적인 측면의 위험을 레알마드리드가 감수하는 이유는 어떤 측면일까?
앞서 <Context와 컴포넌트와 이상적인 아키텍처>편에서도 축구 영상 캡처를 하면서 '포트폴리오 구성 측면'이라는 표현을 쓴 일이 있다. 영상에서 쓴 표현이 아니라 축구 클럽 운영 방식에서 선택지를 조합하는 행위를 내가 그렇게 표현한 것이다.
독자들의 이해를 위해 새축의 영상이 다루는 사건에 대해 배경을 조금 설명하자. 카세미루라는 세계 최고 수준의 미드필더를 레알 마드리드가 맨유에 팔기로 한 것이다. 자칫 잘못하면 올해 목표로 하는 우승컵 상당수를 잃을 수도 있는 도박이다. 그렇게 보는 측면이 바로 경기력적인 측면이라 할 수 있다.
다른 측면으로 볼 수도 있을까? 기업 운영은 무슨 일이 벌어질지 모르는 위험을 다루는 일이고, 사람들이 속한 시스템이기도 하고 이해관계자들의 욕망을 절충하는 일이기도 하다. 본질적으로 경기력적인 측면만 보다가 사업적 측면을 놓치면 재정적으로 위험해질 수 있다. 이렇게 다양한 양상을 다루는 관점을 '포트폴리오 구성 측면'이라고 할 수 있다.
그래서 의사결정을 해야 한다. 새날의 영상을 모두 보면 '크-카-모' 조합의 세대교체를 언급한다. 지속적으로 왕조를 유지하려면 세대교체가 필요하다. 이것은 경기력적인 측면과는 다른 측면이다. 일종의 시간 축을 다루는 일이고, 지속 가능성에 대한 이야기다.
정답은 없다. 시스템을 구성하고, 결정하는 주체가 되는 이들이 만들어가는 것이다. 길게 돌아온 듯도 한데, 서두에 인용한 동료의 기록에서 빠진 항목을 말하려는 것이다. 바로 시점에 대한 고려다.
Context를 다르게 표현하면 화제(대화하려는 대상)에 대한 압축적인 표현일 수도 있다. 쟁점에 대해 분명하게 드러내거나 쟁점의 바탕 환경을 명확하게 하는 개념이자 수단일 수도 있다. 그때, 어느 시점의 문제인지 분명하게 해 주면 더욱 유용해질 것이다.
5. 아주 이상적인 아키텍처
10. Repository 빌딩 블록에 대해 생각해보기
11. 맥락은 어떻게 표현할 것인가?