Skip to content

전략적 설계 - 바운디드 컨텍스트 연동 #4

Description

@nooose

📅 2024.08.12 - 바운디드 컨텍스트 연동

📝 학습 내용 요약

  • 주요 주제: 바운디드 컨텍스트 간 모델을 공유하는 여러 패턴을 공유

🧠 이해한 내용

  • 핵심 개념: 바운디드 컨텍스트도 상호작용이 필요하다. 이것을 컨트랙트(contract)라고 부른다.

  • 협력형(cooporation) 패턴

    • 파트너십 패턴: 한 팀은 다른 팀에게 API 변경을 알리고 다른 팀은 충돌 없이 받아들인다.
      양 팀 모두 커뮤니케이션이 원할할 때 사용할 수 있는 패턴이다.
    • 공유 커널 패턴: 공유할 수 있는 모델을 두고 각 팀이 공유 모델을 사용하는 패턴이다.
      공유 모델의 변경은 다른 팀에게 영향이 갈 수 있기 때문에 신중해야 한다.
  • 사용자 - 제공자(customer - supplier) 패턴: 서비스 제공자는 upstream, 고객 또는 사용자는 downstream이다.

    • 순응주의자(conformist) 패턴: 업스트림이 노출한 모델을 다운스트림이 받아들이고 사용한다.
    • 충돌 방지 계층(ACL: anticorruption layer) 패턴: 제공자의 모델을 따르지 않고 다운스트림 핵심 하위 도메인에 맞게 변환하여 사용한다.
      잦은 변경, 핵심 모델링을 방해하는 요소가 있거나, 비효율적이라고 판단되면 사용하는 것이 좋다.
    • 오픈 호스트 서비스(OHS) 패턴: 업스트림이 다운스트림을 보호하기 위해 공표된 언어를 사용하여 여러개의 방식을 제공한다.
  • 분리형 노선(seperated ways) 패턴: 전혀 협력하지 않는 것.

    • 바운디드 컨텍스트 내에서 각자 연동하여 해결하는 비용이 빠르다고 판단하면 사용한다.
    • 다음과 같은 이슈로 선택된다.
      • 복잡한 모델
      • 정치적인 문제로 커뮤니케이션 부재
      • 협업 의지가 없음

❓ 궁금한 점 및 논의할 주제

  • 질문 1: DDD가 적용되어있지 않은 조직에서도 위 패턴들 중 하나 이상은 자연스럽게 사용중일 것 같다.
    각자 재직중인 회사에서는 어떤 패턴이 사용되는지 궁금하다.

🔍 추가 참고 자료

🗒 기타 메모

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions