
MSA도, 모놀리스도 아닌 제3의 선택 — Spring Modulith
모놀리스와 MSA 사이의 대안으로 Spring Modulith 기반 Modular Monolith를 소개했습니다. 모듈 경계 검증, 이벤트 통신, 문서화, 모니터링 사례를 실제 적용 경험과 함께 정리했습니다.

모놀리스와 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 코드베이스와 아키텍처에 적응한 과정을 공유했습니다. 작은 기능과 디버깅을 반복하며 코드 흐름을 익히고 팀에 녹아드는 방법을 설명했습니다.