98
1
부
기초
2.4.12.4.1
보편 언어 보편 언어
보편 언어보편 언어
ubiquitous
language
는 사용자가 쓰는 용어를 코드에서 동일하게 사용하려고 노력해야 한다
는 개념과 관련된다. 이 개념은 제공
delivery
팀과 실제 사람들 사이에 공통된 언어가 있다면 실제
도메인을 더 쉽게 모델링하고 의사소통도 향상된다는 것을 의미한다.
이에 반하는 사례로 대규모 글로벌 은행에서 일했던 경험이 떠오른다. 당시 필자는 기업 유동
성(동일 기업이 보유한 여러 계정 간에 현금을 전환할 수 있는 능력을 일컫는 말) 분야에서 일
하고 있었다. 프로덕트 오너
product
owner
는 협업 능력이 뛰어났으며 시장에 선보일 다양한 제품을
매우 잘 이해하고 있었다. 그녀와 함께 일할 때는 미용과 하루 일상 같은 일, 그녀의 세계에서
큰 의미가 있고 그녀의 고객에게 의미 있는 모든 것을 논의했다.
반면에 코드에는 이러한 언어가 없었다. 어느 시점에 이르러 우리는 데이터베이스에 표준 데
이터 모델을 사용하기로 결정했다. 해당 모델은 ‘
IBM
은행 모델’이라는 이름으로 널리 알려
져 있었지만, 필자는 표준
IBM
제품인지 아니면 단지
IBM
컨설턴트가 만들어낸 것인지를
고민하면서 이 모델과 씨름하고 있었다. 당시
IBM
은 ‘
arrangement
’라는 모호한 개념을 정
의해 모든 은행 업무를 모델링할 수 있는 곳에 이 개념을 적용했다. 대출을 받는다? 그것은
arrangement
였다. 주식을 산다? 역시
arrangement
다. 신용카드를 신청한다? ...