본문 바로가기

IT 세상

Strangler 패턴

Strangler 패턴은 기존의 레거시 시스템을 점진적으로 새로운 시스템으로 교체하는 소프트웨어 리팩토링 패턴입니다. 이 패턴의 이름은 호주 원주민 식물인 "스트랭글러 피그"(Strangler Fig)에서 유래했는데, 이 식물은 기존 나무를 감싸고 자라며 점차적으로 대체하는 방식과 유사합니다.

 

Strangler 패턴은 기존 시스템의 운영을 방해하지 않으면서 새로운 시스템으로의 전환을 가능하게 해주는 효율적인 방법입니다. 이 패턴을 통해 시스템의 안정성을 유지하면서 기술적 부채를 해결하고, 최신 기술을 도입할 수 있습니다.

다음은 Strangler 패턴의 주요 개념과 단계에 대한 설명입니다:

1. 주요 개념:
   - 레거시 시스템: 기존에 운영되고 있는 오래된 시스템. 이 시스템은 종종 기술적 부채(technical debt)를 안고 있으며, 유지보수가 어렵고 확장성이 떨어질 수 있습니다.
   - 새로운 시스템: 최신 기술과 아키텍처를 사용하여 새로 개발된 시스템. 기존 시스템의 기능을 점진적으로 대체합니다.

2. 단계:
   - 새로운 기능 개발: 새로운 기능이나 모듈을 개발할 때는 새로운 시스템에서 개발합니다.
   - 프록시 도입: 프록시를 사용하여 요청을 레거시 시스템과 새로운 시스템으로 라우팅합니다. 초기에는 대부분의 요청이 레거시 시스템으로 가지만, 시간이 지남에 따라 점차 새로운 시스템으로 이동합니다.
   - 기능 대체: 기존 레거시 시스템의 기능을 하나씩 새로운 시스템으로 이동합니다. 이를 통해 레거시 시스템의 의존성을 줄여 나갑니다.
   - 완전 교체: 모든 기능이 새로운 시스템으로 이동하면, 레거시 시스템을 완전히 폐기할 수 있습니다.

3. 장점:
   - 리스크 최소화: 기존 시스템을 한 번에 교체하지 않고 점진적으로 진행하므로 리스크를 최소화할 수 있습니다.
   - 연속성 보장: 시스템의 가용성을 유지하면서 새로운 기능을 도입할 수 있습니다.
   - 기술적 부채 해결: 점진적인 이전 과정을 통해 기술적 부채를 해결하고 최신 기술로 전환할 수 있습니다.

4. 사용 사례:
   - 점진적 리팩토링: 기존 시스템을 유지하면서 새로운 기술로 이전할 때 유용합니다.
   - 대규모 시스템 전환: 한 번에 전체 시스템을 교체하는 것이 어렵거나 불가능한 경우에 적합합니다.
   - 비즈니스 연속성: 서비스의 연속성을 유지하면서 시스템을 업데이트할 필요가 있을 때 사용합니다.

'IT 세상' 카테고리의 다른 글

Saga 패턴  (0) 2024.08.07
Event Sourcing  (0) 2024.08.07
CQRS(Command Query Responsibility Segregation)  (0) 2024.08.07
Architecture 설계 - 요구사항, Cloud Native, MSA  (0) 2024.08.05
Apache Kafka 개념 및 주요 기능, 사례  (0) 2024.08.05