선택 기준(러닝 커브·사내 생태계) → 실제 적용(라우팅·상태 관리·코드 스플리팅) → 대안 비교(Vue·Svelte)
인턴 때 사내 관리자 도구를 React로 SPA로 만들었습니다. Vue도 후보였는데, 팀에 React 경험자가 두 명 있고 사내 컴포넌트 라이브러리가 React 기반이라 러닝 커브와 재사용을 기준으로 React를 골랐습니다.
라우팅은 React Router로 4개 화면을 나누고, 서버 상태는 React Query, UI 상태는 useState로 분리했습니다. Redux는 화면 수가 적어 굳이 넣지 않았습니다. 초기 로딩이 1.8초로 무거워 코드 스플리팅으로 0.9초까지 줄였습니다.
대안으로 Vue는 템플릿 문법이 친숙해 학습이 더 빠르다고 봤고, Svelte는 컴파일 타임 최적화가 강점이지만 사내 생태계가 없어 제외했습니다. SPA의 첫 페인트 지연은 위 스플리팅으로 보완하는 쪽으로 정리됐습니다.