Agent skill

react

React 성능 최적화 및 베스트 프랙티스 스킬. Vercel Engineering 가이드 기반, 프레임워크 비종속. 다음 상황에서 사용: (1) React 컴포넌트(.tsx, .jsx) 작성 또는 수정 시, (2) 상태 관리, hooks, 리렌더링 최적화 작업 시, (3) 비동기 데이터 페칭 또는 Suspense 패턴 작업 시, (4) 번들 사이즈 최적화 또는 코드 스플리팅 시, (5) 'react', 'useState', 'useEffect', 'useMemo', 'useCallback', 'memo', 'Suspense', 'lazy' 키워드가 포함된 작업 시

Stars 4
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/DaleStudy/skills/tree/main/skills/react

Metadata

Additional technical details for this skill

author
DaleStudy
version
1.0.0

SKILL.md

React

Vercel 가이드 기반 React 성능 최적화 베스트 프랙티스. 프레임워크 비종속(Next.js, Remix, Vite 등 무관).

각 규칙의 상세 설명과 코드 예제는 references/ 참고. 원본 Vercel 가이드의 전체 규칙(Next.js/SSR 포함)은 vercel-react-best-practices 참고.

규칙 카테고리

우선순위 카테고리 영향도 접두사
1 비동기 워터폴 제거 CRITICAL async-
2 번들 사이즈 최적화 CRITICAL bundle-
3 리렌더링 최적화 MEDIUM rerender-
4 렌더링 성능 MEDIUM rendering-
5 클라이언트 데이터/이벤트 MEDIUM client-
6 JavaScript 성능 LOW-MEDIUM js-
7 고급 패턴 LOW advanced-

빠른 참조

1. 비동기 워터폴 제거 (CRITICAL)

  • async-parallel - Promise.all()로 독립 작업 병렬화
  • async-defer-await - 불필요한 경로에서 await 지연
  • async-suspense-boundaries - Suspense로 부분 렌더링
  • async-dependencies - 부분 의존성 있는 작업의 최대 병렬화

2. 번들 사이즈 최적화 (CRITICAL)

  • bundle-barrel-imports - barrel file 직접 import 지양
  • bundle-lazy - React.lazy로 코드 스플리팅
  • bundle-preload - hover/focus 시 프리로드
  • bundle-conditional - 기능 활성화 시에만 모듈 로드
  • bundle-defer-third-party - 비필수 서드파티 하이드레이션 후 로드

3. 리렌더링 최적화 (MEDIUM)

  • rerender-functional-setstate - 함수형 setState로 안정적 콜백
  • rerender-lazy-state-init - 비용 큰 초기값 지연 초기화
  • rerender-derived-state - 파생 boolean 구독
  • rerender-dependencies - Effect 의존성 좁히기
  • rerender-memo - memo로 비용 큰 작업 분리
  • rerender-transitions - startTransition으로 UI 반응성 유지
  • rerender-ref-callbacks - ref callback으로 DOM 접근 (useRef+useEffect 대체)
  • rerender-avoid-usestate - useState 대체 패턴 판단 가이드
  • rerender-url-state - URL 검색 매개변수로 상태 관리
  • rerender-form-libraries - 폼 라이브러리로 useState 제거
  • rerender-discriminated-union - discriminated union으로 불가능한 상태 방지
  • rerender-use-reducer - useReducer로 복잡한 상태 전이
  • rerender-derived-state-no-effect - 파생 상태를 렌더링 중 계산
  • rerender-defer-reads - 상태 읽기를 사용 시점으로 지연
  • rerender-memo-with-default-value - memo 컴포넌트 기본값 상수 추출
  • rerender-move-effect-to-event - 인터랙션 로직을 이벤트 핸들러로 이동
  • rerender-simple-expression-in-memo - 단순 표현식에 useMemo 사용 금지
  • rerender-use-ref-transient-values - 일시적 값에 useRef 사용
  • rerender-simplify-useeffect - useEffect를 커스텀 훅으로 단순화

4. 렌더링 성능 (MEDIUM)

  • rendering-animate-svg-wrapper - SVG 래퍼로 GPU 가속
  • rendering-content-visibility - 긴 목록 오프스크린 최적화
  • rendering-hoist-jsx - 정적 JSX 호이스팅
  • rendering-conditional-render - 삼항 연산자로 falsy 버그 방지
  • rendering-hydration-no-flicker - 하이드레이션 불일치 없이 깜빡임 방지
  • rendering-activity - Activity/CSS로 상태/DOM 보존
  • rendering-svg-precision - SVG 좌표 정밀도 축소 (SVGO)
  • rendering-usetransition-loading - useTransition으로 수동 로딩 상태 대체
  • rendering-inp-css-feedback - CSS :active + yield로 INP 개선
  • rendering-composition-vs-early-return - Composition vs Early Return 선택 기준

5. 클라이언트 데이터/이벤트 (MEDIUM)

  • client-passive-event-listeners - passive로 스크롤 지연 제거
  • client-localstorage-schema - localStorage 버전 관리
  • client-sync-external-store - useSyncExternalStore로 브라우저 API/외부 스토어 구독
  • client-event-listeners - 글로벌 이벤트 리스너 중복 제거
  • client-data-dedup - TanStack Query/SWR로 데이터 페칭 중복 제거
  • client-abort-redundant-work - AbortController로 불필요한 비동기 작업 취소

6. JavaScript 성능 (LOW-MEDIUM)

  • js-index-maps - Map으로 O(1) 조회
  • js-tosorted-immutable - toSorted()로 불변성 유지
  • js-set-map-lookups - Set으로 O(1) 멤버십 검사
  • js-early-exit - 조기 반환으로 불필요한 처리 방지
  • js-batch-dom-css - DOM 읽기/쓰기 분리로 레이아웃 스래싱 방지
  • js-cache-function-results - 반복 함수 호출 모듈 레벨 캐싱
  • js-cache-property-access - 루프 내 프로퍼티 접근 캐싱
  • js-cache-storage - localStorage/cookie 읽기 메모리 캐싱
  • js-combine-iterations - 복수 배열 순회를 단일 루프로
  • js-hoist-regexp - RegExp를 모듈 스코프로 호이스팅
  • js-length-check-first - 배열 비교 시 길이 먼저 확인
  • js-min-max-loop - 정렬 대신 단일 루프로 min/max
  • js-iterator-helpers - Iterator Helper로 지연 처리

7. 고급 패턴 (LOW)

  • advanced-event-handler-refs - 이벤트 핸들러를 ref에 저장 (재구독 방지)
  • advanced-use-latest - useEffectEvent/useLatest로 안정적 콜백 ref
  • advanced-init-once - 앱 초기화를 컴포넌트가 아닌 모듈 레벨에서
  • advanced-closure-scope - 클로저 스코프 격리로 메모리 누수 방지

Vercel 원본 가이드 추가 규칙

이 스킬은 프레임워크 비종속 규칙만 포함. Next.js/SSR 전용 규칙은 원본 참고:

규칙 영향도 설명
server-cache-react MEDIUM React.cache()로 요청 내 중복 제거
server-cache-lru HIGH LRU 캐시로 요청 간 캐싱
server-serialization HIGH RSC 경계에서 직렬화 최소화
server-parallel-fetching CRITICAL 컴포넌트 구성으로 서버 데이터 병렬 페칭
server-after-nonblocking MEDIUM after()로 논블로킹 후처리
server-auth-actions MEDIUM 서버 액션 인증 검증
server-dedup-props LOW 중복 props 제거
bundle-dynamic-imports CRITICAL next/dynamic으로 동적 임포트
rendering-hydration-suppress-warning LOW suppressHydrationWarning 사용
async-api-routes MEDIUM API 라우트 비동기 패턴

원본 전체 문서: vercel-labs/agent-skills: react-best-practices

참고

Expand your agent's capabilities with these related and highly-rated skills.

DaleStudy/skills

bun

Node.js 대신 Bun 런타임 사용을 위한 스킬. 다음 상황에서 사용: (1) 새 JavaScript/TypeScript 프로젝트 생성 시, (2) package.json 또는 의존성 관련 작업 시, (3) 스크립트 실행 또는 개발 서버 시작 시, (4) Node.js 프로젝트를 Bun으로 전환 시, (5) 'bun', 'bunx', 'bun.lockb' 키워드가 포함된 작업 시

4 0
Explore
DaleStudy/skills

storybook

Storybook 스토리 작성 및 CSF 3.0 베스트 프랙티스 스킬. 다음 상황에서 사용: (1) 새 스토리 파일(.stories.tsx, .stories.ts) 작성 시, (2) 기존 스토리 수정 시, (3) Args, Decorators, Parameters 설정 시, (4) Storybook 설정 파일(.storybook/) 작업 시, (5) 'story', 'stories', 'storybook', 'CSF' 키워드가 포함된 작업 시

4 0
Explore
DaleStudy/skills

testing

React Testing Library 및 Vitest 기반 테스팅 모범 관례. 다음 상황에서 사용: (1) .test.tsx, .test.ts, .spec.tsx, .spec.ts 파일 작업 시, (2) 컴포넌트 테스트 작성 또는 리팩토링 시, (3) 'test', 'testing', 'vitest', 'RTL', 'getByRole', 'userEvent', 'waitFor', 'expect' 키워드 포함 작업 시, (4) 비동기 로직 또는 사용자 상호작용 테스트 작성 시

4 0
Explore
DaleStudy/skills

github-actions

GitHub Actions 워크플로우 생성, 보안 및 버전 관리 스킬. 다음 상황에서 사용: (1) 새 워크플로우 파일(.yml) 작성 시, (2) 기존 워크플로우 수정 시, (3) 액션 버전 검토 또는 업데이트 시, (4) CI/CD 보안 감사 시, (5) 'actions/', 'uses:', 'workflow', '.github/workflows' 키워드가 포함된 작업 시

4 0
Explore
DaleStudy/skills

github

GitHub CLI(gh)를 활용한 GitHub 플랫폼 상호작용 가이드. 다음 상황에서 사용: (1) GitHub 이슈 생성, 조회, 수정 시, (2) Pull Request 생성, 리뷰, 병합 시, (3) GitHub 릴리스 생성 및 관리 시, (4) 레이블, 마일스톤 등 프로젝트 관리 시, (5) GitHub Actions 워크플로우 실행 및 결과 조회 시, (6) 'gh', 'issue', 'pull request', 'PR', 'release', 'label', 'workflow', 'run' 키워드가 포함된 작업 시

4 0
Explore
DaleStudy/skills

typescript

TypeScript 타입 정의 및 베스트 프랙티스 스킬. 다음 상황에서 사용: (1) TypeScript 파일(.ts, .tsx) 작성 또는 수정 시, (2) 타입 정의(interface, type) 작업 시, (3) tsconfig.json 설정 또는 컴파일러 옵션 조정 시, (4) 타입 에러 해결 또는 타입 안전성 개선 시, (5) 제네릭, 유틸리티 타입, 타입 조작 작업 시, (6) 'typescript', 'ts', 'type', 'interface', 'generic' 키워드가 포함된 작업 시

4 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results