핵심 인사이트 (3줄 요약)
- 본질: 스트랭글러 피그(Strangler Fig) 패턴은 거대하고 낡은 모놀리식 시스템을 한 번에 바꾸는 대신, 특정 기능을 하나씩 새로운 아키텍처(MSA 등)로 옮기며 점진적으로 교체하는 전략이다.
- 가치: 전체 시스템 중단 없이 안전하게 현대화를 진행할 수 있으며, 대규모 빅뱅(Big Bang) 전환이 초래하는 치명적인 실패 리스크를 획기적으로 낮춘다.
- 판단 포인트: 기존 시스템의 유지보수 비용이 너무 높고 기술 부채가 심각하지만, 비즈니스 연속성 때문에 한꺼번에 멈추고 새로 지을 수 없는 상황에서 최선의 선택이다.
Ⅰ. 개요 및 필요성
오래된 '모놀리식' 시스템은 수정이 어렵고 배포가 무겁다. 이를 최신 MSA로 바꾸고 싶지만, 시스템 전체를 새로 만들어 한꺼번에 바꾸는 방식(빅뱅)은 사고 확률이 매우 높다. 스트랭글러 피그 패턴은 이 문제를 해결하기 위해 고안되었다. 이름은 '목을 조르는 무화과나무'에서 유래했는데, 덩굴이 고목을 감싸며 자라다가 결국 고목은 죽고 덩굴만 남는 모습과 같다. 새로운 기능을 별도의 마이크로서비스로 만들고, 기존 요청을 그쪽으로 조금씩 돌리면서 시스템을 야금야금 바꿔나가는 방식이다.
📢 섹션 요약 비유: 스트랭글러 패턴은 '살고 있는 집을 한 방씩 수리하는 것'이다. 집 전체를 허물고 새로 지을 동안 밖에서 노숙하는 게 아니라, 주방-안방-거실 순으로 고치면서 계속 그 집에서 생활하는 방식이다.
Ⅱ. 아키텍처 및 핵심 원리
점진적 전환 4단계
- 변환 레이어 도입 (Transform):
- 기존 시스템 앞에 파사드(Facade)나 프록시(API Gateway)를 설치한다.
- 신규 기능 공존 (Coexist):
- 새로운 기능을 별도의 서비스로 구현하고 파사드를 통해 트래픽을 분산한다.
- 점진적 이전 (Migrate):
- 기존 기능을 하나씩 새 시스템으로 옮기며 라우팅 설정을 변경한다.
- 레거시 제거 (Eliminate):
- 모든 기능이 이전되면 껍데기만 남은 기존 모놀리식 시스템을 안전하게 제거한다.
[User] ──▶ [Facade / API Gateway]
│ ┌───────────────┐
├──▶│ New Service A │ (이전 완료)
│ └───────────────┘
└──▶ [Legacy Monolith] (남은 기능들)
📢 섹션 요약 비유: Proxy는 트래픽의 '내비게이션'이다. 사용자가 요청을 보내면, 이미 공사가 끝난 새 길(MSA)로 보낼지 아직 공사 중인 옛날 길(Legacy)로 보낼지 똑똑하게 판단한다.
Ⅲ. 비교 및 연결
빅뱅 (Big Bang) vs 스트랭글러 (Strangler)
| 비교 항목 | 빅뱅 전환 (전체 교체) | 스트랭글러 전환 (점진 교체) |
|---|---|---|
| 전환 리스크 | 매우 높음 (실패 시 전사 마비) | 낮음 (단계별 검증 및 롤백 용이) |
| 투자 회수 (ROI) | 개발 완료 시점까지 0 | 전환된 기능부터 즉시 이득 발생 |
| 비즈니스 중단 | 장시간 다운타임 필요 | 무중단 서비스 가능 |
| 구현 복잡도 | 낮음 (한 번에 새로 만듦) | 높음 (신/구 시스템 데이터 동기화 필요) |
📢 섹션 요약 비유: 빅뱅은 새 옷을 사서 한꺼번에 갈아입는 것이고, 스트랭글러는 낡은 옷의 단추부터 하나씩 새 걸로 바꿔 끼우는 정교한 작업이다.
Ⅳ. 실무 적용 및 기술사 판단
기술사 핵심 포인트:
- 데이터베이스 동기화: 앱은 나눌 수 있지만 DB를 나누는 것은 어렵다. CDC(Change Data Capture)를 사용하여 레거시 DB와 신규 DB 간의 데이터를 실시간으로 맞추는 기술이 병행되어야 한다.
- 파사드(Facade) 패턴: API Gateway를 활용해 외부에는 단일 엔드포인트를 제공하면서 내부적으로 분기 처리를 숨기는 것이 핵심이다.
- 조직 문화: 기술적 전환뿐만 아니라 운영 조직도 모놀리스 관리 방식에서 MSA 관리 방식으로 점진적으로 적응해야 한다.
📢 섹션 요약 비유: 스트랭글러 패턴은 '안전한 세대교체'다. 구세대의 경험을 유지하면서 신세대의 활력을 하나씩 채워 넣어 전체 시스템의 안정을 유지하며 진화한다.
Ⅴ. 기대효과 및 결론
스트랭글러 피그 패턴은 현대적인 클라우드 전환(Cloud Migration)의 핵심 전략이다. 리스크를 분산하고 지속적인 가치 전달을 가능케 한다. 기술사 시험에서는 레거시 현대화(Modernization) 전략으로 이 패턴을 제시하고, 특히 데이터 정합성 문제와 라우팅 전략을 구체적으로 언급하는 것이 실무적 통찰력을 보여주는 길이다.
📢 섹션 요약 비유: 스트랭글러 패턴은 IT의 '리모델링 마법'이다. 낡은 건물을 부수지 않고도 살다 보면 어느새 새 건물로 바뀌어 있게 만드는 지혜로운 방법이다.
📌 관련 개념 맵
| 개념 | 연관 키워드 | 관계 |
|---|---|---|
| API Gateway | Facade, 라우팅 | 신/구 시스템으로 트래픽을 갈라주는 관문 |
| CDC (Change Data Capture) | 실시간 동기화, Debezium | 데이터베이스 분리 시 정합성을 맞추는 기술 |
| 리팩토링 | 점진적 개선, 코드 품질 | 스트랭글러 진행 중 수행되는 코드 현대화 작업 |
| 모놀리스 (Monolith) | 교체 대상, 스파게티 코드 | 점진적으로 해체되어야 할 거대 시스템 |
👶 어린이를 위한 3줄 비유 설명
- 낡고 큰 장난감 집을 한 번에 버리지 않고, 방 한 칸씩 새 블록으로 바꿔 끼우는 거예요.
- 집을 다 고칠 때까지 우리는 계속 그 집에서 놀 수 있어요.
- 조금씩 조금씩 바꾸다 보면 어느새 집 전체가 반짝거리는 새 집이 되어있을 거예요.