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#MSA
#Backend

[코드가 환경을 모르는 구조 5/7] Rewrite Host — 공간 축을 교체한다

[코드가 환경을 모르는 구조 5/7] Rewrite Host — 공간 축을 교체한다
01

Summary

MSA 로컬 개발의 구원투수, 단 1줄의 헤더로 '부분만' 갈아 끼우는 Rewrite Host

전체 인프라 배포 없이 내 노트북의 코드만 실시간으로 반영하는 flex의 스마트한 라우팅 전략

마이크로서비스 아키텍처에서 로컬 개발 환경 구축은 엔지니어의 숙명적인 고통입니다. flex팀은 '공간 축의 교체'라는 철학을 바탕으로, 클라우드 환경의 전체 시스템은 유지하되 개발 중인 특정 모듈만 로컬로 연결하는 Rewrite Host 기법을 통해 이 문제를 해결했습니다. 백엔드부터 프론트엔드까지 아우르는 이 혁신적인 접근법을 통해 개발 이터레이션 속도를 극적으로 높인 사례를 소개합니다.

  • 01노트북 자원의 한계를 극복하는 '부분 교체' 방식의 로컬 개발 전략
  • 02Spring Cloud Gateway 필터를 활용한 동적 URI 치환 메커니즘
  • 03디버그 헤더를 통한 명확한 라우팅 제어와 응답 헤더 피드백 시스템
  • 04마이크로 프론트엔드(MFE) 구조에도 동일하게 적용되는 확장 가능한 설계
  • 05시간(Time Machine)과 공간(Rewrite Host) 축을 분리하는 일관된 아키텍처 원칙

+RECOMMENDATION

로컬 개발 환경 구축을 위해 도커 컨테이너와 씨름하고 있는 MSA 팀에게 강력히 추천합니다. 서비스 간 경계가 명확한 구조라면 게이트웨이 레이어의 수정만으로 즉각적인 생산성 향상을 얻을 수 있습니다.

The Problem

MSA 환경에서 로컬 개발 시 단일 서비스의 변경 사항을 확인하기 위해 게이트웨이, 인증, 이웃 도메인 등 전체 인프라를 로컬에 띄워야 하거나 클라우드 배포를 기다려야 하는 비효율이 발생합니다.

The Solution

Spring Cloud Gateway 기반의 'Rewrite Host' 기능을 도입하여, 특정 디버그 헤더가 포함된 요청에 대해서만 목적지 주소를 로컬 호스트로 동적으로 치환해 라우팅하는 구조를 설계했습니다.

The Result

전체 시스템을 로컬에 재현하지 않고도 수정 중인 특정 서비스만 로컬 인스턴스로 교체해 검증할 수 있게 되었으며, 응답 헤더 피드백을 통해 개발자가 라우팅 성공 여부를 즉시 파악할 수 있는 환경을 구축했습니다.

Trade-off

현재 구현은 게이트웨이 진입점에서만 작동하므로 서비스 간 내부 호출 체인까지 로컬로 유도하려면 컨텍스트 전파나 서비스 디스커버리 레이어의 추가 확장이 필요하다는 한계가 있습니다.

03

Key Concepts

Concept · 01

Rewrite Host

요청의 목적지 주소를 특정 조건에 따라 동적으로 변경하여, 특정 서비스만 다른 환경(로컬 등)으로 라우팅하는 기술입니다.

  • Gateway 필터에서 URI의 scheme, host, port 요소를 교체합니다.
  • 디버그 헤더 존재 여부에 따라 활성화되는 스위치 구조를 가집니다.
Concept · 02

Spring Cloud Gateway Filter

API 게이트웨이로 들어오는 요청과 응답을 가로채서 공통 로직을 처리하거나 라우팅을 제어하는 컴포넌트입니다.

  • 글로벌 필터 레이어에서 특정 헤더를 감지해 라우팅 테이블을 실시간으로 조정합니다.
  • 인증 정보나 바디 데이터는 유지한 채 주소 정보만 변조합니다.
Concept · 03

Micro Frontend (MFE) Routing

프론트엔드 애플리케이션을 작은 단위로 쪼개어 독립적으로 배포하고 런타임에 조합하는 아키텍처입니다.

  • 특정 UI 번들만 로컬 개발 서버 주소로 치환하여 웹 환경에서도 부분 검증을 수행합니다.
  • 백엔드와 동일한 '축 교체' 개념을 UI 레이어에 적용했습니다.
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#MSA

Explore #MSA
라인·LLM

LLM Wiki: 코드 기준으로 자동 최신화되는 도메인 지식 SSOT 만들기

#MSA2일 전
올리브영

올영매장은 MSA 환경에서 흩어진 도메인 데이터를 어떻게 연동했을까?

#MSA5개월 전
SSG

“왜 노출이 안 될까?”를 한 번에 추적하는 방법

#MSA5개월 전
여기어때·BFF

화면 단위 복잡성을 흡수하다: 여기어때 BFF의 기록

#MSA5개월 전
올리브영·Spring

Spring 트랜잭션 동기화로 레거시 알림톡 발송 시스템 한계 넘어서기

#MSA6개월 전

Source

Flex
Flex
Engineering Blog

Published · May 8, 2026

Topics

MSAAPI GatewayLocal DevelopmentSpring Cloud GatewayRouting