피드로 돌아가기
why you need hcl-linter?
Dev.toDev.to
Infrastructure

HCL 구조 검증 자동화로 Code Review 비용 절감 및 결정론적 설정 관리 구현

why you need hcl-linter?

Bartłomiej Danek2026년 4월 23일3intermediate

Context

Terraform 및 Terragrunt 환경의 HCL 설정 관리 시 단순 포맷팅을 넘어선 구조적 일관성 결여 문제 발생. Human Review 중심의 검증 방식으로 인한 리뷰 시간 증가 및 환경 간 설정 Drift 현상 심화.

Technical Solution

  • 단순 공백 제거인 terraform fmt의 한계를 극복하기 위한 Deterministic Structure Check 로직 구현
  • .hcl-linter/ 디렉터리 내 파일명 기반 매칭 및 HCL 기반 설정 파일 채택을 통한 Context Switching 최소화
  • extends 기능을 활용한 설정 상속 및 디렉터리별 Override 구조 설계를 통한 Monorepo 최적화
  • block_order 및 array_format 등 Auto-fixable 규칙 적용으로 CI 단계의 자동 정화(Auto-clean) 프로세스 구축
  • dependency_paths 검증을 통한 물리적 파일 존재 여부 확인 등 런타임 에러 방지를 위한 정적 분석 수행
  • CI 파이프라인 내 check 및 dry-run 모드 분리를 통한 엄격한 위반 탐지 및 바이트 수준의 Drift 감지

- HCL 기반 프로젝트의 Monorepo 관리 시 설정 상속 구조(Inheritance) 검토 - 단순 포맷팅 도구를 넘어 block_order, naming_convention 등 팀 내 구조적 컨벤션을 코드로 명세화 - CI 파이프라인에 linter check 단계를 추가하여 Human Review 단계의 단순 반복 지적 사항 제거 - Auto-fix 기능과 Dry-run 모드를 활용하여 기존 레거시 설정의 점진적 개선 전략 수립

원문 읽기