본문으로 건너뛰기
AslanWay
라이브러리

레거시 현대화·4

빅뱅 재구축의 대안에는 20년 전부터 이름이 있었습니다

파울러는 숙주를 감싸고 자라 그 자리를 대신하는 식물의 이름을 붙였습니다. 실패한 리플랫포밍 대부분은 이 패턴을 무시한 경우입니다.

출처

Strangler Fig Application

Martin Fowler · martinfowler.com · 2004, rewritten 2024

원문 읽기

이 자료의 저자는 AslanWay가 아닙니다. 아래 요약은 원문 내용을 정리한 것이고, 이어지는 해설은 저희 의견이며 저자의 동의를 받은 것이 아닙니다.

이 자료의 주장

마틴 파울러는 퀸즐랜드에서 본 교살무화과에서 비유를 가져왔습니다. 이 무화과는 기존 나무의 가지에서 싹을 틔워 나무를 감싸고 내려오다가, 결국 숙주가 있던 자리에 홀로 서게 됩니다. 아무것도 철거하고 처음부터 다시 짓지 않습니다.

소프트웨어에 옮기면 이렇습니다. 레거시 앞에 가로채기 계층을 두고, 그 뒤에서 기능을 하나씩 옮깁니다. 두 시스템이 나란히 돌고, 트래픽은 점진적으로 넘어가며, 옛 시스템은 꺼도 될 만큼 작아질 때까지 줄어듭니다.

파울러는 2024년에 이 글을 다시 썼습니다. 비유보다 실제 작동 방식에 무게를 뒀습니다. 가로채기 지점을 어디에 둘지, 경계를 넘나드는 상태를 어떻게 다룰지, 어떤 순서로 기능을 옮길지 같은 것들입니다.

이 패턴의 진짜 논점은 리스크입니다. 재구축은 모든 가치와 모든 위험을 단 하나의 전환 시점으로 미룹니다. 교살무화과 방식은 가치를 계속 내보내면서 모든 단계를 되돌릴 수 있게 유지합니다.

저희는 이걸 이렇게 씁니다

  • 어려운 건 라우팅 계층이 아니라 거의 항상 공유 상태입니다. 경계를 데이터 앞에 둘지 뒤에 둘지 초기에 정하십시오. 이 결정을 나중에 뒤집는 일이 프로그램을 침몰시킵니다.
  • 사업 부서의 관심도가 아니라 롤백 비용 순서로 옮기십시오. 카탈로그·검색처럼 읽기 위주 경로가 먼저입니다. 되돌리는 데 드는 비용이 거의 없으니까요. 결제와 원장은 맨 마지막입니다.
  • 이 패턴은 상업적 문제도 해결합니다. 기능 동결이 사라집니다. 사업 타당성이 성립하는 지점이 대개 여기입니다. 동결 비용이 마이그레이션 비용보다 큰 경우가 많거든요.

보고서와 실제 출시 사이에서 멈춘 프로그램이 있으신가요?

어디서 막혔는지 알려주세요. 영업일 기준 이틀 안에 저희 생각을 정리해 회신드립니다. 저희가 맞는 파트너가 아니라면 그것도 그대로 말씀드립니다.