

헥사고날 아키텍처, Adapter만 바꾸면 될까
AWS S3에서 다른 오브젝트 스토리지로 이전하며, Adapter 교체가 성립하려면 어떤 전제가 필요한지 확인했습니다. 헥사고날 아키텍처는 애플리케이션 코드를 지켜주지만 인프라와 데이터 이전은 별도로 대응해야 했습니다.


AWS S3에서 다른 오브젝트 스토리지로 이전하며, Adapter 교체가 성립하려면 어떤 전제가 필요한지 확인했습니다. 헥사고날 아키텍처는 애플리케이션 코드를 지켜주지만 인프라와 데이터 이전은 별도로 대응해야 했습니다.


Gradle 멀티모듈로 경계를 강하게 고정하면 잘못된 의존은 막을 수 있지만, 경계를 옮기는 비용도 커졌습니다. 그래서 함께 바뀌는 리듬을 기준으로 모듈 경계를 다시 설계하는 방법을 정리했습니다.

모놀리스와 MSA 사이의 대안으로 Spring Modulith 기반 Modular Monolith를 소개했습니다. 모듈 경계 검증, 이벤트 통신, 문서화, 모니터링 사례를 실제 적용 경험과 함께 정리했습니다.
![[코드가 환경을 모르는 구조 4/7] 타임머신 — 시간 축을 교체한다](https://flex.team/blog/og/main.jpg)

HR SaaS에서 시간을 비즈니스 입력으로 보고, 요청 헤더와 `Clock` Adapter로 현재 시점을 교체하는 타임머신 구조를 설명했습니다. 비동기 경계 전파와 환경별 활성화, 서드파티 시계 호출의 한계도 함께 다뤘습니다.
![[코드가 환경을 모르는 구조 3/7] IaC에도 헥사고날이 관통한다](https://flex.team/blog/og/main.jpg)

IaC를 헥사고날 구조로 재해석해 spec과 클라우드 구현을 분리하는 방식을 소개했습니다. Kotlin 타입 검증과 스택 분리로 오류를 줄이고 멀티클라우드 확장성을 높였습니다.
![[코드가 환경을 모르는 구조 3/7] IaC에도 헥사고날이 관통한다](https://cdn.sanity.io/images/v31psllp/production/b2a8cb4606e7b21da6b7f074f0c8238e9d02de14-1684x1030.png)

IaC에서도 헥사고날 구조를 적용해 `spec`를 Port, 클라우드 모듈을 Adapter로 분리했습니다. 컴파일 타임 검증과 스택 분리로 경계 오류와 블라스트 반경을 줄였습니다.
쿠팡 파트너스
이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

헥사고날 아키텍처를 결제 후처리와 외부 시스템 연동 서비스에 도입한 경험을 정리했습니다. 핵심 도메인 분리로 확장성과 유지보수성을 높였지만, 초기 설계와 팀 합의에 비용이 들었습니다.

헥사고날 아키텍처를 빌링 서비스에 도입한 경험과 구조를 정리했습니다. 외부 의존성을 분리해 유지보수성과 확장성을 높였지만, 초기 설계와 팀 합의가 중요했습니다.


Domain-Driven 헥사고날 아키텍처를 PDP 서비스 코드 사례로 설명했습니다. Port와 Use Case 분리, 애그리거트 모델, 테스트 용이성 등 운영 장점을 다뤘습니다.


새로운 팀의 Scala 코드베이스와 아키텍처에 적응한 과정을 공유했습니다. 작은 기능과 디버깅을 반복하며 코드 흐름을 익히고 팀에 녹아드는 방법을 설명했습니다.


플레이 스쿼드가 Python 계층형 구조를 Kotlin+Spring 기반 헥사고날 아키텍처로 전환한 과정을 정리했습니다. 도메인 중심 설계, 포트/어댑터 분리, 테스트 용이성 개선 포인트를 설명했습니다.