Ports and adapters architecture

2023. 6. 9. 08:45Software Architecture

    목차
반응형

Ports and Adapters Architecture는 Hexagonal Architecture로 잘 알려져 있습니다.

해당 아키텍처의 목표는

  • 결국 "재사용성"을 높이고자 함 입니다.
  • 이를 위해 인터페이스, 핵심 로직등을 잘 decomposition (separation of concern) 하여 의존성을 최소화 하는것이 중요합니다.
    • 아키텍처에서 보통 말하는 포트는 interface를 노출하여 통신을 수행하는 부분을 의미합니다.
    • C&C view에서 componenent는 포트(들)을 지닐 수 있습니다.
    • port의 type에는 가장 간단하게 function call 부터 HTTP 통신 등 다양한 방식이 존재할 수 있습니다.
    • 또한 port는 in/out에 대한 로직도 담당합니다.
      • 예를들면 in port가 비동기로 동작할 수도 있으며, 이를 위해서 port는 비동기 통신 방식을 제공해야 합니다.
  • Port ?

거두절미하고 port와 interface는 다릅니다.
interface는 말 그대로 '접점'이며 이를 통해 client와 server가 통신하게 됩니다. interface의 통신 방식은 interface를 구현하는 stub에 의존합니다.
이후 stub을 통해 port로 요청이 들어오면 port는 비동기, 버퍼링, 에러 반환 처리 등 통신과 관련된 여러 로직을 처리합니다.

Ports and Adapters Architecture (줄여서 PAA)는 재사용을 위한 SW 아키텍처 중 하나이며 다음과 같은 형태로 구성됩니다.

 

PPA에서는 interface가 2개의 단계로 존재합니다.

  • 1. adapter: 이는 외부 컴포넌트들과 연동을 위한 interface 입니다.
  • 2. port: 실제 로직이 노출하는 추상화된 API를 의미합니다.
    • 이는 method invocation, RPC, HTTP 등 다양한 방식으로 구현 가능합니다.

 

반응형

'Software Architecture' 카테고리의 다른 글

Architecture view mode  (0) 2023.06.26
모듈 vs. 컴포넌트  (0) 2022.05.06
아키텍트의 역할 (Architect role)  (0) 2022.05.06