주말 3번 반납해 몰래 회사 프론트엔드 프로젝트를 리팩터링했더니, 동료들이 코드를 달라고 난리가 났다

한 프론트엔드 개발자가 3년 동안 4명의 개발자를 거친 50여 페이지 규모의 Vue 2 레거시 백오피스 프로젝트를 3번의 주말을 반납해 Vue 3, TypeScript, Vite 기반으로 단독 리팩터링했습니다. 이 실전 마이그레이션 과정에서 마주한 다양한 기술적 이슈를 해결하고 시스템을 최적화하여, 이웃 부서에서 설정 코드를 그대로 복사해 갈 정도로 큰 호응을 얻었습니다.

AI 요약

이 기사는 업무 공백기를 활용해 3년 된 회사 프로젝트를 홀로 리팩터링한 프론트엔드 개발자의 실전 경험담입니다. 기존 프로젝트는 4명의 개발자를 거치며 스타일이 일관되지 않고 TypeScript나 규격화된 컴포넌트도 없던 50여 페이지 규모의 Vue 2 기반 백오피스 시스템이었습니다. 저자는 3주의 주말(금요일 밤과 토요일 전체)을 투자하여 이를 Vue 3, TS, Vite, Pinia 조합으로 성공적으로 업그레이드했습니다. 1주 차에는 구조를 잡고 API 및 라우터를 마이그레이션했고, 2주 차에는 TS 도입 및 타입 오류 해결에 집중했으며, 3주 차에는 ESLint, Prettier, Husky 도입 및 컴포넌트 자동 임포트 등 최적화된 엔지니어링 환경을 구축했습니다. 리팩터링 이후 IDE의 자동 완성 기능이 원활히 작동하는 등 개발 환경이 크게 개선되었으며, 옆 부서 팀장이 검증된 설정 코드를 그대로 복사해 갈 정도로 큰 호응을 얻었습니다. 저자는 프론트엔드 엔지니어링의 진정한 가치가 최신 기술 도입 자체보다는 '실제 작동 가능하며 개발 능력이 낮은 팀원도 실수 없이 협업할 수 있는 지속 가능한 환경을 만드는 것'에 있다고 강조합니다.

핵심 인사이트

  • 레거시 프로젝트의 현대화: 3년 동안 4명의 프론트엔드 개발자를 거치며 일관성 없이 방치되었던 50여 페이지의 Vue 2 백오피스 프로젝트를 최신 Vue 3 + TS + Vite 기반 스택으로 전환했습니다.
  • 3단계 주차별 실행 전략: 3주의 주말 동안 1주 차 '동작 확보', 2주 차 'TypeScript 기반 안정화', 3주 차 '엔지니어링 환경 최적화'로 단계를 나누어 빠르고 정교하게 리팩터링을 진행했습니다.
  • 실용적 엔지니어링의 가치: 가장 수준이 낮은 개발자도 실수 없이 협업할 수 있는 안전장치(ESLint, TS, 자동화 도구)를 마련해 프로젝트가 지속해서 관리되도록 유도했습니다.

주요 디테일

  • 마이그레이션 도구의 한계: '@vue/cli' 마이그레이션 도구로는 전체 이슈의 약 30%만 해결할 수 있었으며, Options API를 Composition API로 전환하는 작업 등은 수작업으로 안전하게 전환했습니다.
  • 주요 변경 사항 대응: Vue Router 3에서 4로 넘어가며 'router.addRoutes'가 폐기되어 'router.addRoute'로 대체되었으며, Vue 3에서 'v-model'의 '.sync' 수식어 제거에 따른 바인딩 누락 오류를 수동으로 해결했습니다.
  • TypeScript 트러블슈팅: 'ref(null)'이 'Ref<null>'로 추론되는 문제를 'ref<User | null>(null)' 형태로 명시했고, 타입 정의가 없는 구형 라이브러리 지원을 위해 자체적으로 'shims-custom.d.ts' 파일을 생성해 대응했습니다.
  • 패키지 핵심 의존성 버전: 최신 버전 명세는 'vue' ^3.4.0, 'vite' ^5.0.0, 'typescript' ^5.3.0, 'pinia' ^2.1.0, 'vue-router' ^4.2.0을 기준으로 삼아 최적화했습니다.
  • 엔지니어링 편의 도구 도입: 'unplugin-vue-components'를 적용해 컴포넌트 자동 임포트를 구현했고, 코드 스타일 통일을 위한 ESLint와 환경 변수 분리를 위한 '.env' 파일 설정을 정비했습니다.

향후 전망

  • 사내 타 부서 마이그레이션 촉진: 실제로 빌드 및 동작이 확인된 리팩터링 설정 파일이 이웃 부서에 공유됨에 따라, 사내 Vue 3 전환 작업이 한층 신속하게 이루어질 것으로 전망됩니다.
  • 장기적인 유지보수 비용 절감: ESLint, Prettier, Husky 및 강력한 타입 검증이 강제화되면서 무분별한 오류 발생이 원천 차단되고, 프로젝트 유지보수와 신규 팀원 온보딩 비용이 대폭 감소할 것입니다.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...