레거시부터 App Router까지 서비스 운영을 멈추지 않고 단계적으로 전환했습니다
요약
PHP·Laravel Blade·Vue와 Next.js가 함께 운영되던 161개 경로를 조사하고, Pages Router에서 App Router·RSC까지 단계적으로 전환하며 약 7년간 주력 저장소의 최신성을 유지했습니다.
맡은 일
- 전체 경로 조사, 전환 순서, 새 저장소 구축, 기능 검증, 구 코드 제거와 팀 적용을 책임졌습니다.
문제
- 데스크톱 101개와 모바일 60개 경로가 PHP·Blade·Vue와 Next.js Pages Router에 나뉘어 있었습니다.
- 새 구조만 추가하고 이전 구조를 제거하지 않으면 같은 기능을 여러 방식으로 유지해야 했습니다.
판단과 합의
- 전체 재개발 대신 경로를 공개 여부와 난이도로 나눠 단계적으로 전환했습니다.
- 기존 기능과 동일하게 동작하는지 확인한 뒤 이전 코드를 바로 제거하고 주요 버전은 출시 후 3개월 안에 따라가는 기준을 세웠습니다.
실행
- 전체 경로와 관련 파일을 조사해 제거 가능 경로, 선행 전환 경로와 의존성이 큰 경로를 구분했습니다.
- PHP·Laravel Blade·Vue에서 Next.js Pages Router, 이후 App Router·RSC로 제품 기능을 옮겼습니다.
- React 16에서 19, Next.js 9에서 16까지 주요 버전을 실제 서비스에 적용했습니다.
- Next.js 16과 React 19 전환은 15개 작업 단위로 나눠 계획하고 검증했습니다.
결과
- 서비스 운영을 멈추지 않고 레거시에서 Pages Router, App Router·RSC까지 구조를 단계적으로 전환했습니다.
- 조사, 전환, 검증, 제거를 반복하며 하나의 프론트엔드 저장소를 약 7년간 유지했습니다.
이후
- App Router 경험을 기술 글과 팀 문서로 남겨 다음 전환의 기준으로 재사용했습니다.