피드로 돌아가기
Strangler Fig: migrare il legacy un pezzo alla volta
Dev.toDev.to
Backend

Zero-Downtime 구현을 위한 Strangler Fig 기반 점진적 Legacy 마이그레이션

Strangler Fig: migrare il legacy un pezzo alla volta

Dev-Iadicola2026년 6월 19일3intermediate

Context

PHP 5.6 기반의 200,000 라인 규모 Legacy 시스템의 높은 코드 결합도와 테스트 부재로 인한 유지보수 불능 상태. 비즈니스 연속성 보장을 위해 전체 재작성(Rewrite) 시 발생하는 12개월의 공백과 리스크 제거가 시급한 상황.

Technical Solution

  • Nginx 기반의 Reverse Proxy를 전면 배치하여 Legacy 시스템으로의 모든 요청을 인터셉트하는 Facade 계층 구축
  • 신규 기능 및 마이그레이션 대상 모듈을 최신 스택(PHP 8.4)으로 개별 구현하여 신구 시스템의 병렬 공존 구조 설계
  • Proxy 설정 변경을 통해 특정 엔드포인트(/clienti, /fatture 등)의 트래픽을 신규 시스템으로 점진적 라우팅하는 트래픽 쉐이핑 적용
  • 데이터 정합성 확보를 위해 Shared Database 모델 또는 Event-driven Sync 기반의 분리된 Database 구조 중 선택적 적용
  • 개별 기능 단위의 독립적 배포 및 롤백 체계를 구축하여 마이그레이션 실패 시 즉각적인 Legacy 복구 경로 확보

- 시스템 전면에 요청을 제어할 수 있는 Proxy/Gateway 계층이 존재하는지 확인 - 가장 위험도가 낮고 단순한 도메인부터 마이그레이션 우선순위 선정 - 신구 시스템 간 데이터 동기화 전략(Shared DB vs Sync)에 따른 스키마 오염 가능성 검토 - 기능 단위의 세밀한 라우팅 규칙을 통한 점진적 트래픽 전환 계획 수립

원문 읽기