목록 보기
[코드가 환경을 모르는 구조 3/7] IaC에도 헥사고날이 관통한다
아키텍처

[코드가 환경을 모르는 구조 3/7] IaC에도 헥사고날이 관통한다

flex
flex
2026년 4월 29일

두줄요약

IaC에서도 헥사고날 구조를 적용해 `spec`를 Port, 클라우드 모듈을 Adapter로 분리했습니다. 컴파일 타임 검증과 스택 분리로 경계 오류와 블라스트 반경을 줄였습니다.

핵심 내용

  • IaC 코드에서 무엇을어디서를 분리하는 헥사고날 구조 제안
  • spec 모듈을 Port, 클라우드 모듈을 Adapter로 두는 멀티모듈 설계
  • Kotlin 인터페이스와 컴파일 타임 검증으로 경계 오류를 조기 차단
  • 라이프사이클이 다른 인프라를 네트워크·클러스터·아이덴티티 스택으로 분리

구조와 흐름

  • 제품 모듈은 spec에만 의존하고 구체 클라우드는 주입받는 구조
  • 환경 스택이 dev·qa·prod별 클라우드 조합과 파라미터를 결정
  • StackReference로 스택 간 출력 연결, 단방향 흐름과 얇은 공통 아웃풋 스택 정리

주의할 점

  • 스택 간 양방향 참조로 인한 순환참조 위험
  • 출력 계약 변경 시 타입 버전 불일치와 런타임 캐스팅 실패 가능성
  • 클라우드별 이름 길이 제한 같은 특수 제약은 Adapter 내부 검증 필요

적용해볼 점

  • 클라우드별 추상화를 한 인터페이스로 모으는 방식 검토
  • 변경 주기가 다른 리소스를 스택 단위로 분리해 블라스트 반경 축소
  • 새 클라우드 추가 시 기존 제품 모듈을 건드리지 않는 경계 설계

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...