Skip to main content

2. 도메인 지식 찾아내기

비즈니스 문제#

  • 개발에서의 문제의 의미는 광범위합니다.
  • 비즈니스 문제는 비즈니스 도메인과 하위 도메인의 모든 수준에서 발생할 수 있습니다.

도메인 지식 찾아내기#

  • 효과적인 소프트웨어는 도메인 전문가가 문제를 생각하는 방식, 즉 멘탈 모델을 모방해야 합니다.

커뮤니케이션#

  • 효과적인 커뮤니케이션이 지식 공유와 프로젝트 성공에 필수적입니다.
  • 전형적인 소프트웨어 개발 생애주기에서 도메인 지식은 분석 모델로 알려진 엔지니어 친화적인 형태로 변환됩니다.

유비쿼터스 언어란 무엇인가#

  • 전통적인 소프트웨어 개발 생애주기의 변환은 다음과 같습니다.
    • 도메인 지식이 분석 모델로
    • 분석 모델이 요구사항으로
    • 요구사항은 시스템 설계로
    • 시스템 설계는 소스코드로

비즈니스 언어#

시나리오#

  • 문장은 비즈니스 도메인을 바라보는 도메인 전문가의 시각을 반영합니다.

일관성#

  • 유비쿼터스 언어는 반드시 정확하고 일관성이 있어야 합니다.

모호한 용어#

  • 비즈니스 도메인에서는 정책(policy)이라는 용어가 규제 규칙 또는 보험 계약과 같은 여러 의미를 가집니다.
  • 정책의 경우 규제 규칙(regulatory rule)과 보험 계약(insurance contract)의 두 용어를 사용하여 명확한 모델을 만들어야 합니다.

동의어#

  • 특정 컨텍스트 안에서 각각의 용어를 사용하는 것이 바람직합니다.

비즈니스 도메인 모델#

모델이란 무엇인가#

  • "모델이란 사물이나 현상에서 의도한 관점만 강조하고 다른 측면은 무시하여 간략히 표현한 것입니다. 즉, 특정 용도를 마음에 둔 추상화의 결과입니다."

효과적인 모델링#

  • 모든 모델에는 목적이 있고 효과적인 모델은 그 목적을 달성하는 데 필요한 세부사항만 포함합니다.
  • 유용한 모델은 실세계의 복사본이 아니라 문제를 해결하려는 의도가 있으며, 그 목적에 필요한 정보만 제공해야 합니다.
  • 모델은 본질적으로 추상화의 결과입니다.

비즈니스 도메인 모델링#

  • 유비쿼터스 언어를 발전시키는 것은 사실상 비즈니스 도메인 모델을 구축하는 것입니다.
  • 엔지니어와 도메인 전문가의 효과적인 커뮤니케이션은 필 수 있습니다.

지속적인 노력#

  • 모든 이해관계자는 모든 프로젝트와 관련된 커뮤니케이션에 유비쿼터스 언어를 지속적으로 사용해 지식 공유를 활산하고 비즈니스 도메인에 대한 공유된 이해를 강화해야 합니다.

도구#

  • 위키는 유비쿼터스 언어를 수집하고 관리하는 용어집(glossary) 으로 사용될 수 있습니다.
  • 함께 용어집을 유지보수하는 것이 중요합니다.

도전과제#

  • 도메인 지식을 수집하는 신뢰할 만한 유일한 방법은 도메인 전문가와의 대화입니다.

결론#

  • 효과적인 커뮤니케이션과 지식 공유는 성공적인 소프트웨어 프로그램에 필 수입니다.
  • 도메인 주도 설계의 유비쿼터스 언어는 도메인 전문가와 소프트웨어 엔지니어의 지식 간극을 매워주는 효과적인 도구입니다.
  • 효과적인 커뮤니케이션을 위해서는 유비쿼터스 언어에서 반드시 모호성과 암묵적 가정을 제거해야 합니다. 언어의 모든 용어는 일관성이 있어야하며 모호하지 않고 동의어가 없어야합니다.
  • 유비쿼터스 언어를 육성하는 것은 지속적인 과정입니다.
  • 위키 기반 용어집과 거킨 테스트 같은 도구는 유비쿼터스 언어를 문서화하고 유지보수하는 과정을 쉽게 해줍니다.
Last updated on