[DDD] ANTICORRUPTION LAYER

skayjays·2021년 11월 10일
1

DDD

목록 보기
10/16
post-thumbnail

정의

  • 개념적인 객체와 행위를 하나의 모델과 프로토콜에서 다른 모델과 프로토콜로 변환하기 위한 메커니즘이다.
  • Bounded Context를 있는 수단이다.

문제

  • 다른 시스템과 상호작용하기 위한 거대한 인터페이스를 보유한 새로운 시스템을 구축할 경우 두 모델을 연계하는 데 따르는 어려움이 있다.
  • 임시방편으로 새로운 모델을 다른 시스템의 모델과 유사하게끔 수정해서 새로운 모델의 의도가 전체적으로 매몰돼 버릴 수 있다.
  • 통합을 거쳐 커다란 가치를 얻을지도 모르고 어떤 경우에는 통합이 절대적인 요구사항일 수 도 있다.

해결

  • 클라이언트 고유의 도메인 모델 측면에서 기능을 제공할 수 있는 격리 계층을 만들어라.
  • 해당 계층에서는 내부적으로 필요에 따라 두모델을 상대로 양방향으로 번역을 수행한다.

고려사항

  • ANTICORRUPTION LAYER의 인터페이스 설계
    • Service로 설계한다.
  • ANTICORRUPTION LAYER의 구현
    • FACADE
      • 하위 시스템에 대한 클라이언트의 접근을 단순화한다.
      • 기능에 접근하는 것을 촉진하고 능률화 하며 그 밖의 것은 감춘다.
      • 기저 시스템의 모델을 변경하지 않는다.
    • ADAPTER
      • 행위를 구현하는 측에서 이해한 것과 다른 프로토콜을 클라이언트에서 사용하게 해주는 래퍼

정리

  • 이번 장에서는 BOUNDED CONTEXT를 잇는 방법인 ANTICORRUPTION LAYER 방법에 대해서 알아봤다. 실제 소프트웨어 개발하다 보면 context 간 통합이 이루어질 수밖에 없다 FACADE, ADAPTER를 통해 통합을 원활하게 이룰 수 있다고 생각한다. 실제 다양한 통합 방법 중 ANTICORRUPTION LAYER를 실무에 많이 사용하고 있는 것 같다.
profile
기초를 탄탄하게

0개의 댓글