////
Search
Duplicate
🛰️

부록 A. 포트-어댑터 패턴

의존성 역전 원칙은 포트-어댑터 패턴이라고 불리기도 하는데, 엄밀히 말하면 둘은 다른 개념이다.
그러나 두 개념이 만들어진 이유와 결과가 유사하니 그렇게도 부를 수 있다는 해석이다. 왜 그렇게 해석할 수 있는지 살펴보자.
포트 어댑터 패턴은 두 시스템이 상호작용할 때, 가운데 추상을 두고 통신하도록 만들어 시스템 간의 종속을 피하도록 만드는 것을 의미한다.
이 형태가 의존성 역전 원칙과 유사하다는 게 첫 번째 이유다.
그리고 목적이 유사하다는 것이 두 번째 이유다.
이때 포트를 구현하는 구현체만 어댑터로 볼 수 있는 것이 아니며 포트를 사용하는 객체도 어댑터라 볼 수 있다.
따라서 포트 어댑터 패턴은 이를 사용하는 방향에 따라 출력 포트 - 출력 어댑터, 입력 포트 - 입력 어댑터로 부른다.

1. 출력 포트 - 출력 어댑터

포트를 출력 포트라 부르고 포트를 구현하는 구현체는 출력 어댑터라고 부른다.
이때 출력이라는 용어가 붙는 이유는 실행 객체 입장에서 포트에 메시지를 전달하는 행위가 어떤 새로운 결과를 출력하기 위함이기 때문이다.

2. 입력 포트 - 입력 어댑터

이는 모든 입력이 포트를 통해 전달되게 하는 것으로 입력 포트, 입력 어댑터라 부른다.
메시지를 전달하는 객체가 포트에 의존함으로써 메시지를 구현하는 객체는 포트의 명세를 따르면 된다.

3. 정리

포트 어댑터 패턴은 내부 시스템이나 컴포넌트가 외부 시스템과 통신하는 방식을 추상화한다. 그리고 외부 시스템이 변경되어도 내부 시스템에 영향을 주지 않게 만든다.
이 목적은 의존성 역전 원칙과 같으며 따라서 의존성 역전을 포트-어댑터 패턴이라고 부를 수 있는 것이다.