신생 스타트업이 아니라면, 어느 회사라도 레거시라고 불리는 코드들이 존재할 것이다.
그런 코드들은 현재 기술스택에도 맞지 않거나, 정책 혹은 여러가지 문제가 존재하여 언젠가는 개편을 해야할 때가 온다.
이럴 때 사용할 수 있는, Strangler Pattern에 대해 알아보자.
Stangler Pattern은 마틴 파울러가 Strangler Figs라는 식물을 보고 생각해낸 패턴으로, 아래 2단계를 점진적으로 반복하여 레거시를 완전히 말려죽이는 방식이다.
보통 이러한 방식을 사용하는 다른 곳들을 보면, 앞단에 프록시 혹은 퍼사드라고 불리는 것을 두어 개편한 기능의 트래픽만을 새로운 서비스로 가도록 변경한다.
예를 들어, A라는 기능을하는 레거시 서버가 있고 그 기능을 새로운 방식으로 개편한 신규서버가 있다면 앞단에 퍼사드를 두어 A 기능을 사용할 때 레거시로 가는 트래픽을 신규 서버로 옮기는 것을 생각할 수 있다.
안정적으로 레거시를 신규 서비스로 완전히 새로운 서버로 교체할 수 있다는 장점이 있지만, 결국 레거시 개편은 짧은 시간 동안 이루어내기 힘들기 때문에, 레거시의 모든 기능을 제거하기 전까지는 두 서비스를 운영해야한다는 단점이 존재한다.
오오