- 리액트는 오랜 기간 사용되면서 방대한 라이브러리 생태계가 형성됨
- 다른 언어/프레임워크에서 온 개발자들은 리액트 애플리케이션을 구축하는 데 필요한 라이브러리 선택에 어려움을 겪을 수 있음
-
리액트의 핵심은 컴포넌트 기반 UI를 구축하는 기능 중심의 라이브러리
-
함수형 컴포넌트와 리액트 훅(React Hooks) 을 활용해 로컬 상태 관리, 부수 효과 처리, 성능 최적화 가능
- 궁극적으로 컴포넌트와 후크 모두 함수를 활용하여 UI를 구성하는 방식으로 작동함
- 2025년을 위한 대규모 애플리케이션을 개발하는 데 필요한 필수 리액트 라이브러리를 소개함
React 프로젝트 시작하기
-
Vite : React 프로젝트를 설정하는 가장 인기 있는 도구. 빠른 빌드 속도와 간편한 TypeScript 지원 제공
-
Next.js :
- React 기반 메타 프레임워크로 서버사이드 렌더링(SSR) 및 정적 사이트 생성(SSG) 지원
- 파일 기반 라우팅, API 라우트, React Server Components(RSC) 등 다양한 기능 제공
-
TanStack Start (Beta) : React 기반의 새로운 프레임워크로, React Server Components 지원 예정. Next.js의 대안으로 개발 중
-
React Router : React의 클라이언트 사이드 라우팅을 위한 대표적인 라이브러리. 현재 Remix의 영향을 받아 변화 중
-
Astro : 프레임워크에 구애받지 않는 정적 사이트 생성 도구. React와 함께 사용할 수 있으며, 불필요한 JavaScript를 최소화하여 성능 최적화 가능
-
Nitro , Redwood , Waku
- React의 새로운 프레임워크 및 툴링
- Waku는 Zustand 개발자가 만든 React Server Components 지원 라이브러리
-
추천:
- 클라이언트 사이드 렌더링(CSR): Vite
- 서버 사이드 렌더링(SSR): Next.js
- 정적 사이트 생성(SSG): Astro
React 패키지 매니저
-
npm : Node.js 기본 패키지 매니저이자 가장 널리 사용됨
-
Yarn : 더 나은 의존성 관리 및 속도 개선 제공
-
pnpm : 성능이 뛰어나지만 상대적으로 덜 보편적
-
Turborepo : Monorepo(모노레포) 관리 도구로, 여러 React 프로젝트를 효과적으로 관리 가능
-
추천:
- 일반적인 패키지 관리: npm
- 성능 최적화 필요 시: pnpm
- 모노레포 필요 시: Turborepo
React 상태 관리
-
useState, useReducer : React 기본 내장 훅으로 컴포넌트 내 상태 관리
-
useContext : 전역 상태 관리를 위한 React 기본 내장 훅
-
Zustand : 간단한 API로 전역 상태를 관리할 수 있는 라이브러리. Redux보다 사용이 간편하여 최근 많은 개발자들이 선호
-
Redux : 오랜 기간 사용된 상태 관리 라이브러리. 최근에는 Redux Toolkit이 표준으로 자리 잡음
-
XState, Zag : 상태 머신 기반 상태 관리 라이브러리
-
Mobx , Jotai , Nano Stores : Zustand, Redux 대안으로 사용 가능한 상태 관리 라이브러리
-
추천:
- 로컬 상태: useState / useReducer
- 작은 전역 상태: useContext
- 큰 전역 상태: Zustand
React 데이터 패칭
-
TanStack Query : REST 및 GraphQL API 요청을 위한 데이터 패칭 라이브러리. 캐싱, 동기화, 옵티미스틱 업데이트 등의 기능 제공
-
Apollo Client : GraphQL API에 최적화된 데이터 관리 라이브러리
-
urql : 경량 GraphQL 클라이언트
-
Relay : Facebook이 개발한 고성능 GraphQL 클라이언트
-
RTK Query : Redux 환경에서 데이터 패칭을 쉽게 할 수 있도록 돕는 도구
-
tRPC : TypeScript 기반의 백엔드-프론트엔드 간 타입 안전 API 통신을 제공. TanStack Query와 함께 사용 가능
-
추천:
- 서버 사이드 데이터 패칭: React Server Components / Functions (지원되는 메타 프레임워크 사용 시)
- 클라이언트 사이드 데이터 패칭: TanStack Query (REST, GraphQL)
- GraphQL 전용: Apollo Client
- 타입 안전한 API 통신: tRPC
React 라우팅
-
React Router : 클라이언트 사이드 라우팅을 위한 가장 널리 사용되는 라이브러리
-
TanStack Router (Beta) : TypeScript 지원이 뛰어난 새로운 라우팅 라이브러리
-
추천:
- 서버 사이드 라우팅: Next.js
- 클라이언트 사이드 라우팅: React Router (가장 많이 사용됨), TanStack Router (최신 트렌드)
React의 CSS 스타일링
-
Tailwind CSS
- Utility-First-CSS 방식으로, 미리 정의된 클래스를 활용해 빠르게 스타일링 가능
- 디자인 시스템을 일관되게 유지할 수 있지만, 클래스 네이밍이 복잡해질 수 있음
-
CSS Modules
- 컴포넌트별로 스타일을 모듈화하여 전역 스타일 충돌 방지 가능
- CSS-in-CSS 접근법 중 가장 널리 사용됨
-
styled-components
- JavaScript 코드 내에서 CSS를 정의하는 CSS-in-JS 방식
- 성능 및 서버 사이드 환경에서의 문제로 최근 인기가 줄어드는 추세
-
Emotion : styled-components와 유사한 CSS-in-JS 라이브러리로, 성능 최적화 및 유틸리티 클래스 활용 가능
-
clsx : 조건부 className 설정을 쉽게 해주는 유틸리티 라이브러리
-
StyleX : Facebook이 개발한 새로운 CSS-in-JS 솔루션. 최적화된 컴파일 방식으로 유틸리티-퍼스트 스타일링 제공
- 기타 CSS 라이브러리 : PandaCSS , linaria , vanilla-extract , nanocss , UnoCSS , Styled JSX
-
추천:
- 가장 인기 있는 방식: Tailwind CSS
- 스타일 모듈화 필요 시: CSS Modules
- 최신 CSS-in-JS 솔루션: StyleX
React UI 라이브러리
-
Material UI (MUI) : 프리랜서 프로젝트에서 여전히 많이 사용되는 UI 라이브러리. Google의 Material Design 시스템 기반
-
Mantine UI : 2022년 가장 인기 있었던 UI 라이브러리. 다양한 기능과 커스텀 스타일 지원
-
Chakra UI : 2021년 가장 인기 있었던 UI 라이브러리. 접근성과 스타일링 편의성이 뛰어남
-
Hero UI : 이전 Next UI에서 변경된 UI 라이브러리
-
Park UI : Ark UI 기반 UI 라이브러리
-
PrimeReact : 다양한 프리빌트(Prebuilt) UI 컴포넌트 제공
- 헤드리스 UI 라이브러리
- 사용 빈도가 줄어든 UI 라이브러리
-
추천:
- 스타일 포함 UI 라이브러리: MUI, Mantine, Chakra UI
- 스타일 미포함 헤드리스 UI 라이브러리: shadcn/ui, Radix
React 애니메이션 라이브러리
React 차트 및 데이터 시각화
React 폼 라이브러리
React 코드 스타일 및 포맷팅
-
ESLint : 코드 스타일 유지를 위한 린터. 인기 있는 스타일 가이드를 적용할 수 있음
-
Prettier : 일관된 코드 포맷팅을 제공하는 도구. ESLint와 함께 사용 가능
-
Biome : Rust 기반의 빠른 올인원 린터 및 코드 포맷터 (구 Rome). ESLint 및 Prettier의 대안으로 주목받는 중
-
추천:
- ESLint + Prettier 조합 사용
- 새로운 대안으로 Biome 고려
React 인증(Authentication)
React 백엔드
-
Next.js : 서버사이드 렌더링(SSR) 및 API 라우트 제공
-
Astro : 정적 웹사이트 생성에 적합한 프레임워크
-
tRPC : 타입 안전한 API 통신을 위한 솔루션
-
Hono : 초경량 서버 프레임워크로, React와 함께 사용 가능
- 전통적인 Node.js 백엔드 프레임워크
- 기타 백엔드 프레임워크
-
추천:
- 풀스택 React 개발: Next.js, tRPC
- 전통적인 백엔드 필요 시: Express, Fastify
React 데이터베이스 및 ORM
-
Prisma : 가장 인기 있는 TypeScript 기반 ORM
-
Drizzle ORM : Prisma의 대안으로 주목받는 ORM
- 기타 ORM 및 쿼리 빌더 : Kysely , database-js : PlanetScale 전용
- 서버리스 데이터베이스
- Firebase/Supabase 기반 데이터베이스
-
추천:
- ORM 필요 시: Prisma, Drizzle ORM
- 서버리스 데이터베이스: PlanetScale, Neon
React 호스팅
- 자체 관리형 서버 : Digital Ocean , Hetzner
- 완전 관리형 호스팅 :
- 기타 호스팅 플랫폼
-
추천:
- Next.js 프로젝트: Vercel
- 자체 서버 관리 필요 시: Digital Ocean, Hetzner
React 테스트 라이브러리
-
Vitest : Jest보다 빠르고 최신 React 프로젝트에 최적화된 테스트 프레임워크. 테스트 실행, 어서션, 목(mocking) 기능 제공
-
Jest : 오래된 프로젝트에서도 많이 사용되는 테스트 프레임워크
-
React Testing Library (RTL)
- React 컴포넌트 테스트를 위한 대표적인 라이브러리
- HTML 요소 렌더링 및 이벤트 시뮬레이션 기능 제공
-
Playwright
- 가장 추천되는 E2E(End-to-End) 테스트 도구
- 다양한 브라우저 및 디바이스 환경에서 자동화 테스트 가능
-
Cypress : 프론트엔드 E2E 테스트 도구로, Playwright와 경쟁 중
-
추천:
- 유닛/통합 테스트: Vitest + React Testing Library
- E2E 테스트: Playwright (또는 Cypress)
- 스냅샷 테스트 옵션: Vitest
React와 불변 데이터 구조
-
Immer :
- 불변 데이터 구조를 쉽게 다룰 수 있도록 돕는 라이브러리
- 복잡한 상태 변경 로직을 간결하게 구현 가능
React 다국어(i18n) 지원
-
FormatJS : 날짜, 숫자, 통화 등의 포맷팅 포함한 강력한 i18n 라이브러리
-
react-i18next : React에서 가장 널리 사용되는 다국어 지원 라이브러리
-
Lingui : 최소한의 설정으로 강력한 다국어 지원 제공
-
next-intl : Next.js 프로젝트를 위한 다국어 라이브러리
-
추천:
- 가장 보편적인 선택: react-i18next
- Next.js 기반 프로젝트: next-intl
React 리치 텍스트 에디터
-
TipTap : 확장성이 뛰어난 최신 리치 텍스트 에디터
-
Plate : Slate.js 기반의 강력한 에디터 솔루션
-
Lexical : Facebook이 만든 경량 리치 텍스트 에디터
-
Slate : 커스텀 가능한 리치 텍스트 에디터 프레임워크
-
추천:
- 유연한 확장성 필요 시: TipTap
- 경량 & 최적화된 에디터: Lexical
React 결제 시스템
-
PayPal : 가장 널리 사용되는 결제 시스템 중 하나
-
Stripe : 개발 친화적인 결제 API 제공
- 기타 결제 솔루션
-
추천:
- 간편한 결제 솔루션: Stripe
- PayPal 지원 필요 시: PayPal 또는 Braintree
React에서 시간 및 날짜 처리
-
date-fns : 가벼우면서도 다양한 날짜/시간 함수 제공
-
Day.js : Moment.js의 가벼운 대안으로, API가 유사함
-
추천:
- 가장 가벼운 라이브러리: Day.js
- 기능이 풍부한 라이브러리: date-fns
React 데스크톱 애플리케이션
-
Electron :
- 크로스 플랫폼 데스크톱 애플리케이션 개발 프레임워크
- 웹 기술(HTML, CSS, JS)로 Windows, macOS, Linux 애플리케이션 제작 가능
-
Tauri
- Electron보다 가벼운 대안으로 Rust 기반 백엔드 사용
- 보안성과 성능이 중요한 프로젝트에 적합
-
추천:
- 웹 기술을 그대로 활용: Electron
- 경량 & 보안 우선: Tauri
React 파일 업로드
React 이메일 렌더링
-
react-email (추천) : React 컴포넌트를 활용한 반응형 HTML 이메일 제작 가능
-
mjml : HTML 이메일을 간편하게 생성하는 마크업 언어
-
Mailing : 개발자가 쉽게 이메일을 생성하고 관리할 수 있도록 지원
-
jsx-email : JSX 문법을 활용한 이메일 템플릿 제작 가능
- 이메일 서비스 제공업체 :
-
추천:
- React 스타일로 이메일 제작: react-email
- 이메일 서비스 필요 시: SendGrid, Mailgun
React 드래그 앤 드롭
-
@hello-pangea/dnd : react-beautiful-dnd의 후속 프로젝트로 간편한 사용법 제공
-
dnd kit : 높은 유연성과 커스터마이징 가능하지만 학습 곡선이 있음
-
추천:
- 쉬운 드래그 앤 드롭: @hello-pangea/dnd
- 커스터마이징 필요 시: dnd kit
React 모바일 개발
-
React Native : React 기반의 크로스 플랫폼 모바일 애플리케이션 개발 프레임워크
-
Expo : React Native 개발을 더욱 쉽게 만들어주는 툴체인
-
Tamagui : 웹과 모바일에서 동일한 UI 컴포넌트를 사용할 수 있도록 지원
-
추천:
- 모바일 개발: React Native + Expo
- 웹과 모바일 UI 통합: Tamagui
React VR/AR 개발
-
react-three-fiber : Three.js 기반 3D 렌더링 라이브러리. VR 지원 사례 존재
-
react-360 (아카이브됨) : 페이스북이 개발한 VR/AR 프레임워크 (현재 유지보수 중단)
-
aframe-react (더 이상 유지보수 안됨) : A-Frame을 React에서 사용할 수 있도록 지원하는 라이브러리
-
추천:
- 최신 React 3D/VR 라이브러리: react-three-fiber
React 디자인 프로토타이핑
-
Figma : UI/UX 디자인 및 프로토타이핑을 위한 가장 인기 있는 툴
-
Excalidraw : 손으로 그린 듯한 와이어프레임 및 다이어그램 제작 가능
-
tldraw : Excalidraw과 유사한 스케치 도구
-
추천:
- UI/UX 디자인: Figma
- 간단한 와이어프레임: Excalidraw
React 컴포넌트 문서화