이 자료의 주장
마틴 파울러는 퀸즐랜드에서 본 교살무화과에서 비유를 가져왔습니다. 이 무화과는 기존 나무의 가지에서 싹을 틔워 나무를 감싸고 내려오다가, 결국 숙주가 있던 자리에 홀로 서게 됩니다. 아무것도 철거하고 처음부터 다시 짓지 않습니다.
소프트웨어에 옮기면 이렇습니다. 레거시 앞에 가로채기 계층을 두고, 그 뒤에서 기능을 하나씩 옮깁니다. 두 시스템이 나란히 돌고, 트래픽은 점진적으로 넘어가며, 옛 시스템은 꺼도 될 만큼 작아질 때까지 줄어듭니다.
파울러는 2024년에 이 글을 다시 썼습니다. 비유보다 실제 작동 방식에 무게를 뒀습니다. 가로채기 지점을 어디에 둘지, 경계를 넘나드는 상태를 어떻게 다룰지, 어떤 순서로 기능을 옮길지 같은 것들입니다.
이 패턴의 진짜 논점은 리스크입니다. 재구축은 모든 가치와 모든 위험을 단 하나의 전환 시점으로 미룹니다. 교살무화과 방식은 가치를 계속 내보내면서 모든 단계를 되돌릴 수 있게 유지합니다.
저희는 이걸 이렇게 씁니다
- 어려운 건 라우팅 계층이 아니라 거의 항상 공유 상태입니다. 경계를 데이터 앞에 둘지 뒤에 둘지 초기에 정하십시오. 이 결정을 나중에 뒤집는 일이 프로그램을 침몰시킵니다.
- 사업 부서의 관심도가 아니라 롤백 비용 순서로 옮기십시오. 카탈로그·검색처럼 읽기 위주 경로가 먼저입니다. 되돌리는 데 드는 비용이 거의 없으니까요. 결제와 원장은 맨 마지막입니다.
- 이 패턴은 상업적 문제도 해결합니다. 기능 동결이 사라집니다. 사업 타당성이 성립하는 지점이 대개 여기입니다. 동결 비용이 마이그레이션 비용보다 큰 경우가 많거든요.