Print
카테고리: [ Cloud Computing & MSA ]
조회수: 13360

Anti Corruption Layer Pattern

 

정의

대부분의 애플리케이션은 다른 시스템과 데이터를 통신하면서 사용된다.

이 과정에서 새로운 버전의 시스템과 오래된 버전의 시스템이 통신해야 하는 경우도 있다.

오래된 버전과 호환시키기 위해 새로운 버전에 다양한 서비스(프로토콜, 데이터 모델 등)을 추가시킬 수 있는데 이 과정에서 새로운 버전의 서비스는 설계의 의미를 잃게 된다.

이런 것들을 방지하고자 중간 다리 역할을 해주는 서비스를 만드는 것을 Anti-Corruption Layer 패턴이라고 한다.

 

왜 필요한가?

legacy 환경을 cloud 환경으로 이주한다고 가정해보자.

모든 legacy 환경을 cloud 환경에 이주하는 것은 특정한 이유(보안, 기술 등)로 불가능 할 수 있다.

그러면 새로운 환경의 서비스는 기존 환경(legacy)의 서비스와 통신을 해야 한다.

하지만 통신을 위해서 새로운 서비스에 어울리지 않는, 아키텍처와 디자인이 망가지는 기능들을 추가하고 연동해야 할 수도 있다.(오래된 서비스의 프로토콜, 데이터 모델 등을 지원하기 위해)

이렇게 될 경우 오래된 서비스와의 연동이라는 이유만으로 아키텍처와 디자인 등이 손상되게 될 것이고 이는 추후 다른 서비스와의 연동에서도 문제가 발생할 수 있다.

 

Anti Corruption Layer Pattern을 사용하는 경우

Anti Corruption Layer Pattern은 서브 시스템 사이에 배치되며 각 서비스를 격리시킨다.

이 레이어는 두 시스템 간의 통신을 변환하는 역할을 하며 다른 응용프로그램이 해당 서비스의 아키텍처 및 기술 방식을 손상시키지 않도록 한다.

이렇게 하면 해당 시스템을 설계한 의미와 아키텍처를 그대로 유지하도록 할 수 있다.

 
 

문제 및 고려사항

 

해당 패턴을 사용해야 하는 경우