From legacy to leverage.
돌아가는 시스템을 멈추지 않고 옮기는 일. MPNITE 운영 환경에서 검증한 18행 매트릭스를 그대로 모듈화해 제공합니다. AS-IS 측정 → TO-BE 설계 → 단계적 전환 → 롤백 플랜까지.
Four phases, reversible always.
Measure → Design → Transition → Rollback. 모든 단계는 되돌릴 수 있어야 한다는 전제 위에서 작동합니다. 되돌릴 수 없는 변경은 변경이 아니라 사고.
Measure
AS-IS 측정
현 시스템의 실제 의존성·트래픽·장애 패턴을 측정. 추정이 아닌 수치로 시작합니다. 이게 없으면 모든 후속 결정이 짐작이 됩니다.
Design
TO-BE 설계
측정 결과 위에 목표 아키텍처를 설계. 한 번에 다 바꾸지 않고, 어떤 모듈부터 어떤 순서로 옮길지 우선순위·리스크를 정합니다.
Transition
단계적 전환
한 번에 갈아엎지 않고 모듈 단위로 점진 전환. 신구 시스템이 일정 기간 공존하며, 매 단계마다 운영 데이터로 검증.
Rollback
롤백 플랜
모든 전환 단계에 롤백 경로가 미리 정의되어 있어야 합니다. 되돌릴 수 없는 변경은 변경이 아니라 도박.
18 rows from MPNITE production.
책상 위의 이론이 아니라 운영 환경에서 실측한 패턴입니다. 새 프로젝트의 마이그레이션은 이 18행 중 일부의 재조합으로 시작합니다.
| AS-IS | → | TO-BE |
|---|---|---|
| 단일 SPA | → | Nuxt 4 SSR + Vite 7 SPA |
| Webpack + Babel | → | Vite 7.3 (ESBuild) |
| JavaScript | → | TypeScript 5 strict |
| Bootstrap 5 + SASS | → | Tailwind 4 (@theme) |
| axios ×3 인스턴스 | → | ofetch · SSR-safe · 401 Queue |
| Pinia 2 (JS) | → | Pinia 3 (TS Composition) |
| 수동 폼 검증 | → | VeeValidate 4 + Zod 3 |
| CSR HTML ~4KB | → | SSR HTML 30KB+ · SEO |
| Logback | → | Log4j2 + LMAX Disruptor Async |
| SVN | → | Git 자체호스팅 (Gitea/GitLab) |
| Tuxedo (레거시) | → | UtoL 마이그레이션 · 우정사업본부 |
| Vue 2 Options API | → | Vue 3 Composition + script setup |
| JSP / NEXACRO / XPlatform | → | Vue 3 / Nuxt 4 단계적 이식 |
| 물리 서버 단일 노드 | → | Docker Compose / K8s |
| Oracle 단일 DB | → | MySQL 8 + Redis + 분리 정책 |
| CentOS (EOL) | → | Ubuntu LTS |
| 수동 배포 | → | Cloudflare Workers Builds (git push) |
| Spring Boot 2 모놀리스 | → | Spring Boot 3.3 · Django 5 멀티 WAS |
Beyond the 18 rows.
매트릭스에 들어가지 않은 운영급 마이그레이션 경험들. 인프라·언어·플랫폼 이전까지.
The five traps that kill migrations.
마이그레이션 프로젝트가 무너지는 다섯 가지 함정. 도구가 아니라 사고방식에서 시작되며, 한 번 빠지면 되돌리기 어렵습니다.
한 번에 다 갈아엎는다
“이참에 전부 새로 짜자”의 함정. 운영 중인 시스템을 정지시키는 변경은 변경이 아니라 사고다.
측정 없이 시작한다
현 시스템의 트래픽·의존성·장애 패턴을 모르고 시작하면 모든 후속 결정이 추측이 된다. AS-IS는 감이 아닌 숫자로.
롤백 경로를 안 만든다
되돌릴 수 없는 변경은 도박이다. 단계마다 어떻게 되돌릴지가 단계 설계에 포함되어야 한다.
신구 공존 기간을 짧게 잡는다
“빨리 끝내자”의 욕심. 현실은 신구 시스템이 6개월 이상 공존한다. 그 기간을 견딜 수 있는 설계가 필요.
최신 기술이 곧 정답이라고 가정한다
Vue 3·Nuxt 4가 모든 상황에 정답은 아니다. 현 시스템·팀·도메인이 감당 가능한 점프 거리가 진짜 기준.
지금 시스템을 멈추지 않고 옮길 수 있습니다.
현 시스템의 AS-IS부터 측정합니다. 한 번에 갈아엎지 않는 단계적 이전이 결국 더 빠르고 더 싸다는 것을, 18행 매트릭스가 증명합니다.