DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from Flex
  • Related reads#IaC
#DevOps

[인프라를 소프트웨어처럼 2/5] 코드가 모르는 그 '환경'은 누가 만드는가

[인프라를 소프트웨어처럼 2/5] 코드가 모르는 그 '환경'은 누가 만드는가
01

Summary

"저 dev 환경 잠깐 점령할게요"라는 슬랙, 이제는 작별할 시간입니다

인프라를 단순 코딩(IaC)을 넘어 소프트웨어(IaS)로 관리하며 얻은 플랫폼팀의 선언적 환경 구축기

코드와 환경을 분리하려는 시도가 플랫폼팀에게는 오히려 거대한 수동 작업의 짐이 되곤 합니다. 본 아티클은 이러한 '환경의 공백'을 메우기 위해 flex 플랫폼팀이 Kafka 토픽 생성부터 시작해 인프라를 어떻게 선언적으로 소프트웨어화했는지 그 구체적인 여정을 다룹니다. Git 로그를 거버넌스의 원장으로 활용하고 테스트와 재현성을 확보하는 실전 전략을 공유합니다.

  • 01환경을 계약(Port)과 실체(Substrate)의 관점으로 재정의
  • 02단순 IaC를 넘어 테스트와 재현성을 보장하는 IaS로의 진화
  • 03Kafka 토픽 설정을 JSON Schema로 사전 검증하여 배포 안정성 확보
  • 04모든 인프라 변경을 Git PR로 통합하여 자동화된 거버넌스 구현
  • 05수동 '요청' 문화를 코드 기반의 '선언' 문화로 전환한 조직적 변화

+RECOMMENDATION

인프라 관리 효율을 높이고 싶은 플랫폼 엔지니어와 환경 격리 문제로 고민하는 데브옵스 담당자에게 추천합니다. 특히 리소스 생성이 티켓 기반으로 이루어져 병목이 발생하는 조직이라면 즉시 도입해볼 만한 가치가 있습니다.

The Problem

개발자가 정의하는 코드가 '무엇을(Logic)'에만 집중하면서, 이를 뒷받침하는 인프라 환경(Substrate)을 구축하고 관리하는 책임이 플랫폼팀의 수동 작업과 파편화된 기억에 의존하게 되는 공백이 발생했습니다. 특히 인프라 생성이 '요청' 기반으로 이루어짐에 따라 재현 불가능성이 쌓이고 변경 이력 추적이 어려워지는 문제가 있었습니다.

The Solution

인프라를 단순한 코드가 아닌 검증과 재현이 가능한 '소프트웨어(IaS)'로 취급하여, 모든 환경 생성을 '선언' 방식으로 전환했습니다. Kafka 토픽과 같은 작은 단위부터 JSON Schema 검증과 Git PR 기반의 워크플로우를 도입하여, 선언 파일이 곧 실제 인프라의 원장이 되도록 구조화했습니다.

The Result

인프라 생성 작업이 수동 콘솔 조작에서 Git PR 한 줄의 선언으로 간소화되었으며, JSON Schema를 통한 사전 검증으로 설정 오류를 배포 전에 차단할 수 있게 되었습니다. 또한 모든 변경 사항이 Git History에 기록됨으로써 별도의 문서화 없이도 완벽한 거버넌스와 감사(Audit) 기능을 확보했습니다.

Trade-off

개별 리소스 단위의 선언은 성공적이었으나, 수십 개의 리소스가 얽힌 환경 전체를 한꺼번에 찍어내는 데에는 여전히 높은 복잡도가 존재하며, 생성된 환경을 삭제하고 관리하는 생명주기 정책이 미비할 경우 공유 환경의 리소스 충돌이나 장애를 유발할 위험이 남아있습니다.

03

Key Concepts

Concept · 01

IaS (Infrastructure as Software)

인프라를 단순히 코드로 기록하는 IaC를 넘어, 테스트 가능성(Testability)과 재현 가능성(Reproducibility)을 갖춘 소프트웨어 제품처럼 관리하는 개념입니다.

  • 선언된 코드가 실제 환경과 일치하도록 강제하고 검증하는 메커니즘을 포함합니다.
  • 배포 전 JSON Schema 등을 통한 정적 분석과 유효성 검사를 수행합니다.
Concept · 02

계약(Port) vs 실체(Substrate)

개발자가 코드를 통해 요구하는 인프라 인터페이스를 계약(Port)으로, 이를 실제로 구현하여 동작하게 만드는 물리적/논리적 기반을 실체(Substrate)로 구분합니다.

  • 개발자는 DB 주소나 토픽 이름 같은 '계약'만 알면 되도록 추상화합니다.
  • 플랫폼팀은 해당 계약을 충족시키는 클라우드 리소스인 '실체'를 책임지고 제공합니다.
Concept · 03

선언적 거버넌스(Declarative Governance)

별도의 감사 문서나 승인 절차 없이, 코드 선언과 Git 워크플로우 자체가 거버넌스 역할을 수행하게 만드는 방식입니다.

  • Git History가 누가, 언제, 왜 인프라를 변경했는지 증명하는 원장(Ledger) 역할을 합니다.
  • PR 승인 과정이 곧 공식적인 변경 관리 및 보안 감사 절차가 됩니다.
Continue reading · same source

FlexMore from Flex

View all posts from Flex
  • @Scheduled 한 줄로 버티다, 트리거를 밖으로 꺼낸 이야기

    Spring BootScheduledDistributed Lock
    5일 전
  • 사람도 에이전트도, 덜 읽을수록 더 잘 고칩니다

    ModularizationAI AgentLLM Context
    1주 전
  • 헥사고날 아키텍처, Adapter만 바꾸면 될까

    Hexagonal ArchitecturePort and AdapterMulti Cloud
    2주 전
  • 경계를 빌드로 못 박으면, 경계를 옮기는 일도 빌드가 붙잡습니다

    Multi-ModuleGradleClean Architecture
    3주 전
  • 사람은 떠났는데 권한은 남았다

    ReBACOpenFGACDC
    1개월 전

Related reads#IaC

Explore #IaC
Flex

[인프라를 소프트웨어처럼 4/5] plan은 동작을 모른다: 인프라를 테스트·재현한다는 것

#IaC1개월 전
Flex·AI Coding Agent

[AI가 읽을 수 있는 코드베이스 2/5] 빌드 피드백이 AI를 가르친다

#IaC3개월 전
Flex·Pulumi

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

#IaC4개월 전
Flex

[코드가 환경을 모르는 구조 1/7] 코드는 무엇을, 환경은 어디서 - 다시 더 깊이

#IaC4개월 전
라인·OpenStack

LY Corporation의 클라우드 인프라 개편: 거대한 두 개의 클라우드를 통합한 차세대 플랫폼 Flava의 아키텍처 소개

#IaC5개월 전

Source

Flex
Flex
Engineering Blog

Published · June 28, 2026

Topics

IaCTerraformGitOpsPlatform EngineeringJSON Schema