vercel-react-best-practices 완전 정복: Vercel이 직접 만든 React·Next.js 성능 최적화 가이드 스킬
React

vercel-react-best-practices 완전 정복: Vercel이 직접 만든 React·Next.js 성능 최적화 가이드 스킬


📌 핵심 요약
  • 퍼블리셔: Vercel Labs (공식) / 주간 설치: 295,500회 / GitHub ⭐ 24.7K
  • 설치: npx skills add vercel-labs/agent-skills —skill vercel-react-best-practices
  • 한 줄 요약: React·Next.js 성능 최적화 69개 규칙을 AI 에이전트가 코드 작성 시 자동으로 적용
  • 지원 에이전트: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot 등

React로 앱을 만들다 보면 이런 상황을 마주칩니다. 컴포넌트는 잘 동작하는데 어딘가 느립니다. Lighthouse 점수는 낮고, 처음 페이지가 뜨는 데 오래 걸립니다. Claude Code에 “성능 최적화해줘”라고 해봐도 돌아오는 답변은 항상 비슷합니다. React.memo 써라, useCallback 써라 — 알고는 있지만 이 코드정확히 어떻게 적용해야 하는지는 여전히 막막합니다.

문제는 AI 에이전트가 React 성능 최적화 원칙을 모르는 게 아닙니다. Vercel 수준의 체계화된 우선순위 기준이 없어서입니다. 워터폴 제거가 번들 최적화보다 먼저인지, server-cache-reactserver-cache-lru 중 어느 상황에 무엇을 써야 하는지 — 이런 판단 기준이 없으면 에이전트도 일반론만 이야기합니다.

vercel-react-best-practices 스킬은 이 간극을 메웁니다. Vercel이 실제 프로덕션 경험을 바탕으로 정리한 69개 규칙을 에이전트에 직접 주입해서, 코드를 짤 때마다 자동으로 이 기준이 적용되도록 합니다.

vercel-react-best-practices란?

vercel-react-best-practices는 Vercel Labs가 공식 배포한 React·Next.js 성능 최적화 스킬입니다. 2026년 1월 19일 처음 등록된 이후 현재 주간 설치 수 295,500회, GitHub Stars 24,700개를 기록하고 있습니다.

스킬 하나에 69개 규칙이 담겨 있습니다. 규칙마다 왜 중요한지, 잘못된 예시, 올바른 예시가 함께 포함되어 있어서 에이전트가 단순히 규칙 이름만 아는 게 아니라 실제 코드에 어떻게 적용해야 하는지까지 이해합니다.

69개 규칙, 8개 카테고리

Vercel은 규칙들을 임팩트 순서대로 정리했습니다. 우선순위가 높은 것부터 먼저 적용하도록 설계되어 있습니다.

우선순위카테고리임팩트규칙 접두어
1워터폴 제거CRITICALasync-
2번들 크기 최적화CRITICALbundle-
3서버 사이드 성능HIGHserver-
4클라이언트 데이터 페칭MEDIUM-HIGHclient-
5리렌더링 최적화MEDIUMrerender-
6렌더링 성능MEDIUMrendering-
7자바스크립트 성능LOW-MEDIUMjs-
8고급 패턴LOWadvanced-

워터폴과 번들이 CRITICAL로 분류된 이유는 사용자가 체감하는 로딩 속도에 직접 영향을 주기 때문입니다. 리렌더링 최적화는 중요하지만 워터폴보다는 나중에 챙겨야 합니다.

이 스킬이 해결하는 문제

🔴 스킬 없이 코드 리뷰를 요청하면

”useCallback을 사용해서 함수 참조를 안정화하세요. React.memo로 불필요한 리렌더링을 막을 수 있습니다.”


🟢 스킬을 설치하고 코드 리뷰를 요청하면

”async-parallel 규칙 위반: fetchUser와 fetchPosts가 순차 실행되고 있습니다. 두 요청은 서로 독립적이므로 Promise.all()로 병렬화해야 합니다. 또한 bundle-barrel-imports 위반: import { Button } from ’@/components’처럼 배럴 파일을 통해 임포트하면 트리 쉐이킹이 제대로 되지 않습니다. import { Button } from ’@/components/Button’으로 직접 임포트하세요.”

에이전트가 규칙 코드(async-parallel, bundle-barrel-imports)를 구체적으로 언급하기 때문에 어떤 기준을 적용했는지 추적할 수 있습니다.

설치 방법

터미널을 열고 아래 명령어를 실행합니다. 프로젝트 폴더 위치와 무관하게 어디서든 실행할 수 있습니다.

# Claude Code에 전역 설치 (모든 프로젝트에서 사용 가능)
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices -g -a claude-code

# 현재 프로젝트에만 설치
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices -a claude-code

-g 옵션은 “글로벌(global)“의 약자로, 한 번 설치하면 이후 모든 프로젝트에서 자동으로 이 스킬이 활성화됩니다. React·Next.js 프로젝트를 여러 개 운영하고 있다면 -g를 붙이는 편이 편합니다.

다른 에이전트를 사용하신다면:

# Cursor에 설치
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices -a cursor

# Codex(OpenAI)에 설치
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices -a codex

# Gemini CLI에 설치
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices -a gemini-cli
✅ 동작 확인 환경
  • Claude Code (주간 설치 218.7K)
  • Codex / OpenCode (217.3K)
  • Gemini CLI (216.0K)
  • GitHub Copilot (205.8K)
  • Cursor (201.3K)
  • Amp (180.8K)

실전 데모: 이렇게 써보세요

설치 후 Claude Code에서 React 컴포넌트를 작성하거나 리뷰를 요청하면 됩니다. 별도 명령어가 필요 없습니다. 에이전트가 알아서 규칙을 참조합니다.

예시 1: 데이터 페칭 코드 리뷰

"이 컴포넌트 성능 문제 있으면 알려줘"
// 이런 코드를 붙여넣으면
async function Dashboard() {
  const user = await fetchUser();
  const posts = await fetchPosts();
  const stats = await fetchStats();
  return <div>...</div>;
}

에이전트 응답:

async-parallel 규칙: fetchUser, fetchPosts, fetchStats가 순차적으로
실행되고 있습니다. 세 요청은 서로 독립적이므로 동시에 실행할 수 있습니다.

수정 방법:
const [user, posts, stats] = await Promise.all([
  fetchUser(),
  fetchPosts(),
  fetchStats()
]);

이 변경만으로 세 요청 중 가장 느린 하나의 시간만 기다리게 됩니다.
세 요청이 각각 200ms라면 기존 600ms → 200ms로 단축됩니다.

예시 2: 새 컴포넌트 작성

"상품 목록 컴포넌트 만들어줘. 상품이 100개 이상일 수 있어"

에이전트가 자동으로 적용하는 규칙들:

  • rendering-content-visibility: 뷰포트 밖 아이템에 content-visibility: auto 적용
  • bundle-dynamic-imports: 상세 모달처럼 무거운 컴포넌트는 next/dynamic으로 지연 로드
  • rerender-memo: 리스트 아이템 컴포넌트를 메모이제이션
// 스킬이 없을 때 — 기본 구현
export function ProductList({ products }) {
  return (
    <div>
      {products.map(p => <ProductCard key={p.id} product={p} />)}
    </div>
  );
}

// 스킬이 있을 때 — 규칙 적용 버전
const ProductDetail = dynamic(() => import('./ProductDetail'), { ssr: false });

const ProductCard = memo(function ProductCard({ product }) {
  return <div style={{ contentVisibility: 'auto' }}>...</div>;
});

export function ProductList({ products }) {
  return (
    <div>
      {products.map(p => <ProductCard key={p.id} product={p} />)}
    </div>
  );
}

내부 동작 원리

이 스킬이 설치되면 에이전트의 컨텍스트에 69개 규칙이 주입됩니다. 각 규칙은 별도 파일(rules/async-parallel.md 등)로 관리되며, 에이전트가 코드를 분석할 때 해당 규칙들을 참조 기준으로 삼습니다.

규칙 파일 하나의 구조는 이렇습니다:

rules/async-parallel.md
├── 왜 중요한지 (원인 설명)
├── 잘못된 코드 예시 + 무엇이 문제인지
├── 올바른 코드 예시 + 왜 좋은지
└── 추가 컨텍스트와 참고 자료

에이전트가 규칙 이름(async-parallel)을 명시적으로 언급하는 이유도 여기 있습니다. 내가 무슨 기준으로 피드백하는지 추적 가능하게 설계된 것입니다.

스킬이 사용하는 도구

이 스킬은 별도 외부 API나 도구를 호출하지 않습니다. 규칙 텍스트를 에이전트 컨텍스트에 주입하는 것이 전부입니다. 따라서 인터넷 연결이 없어도 설치 후에는 오프라인에서 동작합니다.

이럴 때 쓰세요 / 이럴 때는 안 맞아요

잘 맞는 상황덜 맞는 상황
React·Next.js 컴포넌트를 새로 작성할 때Vue, Svelte, Angular 프로젝트
기존 코드 성능 리뷰를 요청할 때백엔드 API 서버만 작업할 때
번들 크기가 너무 크다는 피드백을 받았을 때이미 최적화가 잘 된 성숙한 프로젝트
리팩토링 방향을 잡고 싶을 때성능보다 빠른 기능 구현이 우선일 때
Next.js App Router로 마이그레이션할 때React Native 앱 (웹 최적화 규칙 일부 미적용)

Vercel Labs의 다른 스킬들

vercel-labs/agent-skills 레포에는 React 외에도 여러 스킬이 있습니다.

# 전체 목록 확인
npx skills add vercel-labs/agent-skills --list

주요 스킬들:

  • web-design-guidelines — 접근성, 레이아웃, 타이포그래피 등 웹 디자인 체크리스트
  • deploy-to-vercel — Vercel 배포 설정 자동화 가이드
  • vercel-react-best-practices — 지금 이 스킬

같은 레포의 스킬을 한 번에 설치하려면:

npx skills add vercel-labs/agent-skills
📚 AI 에이전트 스킬 소개 시리즈

자주 묻는 질문 (FAQ)

Q1: vercel-react-best-practices 스킬은 유료인가요?

npx skills add로 설치되는 스킬 자체는 GitHub에 공개된 텍스트 파일입니다. 완전 무료입니다. 이 스킬은 외부 API를 호출하지 않으므로 추가 비용이 발생하지 않습니다.

Q2: Next.js가 아닌 React 프로젝트에도 쓸 수 있나요?

네. 69개 규칙 중 일부는 Next.js 전용(server-cache-react, server-after-nonblocking 등)이지만, 워터폴 제거·번들 최적화·리렌더링 최적화 규칙들은 Create React App이나 Vite 기반 프로젝트에서도 동일하게 적용됩니다.

Q3: 스킬 설치 후 에이전트를 재시작해야 하나요?

Claude Code 기준으로, 설치 후 새 세션을 시작하면 자동 적용됩니다. 현재 열린 세션에 즉시 적용하려면 /reload 명령을 실행합니다. Cursor는 IDE를 재시작하면 됩니다.

Q4: 69개 규칙을 다 외워야 하나요?

전혀 아닙니다. 스킬을 설치하면 에이전트가 규칙을 참조하기 때문에 사용자가 기억할 필요가 없습니다. 에이전트가 규칙 이름을 언급하면 그때 해당 규칙이 무엇인지 물어보면 됩니다.


댓글 남기기

궁금한 점이나 나누고 싶은 이야기가 있다면 자유롭게 남겨주세요.
여러분의 소중한 의견이 블로그를 성장시킵니다! 🌱

💡 오늘의 명언

"꽃은 자신을 누구와 비교하지 않는다. 그저 피어날 뿐이다."

✍️ 작성하기

💬0개의 댓글

댓글을 불러오는 중입니다...