•
의존성 역전 원칙은 포트-어댑터 패턴이라고 불리기도 하는데, 엄밀히 말하면 둘은 다른 개념이다.
•
그러나 두 개념이 만들어진 이유와 결과가 유사하니 그렇게도 부를 수 있다는 해석이다. 왜 그렇게 해석할 수 있는지 살펴보자.
•
포트 어댑터 패턴은 두 시스템이 상호작용할 때, 가운데 추상을 두고 통신하도록 만들어 시스템 간의 종속을 피하도록 만드는 것을 의미한다.
◦
이 형태가 의존성 역전 원칙과 유사하다는 게 첫 번째 이유다.
◦
그리고 목적이 유사하다는 것이 두 번째 이유다.
•
이때 포트를 구현하는 구현체만 어댑터로 볼 수 있는 것이 아니며 포트를 사용하는 객체도 어댑터라 볼 수 있다.
◦
따라서 포트 어댑터 패턴은 이를 사용하는 방향에 따라 출력 포트 - 출력 어댑터, 입력 포트 - 입력 어댑터로 부른다.
1. 출력 포트 - 출력 어댑터
•
포트를 출력 포트라 부르고 포트를 구현하는 구현체는 출력 어댑터라고 부른다.
•
이때 출력이라는 용어가 붙는 이유는 실행 객체 입장에서 포트에 메시지를 전달하는 행위가 어떤 새로운 결과를 출력하기 위함이기 때문이다.
2. 입력 포트 - 입력 어댑터
•
이는 모든 입력이 포트를 통해 전달되게 하는 것으로 입력 포트, 입력 어댑터라 부른다.
•
메시지를 전달하는 객체가 포트에 의존함으로써 메시지를 구현하는 객체는 포트의 명세를 따르면 된다.
3. 정리
•
포트 어댑터 패턴은 내부 시스템이나 컴포넌트가 외부 시스템과 통신하는 방식을 추상화한다. 그리고 외부 시스템이 변경되어도 내부 시스템에 영향을 주지 않게 만든다.
◦
이 목적은 의존성 역전 원칙과 같으며 따라서 의존성 역전을 포트-어댑터 패턴이라고 부를 수 있는 것이다.