지속 가능한 소프트웨어 설계 패턴: 포트와 어댑터 아키텍처 적용하기

육각형 설계(Hexagonal Architecture)로 더 잘 알려져 있는 포트와 어댑터 설계(Ports and Adapters Architecture)는, 인터페이스나 기반 요소(infrastructure)의 변경에 영향을 받지 않는 핵심 코드를 만들고 이를 견고하게 관리하는 것이 목표입니다.

포트와 어댑터 설계를 적용하면 인터페이스나 기반 요소가 사용자의 요구 사항 혹은 수용 능력에 영향을 받아 변경된다고 하더라도 애플리케이션의 주요 동작(도메인 로직 혹은 비즈니스 로직)에는 아무런 영향을 주지 않습니다. 도메인 로직을 견고하게 유지하며 소프트웨어의 지속 가능성을 높일 수 있는 것이죠. 저는 이번 글을 통해 포트와 어댑터가 무엇인지, 이 설계를 따르면 코드가 어떤 식으로 조직되는지, 실제 인터페이스나 기반 요소 등 한 번 변경되면 작업량이 많은 일에도 어떻게 쉽게 적용되는지, 설계에 따라 개발된 업무 로직을 얼마나 쉽게 테스트할 수 있는지를 보여드리겠습니다. 이를 통해 포트와 어댑터 설계의 장점을 실제로 보여드리고자 합니다.