개인 프로젝트에서 야금야금 써보면서 빠른 속도와 컴포넌트 단위 렌더링 전략에 특히 반했고
vercel의 업데이트 소식을 들으니 곧 app router가 안정화될 때가 정말 머지않았다는 소식과
회사에 1-2개월 여유가 생겨 도입을 결심했습니다!
(4월 초 13.3 마이그레이션 진행, 5월 초 13.4 app router 안정화)
마이그레이션을 결심한 매력적인 기능들
App Directory
layout, loading, error boundary file
Server Components
→ 코드가 간결해지고 페이지 구조가 직관적으로 느껴졌습니다.
→ 클라이언트인지 서버인지 구분하며 컴포넌트를 짜니 컴포넌트의 역할이 명확해졌습니다.
Built-in 최적화 기능들
Metadata API for SEO
Image
Font
기대되는 다음 업데이트
Turbopack: 700배 빠른 러스트 기반 웹팩 (Beta)
Server Actions: form마저 서버로 가능..?! (Alpha)
💬
성능을 위한 빌트인 기능들을 적극 활용하고
Server Components 기반의 app directory를 사용해 정말 필요한 부분만 클라이언트 코드로 작성하는 것을 중심으로 마이그레이션을 진행했습니다!
Tanstack Query → SWR
SWR
Vercel에서 만든 데이터 가져오기를 위한 React Hooks입니다.
SWR은 stale-while-revalidate의 약어로
먼저 캐시(stale)로부터 데이터를 반환한 후,
fetch 요청(revalidate)을 하고,
최종적으로 최신화된 데이터를 가져오는 전략
입니다.
SWR로 변경한 이유
Next.js를 만든 vercel이 만든 라이브러리 ✨
→ Next.js의 변경사항을 가장 빠르게 반영할 수 있을 것 같다.
→ Next.js가 추구하는 방향과 동일하게 업데이트 될 것 같다.
아주 친절한 문서
- 한국어 지원
- 동적인 데이터를 다루기 때문에 과정이 모호할 수 있는데 이미지 설명이 굉장히 친철해 이해가 편함