Vercel의 React Best Practices와 Claude Code 활용하기

Vercel의 React Best Practices와 Claude Code 활용하기

작성일
2026년 01월 19일
태그
react
nextjs
typescript
카테고리
react
Last edited time
Last updated January 19, 2026
날짜

들어가며

최근 Vercel Engineering에서 React/Next.js 성능 최적화 가이드를 공개했습니다. 흥미로운 점은 이 문서가 단순한 개발 가이드가 아니라, AI 에이전트와 LLM이 코드를 생성하고 리팩토링할 때 참고하도록 설계되었다는 것입니다.
Note:
This document is mainly for agents and LLMs to follow when maintaining, generating, or refactoring React and Next.js codebases at Vercel.
45개 규칙, 8개 카테고리로 구성되어 있으며, 각 규칙은 영향도(CRITICAL → LOW)에 따라 우선순위가 매겨져 있습니다.

8개 카테고리 한눈에 보기

우선순위
카테고리
영향도
핵심 내용
:---:
:---
:---:
:---
1
Eliminating Waterfalls
CRITICAL
폭포수 현상 제거, 병렬 처리
2
Bundle Size Optimization
CRITICAL
번들 크기 최적화, 동적 임포트
3
Server-Side Performance
HIGH
서버 캐싱, RSC 최적화
4
Client-Side Data Fetching
MEDIUM-HIGH
SWR, 요청 중복 제거
5
Re-render Optimization
MEDIUM
불필요한 리렌더 방지
6
Rendering Performance
MEDIUM
렌더링 성능 개선
7
JavaScript Performance
LOW-MEDIUM
JS 마이크로 최적화
8
Advanced Patterns
LOW
고급 패턴

주요 규칙 살펴보기

1. Eliminating Waterfalls (CRITICAL)

폭포수 현상은 성능의 가장 큰 적입니다. 순차적인 await는 전체 네트워크 지연을 누적시킵니다.
// ❌ 순차 실행: 3번의 왕복 const user = await fetchUser() const posts = await fetchPosts() const comments = await fetchComments() // ✅ 병렬 실행: 1번의 왕복 const [user, posts, comments] = await Promise.all([ fetchUser(), fetchPosts(), fetchComments() ])
2-10배 성능 개선이 가능한 가장 임팩트 있는 최적화입니다.

2. Bundle Size Optimization (CRITICAL)

Barrel 파일 import를 피하세요. 대형 라이브러리의 barrel import는 200-800ms의 로딩 비용을 발생시킵니다.
// ❌ 전체 라이브러리 로드 (1,583 모듈) import { Check, X, Menu } from 'lucide-react' // ✅ 필요한 것만 로드 (3 모듈) import Check from 'lucide-react/dist/esm/icons/check' import X from 'lucide-react/dist/esm/icons/x' import Menu from 'lucide-react/dist/esm/icons/menu'
Next.js 13.5+에서는 optimizePackageImports 설정으로 자동 최적화할 수 있습니다.
// next.config.js module.exports = { experimental: { optimizePackageImports: ['lucide-react', '@mui/material'] } }

3. Server-Side Performance (HIGH)

컴포넌트 컴포지션으로 병렬 데이터 페칭을 구현하세요.
// ❌ Sidebar가 Header 페칭을 기다림 export default async function Page() { const header = await fetchHeader() return ( <div> <div>{header}</div> <Sidebar /> </div> ) } // ✅ 둘 다 동시에 페칭 export default function Page() { return ( <div> <Header /> <Sidebar /> </div> ) }
React Server Components는 트리 내에서 순차적으로 실행됩니다. 컴포지션으로 재구성하면 데이터 페칭을 병렬화할 수 있습니다.

4. Re-render Optimization (MEDIUM)

함수형 setState를 사용하세요. stale closure 버그를 방지하고 안정적인 콜백을 만들 수 있습니다.
// ❌ items 의존성 필요, 매번 재생성 const addItem = useCallback((newItem) => { setItems([...items, newItem]) }, [items]) // ✅ 의존성 없음, 안정적인 참조 const addItem = useCallback((newItem) => { setItems(curr => [...curr, newItem]) }, [])
장점:
  • 안정적인 콜백 참조 - 상태 변경 시 재생성 불필요
  • stale closure 방지 - 항상 최신 상태 값 사용
  • 의존성 감소 - 메모리 누수 위험 감소

5. JavaScript Performance (LOW-MEDIUM)

O(1) 조회를 위해 Set/Map을 사용하세요.
// ❌ O(n) per check const allowedIds = ['a', 'b', 'c'] items.filter(item => allowedIds.includes(item.id)) // ✅ O(1) per check const allowedIds = new Set(['a', 'b', 'c']) items.filter(item => allowedIds.has(item.id))
1000개 아이템 × 1000개 허용 ID의 경우: 1M ops → 2K ops

Claude Code와 함께 사용하기

이 가이드의 진정한 가치는 AI 코딩 도구와 함께 사용할 때 발휘됩니다. Claude Code는 이러한 규칙들을 .claude/skills/ 폴더에 저장하면 자동으로 참고합니다.

설치 방법

1. Claude Code 설치
npm install -g @anthropic-ai/claude-code
2. 프로젝트에 스킬 추가
프로젝트 루트에 .claude/skills/vercel-react-best-practices/ 폴더를 생성하고, Vercel의 가이드 파일들을 추가합니다.
your-project/ ├── .claude/ │ └── skills/ │ └── vercel-react-best-practices/ │ ├── SKILL.md # 스킬 정의 │ ├── AGENTS.md # 전체 가이드 (2,250줄) │ └── rules/ # 45개 개별 규칙 │ ├── async-parallel.md │ ├── bundle-barrel-imports.md │ └── ... ├── src/ └── package.json
3. SKILL.md 작성
--- name: vercel-react-best-practices description: React and Next.js performance optimization guidelines from Vercel Engineering. ---
이제 Claude Code가 React/Next.js 코드를 작성하거나 리뷰할 때 이 규칙들을 자동으로 참고합니다.

AI 시대의 개발 가이드

이 문서가 흥미로운 이유는 "AI가 읽기 좋은 형태" 로 작성되었다는 점입니다.

각 규칙의 구조

### 규칙명 **Impact: CRITICAL/HIGH/MEDIUM/LOW** 간단한 설명 **Incorrect: 문제점 설명** 코드 예시 **Correct: 해결책** 코드 예시
이 구조의 장점:
  • 명확한 Before/After 비교 - AI가 패턴을 학습하기 쉬움
  • 영향도 표시 - 우선순위 판단 가능
  • 구체적인 코드 예시 - 즉시 적용 가능

실제 활용 사례

Claude Code에게 다음과 같이 요청하면:
"이 컴포넌트의 성능을 최적화해줘"
Claude Code는 자동으로:
  1. 폭포수 패턴 감지 → Promise.all() 적용
  1. barrel import 발견 → 직접 import로 변경
  1. 불필요한 리렌더 감지 → 함수형 setState 적용
  1. O(n) 조회 발견 → Set/Map으로 변경
이 모든 것이 Vercel의 Best Practices에 기반합니다.

마치며

AI 코딩 도구가 발전하면서, "AI가 참고할 수 있는 명확한 가이드라인" 의 중요성이 커지고 있습니다. Vercel의 이번 가이드는 그 좋은 예시입니다.
프로젝트에 .claude/skills/를 활용해 팀만의 코딩 규칙을 AI에게 학습시켜 보세요. 일관된 코드 품질과 성능 최적화를 자동으로 얻을 수 있습니다.

참고 자료