도메인 모델링 세미나 3
HBR 한글판 2022년 7-8월호 기사 <데이터, 더욱 효과적으로 활용하는 법>에 굉장히 영감을 주는 관점과 그림이 있어서 이를 기록한다.
영감 넘치는 관점은 제품 접근방식이고, 역시나 영감을 주는 그림은 아래 내용이다. 나는 머릿속으로 이 그림을 여려 가지로 음미(?)해보았는데, 이 중 몇 가지에 대해 기록을 시도한다.
첫째로 나는 데이터 제품이라 명명한 관점 자체가 너무 신선했다. HBR 기사 내의 데이터 제품 정의는 이렇다.
데이터 제품은 조직 전체가 쉽게 접근해 다양한 비즈니스 과제에 적용할 수 있는, 즉시 사용 가능한 고품질 데이터 세트를 제공한다.
데이터 제품이라는 표현을 쓰지는 않지만 IT인력을 갖고 있는 기업들은 대부분 유사한 시도를 한다. 그래서, 나는 기능 자체보다는 관점에 초점을 둔 것이다.
Vaughn Vernon의 링크드인 최근 글을 화두로 던지며 <아키텍처는 의사소통에 관한 문제다>라는 글을 쓴 일이 있다. 관점을 다룰 수 있어야 아키텍처를 다룰 수 있다. 보통 아키텍트는 개발자외에도 개발 결과물에 관심이 많은 다수의 이해관계자들과 소통을 할 수 있는 사람이어야 하기 때문이다.
따라서 관점을 바꿔 표현하는 능력은 아키텍트의 핵심 스킬이다. 따라서 내가 가진 안목으로 볼 때, 데이터 제품 접근방식이라는 그림을 그린 분은 탁월한 아키텍트다. 왜 그런지 자세히 설명해본다.
먼저 다섯 개의 구획으로 나눈 후에 가운데 데이터 제품을 놓은 표현법이 만들어낸 직관이다. 가운데 알맹이에 데이터 제품을 두었다. 공급자(데이터를 만드는 시스템)와 사용자 사이에 핵심 가치가 바로 데이터이고, 이를 전달하는 제품으로 포장해서 데이터 제품이라 작명했다.
복잡한 시스템 현황 그리고 AS-IS(현실)와 TO-BE(미래상) 혹은 제안하는 솔루션 사이에서 혼선하지 않도록 분명한 추상화를 시도한 그림이다.[1] 복잡한 데이터를 다섯 가지 데이터 제품으로 추상화 했다. 훌륭하다.
다음으로 두 개의 구획 즉, 레코드 시스템과 데이터 플랫폼으로 구분한 데이터 공급처와 공급 흐름 묘사도 훌륭하다. 레코드 시스템의 세 가지 구분은 직관적으로 빠짐없이 망라한(MECE) 분류다. 데이터 플랫폼 내부 구성이야 기업 사정에 따라 다르겠지만 유효한 예시로 쓸만하다.
마지막으로 최종적인 데이터 소비를 사용 사례로 묶었다. 데이터 제품에 대한 쓰임새(use case) 구분이다. 여기서 탁월한 점은 그 앞에 소비 전형을 두어 다섯가지로 묶은 점이다.
이렇게 하면 공급방식을 표준화하여 소통할 수 이는 효과가 있다. 물론, 단순히 소통을 넘어서서 구축하는 작업에도 긍정적인 영향을 미친다.
예를 들면 프리로딩(캐시)을 고려할 수 있고, 정형화 한 양식으로 미리 가공할 수도 있고, 디스커버리 샌드박스는 (아파치 제플린처럼) 데이터를 탐색할 수 있게 구현해야 할 수 있다.
나는 그저 감탄과 영감을 받는 수준에서 글을 쓰느라 설명하다가 상세한 의미를 곱씹는 중에 또 다시 영감을 받아 우리 업무에 그대로 차용할 수 있다는 생각을 했다. 데이터 제품 자리에 핵심 비즈니스 콘텐츠(상품, 고객, 주문, 물류 등)를 배치하고 소비 전형 영역에 서비스 유형을 정리하면 다음 버전으로 우리가 구상하는 서비스 모델에 그대로 대응시킬 수 있을 듯하다.
그래서 나는 동료와 함께 진행중인 도메인 모델링 과정에 반영하기로 하며, 그 과정 일부를 기록에 남기는 도메인 모델링 세미나 연재로 다루기로 한다.
[1] 여러분이 만일 DDD 혹은 ORM을 알고 있는 개발자라면 Aggregate 도출과도 비슷한 일이다. 그렇지만, 이는 전혀 다른 사고의 흐름과 화제이기 때문에 주석으로 남기고 설명을 생략한다.