본문 바로가기
DDD

Ubiquitous Language 란

by kooangelo 2024. 7. 31.

에반스가 소프트웨어 개발 커뮤니티에 기여한 단 하나의 발명을 꼽아야 한다면그건 바로 유비쿼터스 언어다.

이는 특정 핵심 비즈니스 도메인의 개념과 용어를 소프트웨어 개발 모델로 포착해야 하는 팀을 위한 패턴이다.

이 소프트웨어 모델은 명사나 형용사, 또는 동사를 비롯해 한 명 이상의 비즈니스 도메인 전문가가 포함된 개발 팀에서

공식적으로 언급되는 좀 더 풍부한 표현까지 포함한다.

하지만 이 모델이 단순히 단어의 나열에 한정된다고 결론 내린다면 이는 잘못된 판단이다.

(프로젝트별 표준 단어, 용어만 관리한다고 되는게 아니라는 의미)

유비쿼터스 언어도 여러분이 함께 일하는 비즈니스 도메인 전문가의 머릿속 모델을 반영한다.

따라서 모델이 도메인의 원리를 제대로 담고 있는지를 확인할 소프트웨어와 테스트는 이 언어를 포착하고 고수해야 하며,

(해당 도메인의 업무의 중요한 개념, 이벤트, 동사로 표현되는 행위가 있다면 당연히 화면이든 기능이든 SW에 포함되어야 한다는 의미인듯) 

여러분은 단순한 팀의 언어 이상의 무언가를 얻게 된다.

(아직은 확실치 않지만 아무튼 표준 단어 정리 이상의 무언가를 얻게된다는 의미인듯)

명시적인 바운디드 컨텍스트 안에서 도메인 모델로 표현되는 팀의 언어는 실질적인 비즈니스 가치를 더해줄 뿐만 아니라,

우리에게 올바른 소프트웨어를 개발하고 있다는 확신을 심어준다.

기술적인 측면에서도 좀 더 분명하게 행동을 정의함으로써 순수함을 높이고 오류 발생 가능성은 낮추며,

(행동 : CRUD 와 같은 단순한 DA동사가 아닌 BizRule동사, 예 : 신청, 접수, 주문, 승인, 반려, 확정, 마감, 집계 등)

더 나은 모델을 만 드는 데 도움을 받게 된다.

 

 - Implementing Domain-Driven Design 도메인 주도 설계 구현, 반 버논 p34

'DDD' 카테고리의 다른 글

DDD용어 및 약어  (0) 2024.07.31
BC : UL = 1 : 1  (0) 2024.07.31
전술설계  (0) 2024.07.31
전략설계  (0) 2024.07.31
전략설계와 전술설계  (0) 2024.07.31