⚛️ React 19.0에서 19.2까지: 새로운 점, 개선된 점, 그리고 왜 중요한가 ⁉️

발행: (2025년 12월 13일 오후 05:09 GMT+9)
8 min read
원문: Dev.to

Source: Dev.to

📌 한눈에 보기: React 19 릴리스 타임라인

버전릴리스 날짜주요 초점하이라이트
19.02024 년 12 월 5 일비동기 & 서버 기반Actions, useOptimistic, RSC 안정성
19.12025 년 3 월 28 일안정성 & 디버깅Owner Stack, Suspense 수정
19.22025 년 10 월 1 일성능 & 제어“, useEffectEvent

🌱 React 19.0 — 기반 변화

2024 년 12 월에 출시된 React 19.0은 React 역사상 가장 혁신적인 업데이트 중 하나였습니다. 이 버전은 비동기 워크플로, 서버 컴포넌트, 점진적 향상에 집중했으며, 몇 가지 파괴적 변경도 포함했습니다.

✨ React 19.0의 특별함

🔄 Actions: 비동기 네이티브 지원

Actions는 startTransition 내부에 비동기 함수를 직접 넣어 다음을 처리합니다:

  • 로딩 상태
  • 오류
  • 폼 제출

수동 스피너나 오류 플래그를 관리할 필요 없이 React가 자동으로 처리합니다.

// Example: Using an Action inside startTransition
startTransition(() => {
  doSomethingAsync();
});

⚡ 최신 UI를 위한 새로운 Hook

  • useActionState – 전환 중 상태 관리 (폼에 최적)
  • useOptimistic – 실패 시 자동 롤백되는 즉시 UI 업데이트
  • use – 렌더 중에 Promise나 Context를 직접 읽고 자동으로 서스펜드
const [state, dispatch] = useActionState(initialState, action);
const optimisticValue = useOptimistic(promise, fallback);
const data = use(somePromise); // suspends until resolved

🧩 보일러플레이트 감소, API 정리

  • 이제 Ref를 props로 전달 가능 (forwardRef가 많은 경우에 필요 없음)
  • 메타데이터() 자동 호이스팅
  • 형제 컴포넌트 사전 워밍을 통한 스마트 Suspense

🧠 React DOM & Server 개선

  • action prop을 통한 네이티브 폼 Actions
  • useFormStatus 로 내장된 대기 상태 제공
  • 자산 최적화(preload, preinit)
  • prerenderprerenderToNodeStream 같은 스트리밍 SSR 헬퍼
  • 안정적인 React Server Components (RSC)

⚠️ 주의해야 할 파괴적 변경

이 기능들을 사용하려면 React 19.0은 여러 레거시 API를 제거했습니다:

  • propTypes, contextTypes, 문자열 Ref
  • ❌ 함수 컴포넌트의 defaultProps (ES6 기본값 사용)
  • ReactDOM.render & hydrate
  • ❌ UMD 빌드 (앞으로는 ESM 전용)

TypeScript 사용자도 Ref 가변성 변화와 폐기된 타입 제거를 경험했습니다. 마이그레이션에 노력이 필요했지만, 미래를 열어 주었습니다.

🔧 React 19.1 — 안정성, 다듬기 & 디버깅 향상

2025 년 3 월에 출시된 React 19.1정제에 초점을 맞췄습니다. 파괴적 변경이나 폐지는 없으며, 전반적인 사용성을 매끄럽게 다듬었습니다.

🪜 Owner Stack: 디버깅 슈퍼파워

개발 전용 기능인 Owner Stack은 컴포넌트가 어디서 렌더링됐는지 추적할 수 있게 해 주어 복잡한 트리를 디버깅할 때 큰 도움이 됩니다.

🧊 Suspense, 더 스마트하게

개선 사항:

  • 클라이언트·서버 전반에 걸친 스케줄링 개선
  • 고정된 fallback 문제 수정
  • 불필요한 재시도 감소
  • 하이드레이션 성능 향상

🛠️ 품질 향상 Fixes

  • CSS‑안전 useId 값 보장
  • 새로운 이벤트 지원 (예: <details>beforetoggle)
  • 프로덕션·개발 환경 일관성 개선
  • 로그 정리 및 GC 압력 감소

React 19.1은 “신뢰 구축” 릴리스라는 평판을 얻었습니다.

⚡ React 19.2 — 성능과 정밀성

최신 릴리스인 React 19.2(2025 년 10 월)는 성능 제어와 부드러운 비동기 오케스트레이션을 목표로 합니다.

🎭 “: 상태를 유지한 채 가시성 제어

새로운 “ 컴포넌트를 사용하면:

  • 상태를 언마운트하지 않고 UI 섹션을 숨김
  • 이펙트를 일시 정지하고 업데이트를 연기
  • 백그라운드에서 콘텐츠를 매끄럽게 로드

탭, 모달, 단계적 UI 로딩에 최적입니다.

{/* Example usage of the `` component */}

🎯 useEffectEvent: 의존성 지옥 탈출

이 Hook은 반응 로직이벤트 로직을 분리해:

  • 불필요한 이펙트 재실행 감소
  • 의존성 배열 간소화
  • ESLint 규칙(특히 v6)과의 호환성 향상
const handleClick = useEffectEvent((event) => {
  // event‑specific logic without re‑creating the handler
});

🌐 서버 & SSR 진전

  • 부분 프리렌더링 재개 지원
  • 배치된 Suspense 공개(애니메이션·일관성 향상)
  • Node SSR에서 Web Streams 지원
  • cacheSignal을 통한 프리로드 힌트·캐싱 개선

React Core, DOM, RSC 전반에 걸친 수십 개의 버그가 함께 수정되었습니다.

🧩 React 19 릴리스 간 기능 비교

카테고리19.019.119.2
비동기 & 상태Actions, useOptimistic, useSuspense 스케줄링 수정useEffectEvent, cacheSignal
성능프리로드 API, 하이드레이션 최적화“, SSR 배치
폼 & DOM폼 Actions, 메타데이터 호이스팅경고 수정Nonce & ID 업데이트
서버 컴포넌트안정적인 RSCunstable_prerender프리렌더 재개
파괴적 변경다수없음없음

🏁 마무리 생각: 왜 React 19이 중요한가

React 19 여정은 대담한 혁신 뒤에 신중한 정제가 이어진 이야기입니다:

  • 19.0은 기반을 마련했지만(마이그레이션 비용 존재)
  • 19.1은 신뢰와 안정성을 회복시켰고
  • 19.2는 성능과 정밀성을 제공했습니다

이 세 단계는 비동기 로직을 자연스럽게 만들고, 서버 렌더링을 매끄럽게 하며, 개발자가 작성해야 할 보조 코드 양을 줄이면서도 제어권을 유지하도록 React를 한 단계 끌어올립니다.

업그레이드를 계획한다면 단계별로 진행하고, 충분히 테스트하며, DevTools와 마이그레이션 가이드를 적극 활용하세요. 그 보상은 충분히 가치가 있습니다 ✨

Happy Reacting! ⚛️

주요 인용

Back to Blog

관련 글

더 보기 »

새로운 React 19 Hooks (예시 포함)

React 19은 비동기 작업, 폼 관리 및 낙관적 UI 업데이트에 대한 보다 세밀한 제어를 제공하는 여러 새로운 hooks를 도입합니다. 이러한 hooks는 …