Ports and adapters architecture
2023. 6. 9. 08:45ㆍSoftware 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 |