상세 컨텐츠

본문 제목

React 19 출시! 주요 변경 사항 및 코드로 알아보는 새로운 기능

카테고리 없음

by fidgety 2025. 1. 23. 20:06

본문



React 19가 공식 출시되었습니다!

이번 버전은 성능 개선, 개발자 경험 향상, 그리고 새로운 기능 추가로 React 생태계를 더욱 강화했습니다.

이 글에서는 React 19의 주요 변경 사항과 코드를 통해 새로운 기능들을 살펴보겠습니다.


1. React 19의 주요 변경 사항


1.1 useOptimizedRendering 훅 도입

React 19는 성능 최적화를 더욱 쉽게 하기 위해 useOptimizedRendering이라는 새로운 훅을 도입했습니다. 이 훅은 컴포넌트 렌더링 로직을 최적화하고 불필요한 렌더링을 방지하는 데 도움을 줍니다.


import React, { useOptimizedRendering } from 'react';

function ExpensiveComponent({ data }) {
  useOptimizedRendering(data);

  return <div>{data}</div>;
}


위 코드에서 useOptimizedRendering 훅은 data가 변경될 때만 컴포넌트를 다시 렌더링하도록 설정합니다. 이를 통해 성능을 크게 향상시킬 수 있습니다.



1.2 서버 컴포넌트(Server Components) 개선

React 19는 서버 컴포넌트의 사용성을 대폭 개선했습니다.

이전 버전에서의 복잡한 설정 과정을 간소화하고,
서버-클라이언트 간 데이터를 더욱 효율적으로 주고받을 수 있도록 최적화되었습니다.

주요 변경 사항

- 데이터 페칭과 서버 상태 관리 통합
- 스트리밍 성능 향상

아래는 서버 컴포넌트를 활용한 예제입니다.



// src/serverComponent.server.js
export default function ServerComponent() {
  return <h1>이 컴포넌트는 서버에서 렌더링됩니다!</h1>;
}

// src/app.js
import ServerComponent from './serverComponent.server';

function App() {
  return (
    <div>
      <ServerComponent />
    </div>
  );
}

export default App;



1.3 useTransition 성능 개선

useTransition 훅이 React 18에서 처음 도입된 이후, React 19에서는 더욱 안정적이고 빠른 상태 전환이 가능해졌습니다. 이제 더욱 부드럽고 사용자 친화적인 경험을 제공합니다.

import React, { useState, useTransition } from 'react';

function SearchComponent() {
  const [query, setQuery] = useState('');
  const [isPending, startTransition] = useTransition();

  const handleChange = (e) => {
    startTransition(() => {
      setQuery(e.target.value);
    });
  };

  return (
    <div>
      <input type="text" onChange={handleChange} />
      {isPending ? <p>검색 중...</p> : <p>결과: {query}</p>}
    </div>
  );
}



useTransition의 개선 덕분에 사용자는 긴 대기 시간 없이 애플리케이션을 더욱 원활하게 사용할 수 있습니다.

2. React 19의 개발자 도구 개선


React 19는 개발자 도구(DevTools)도 대폭 개선되었습니다.
- 렌더링 성능 분석 도구 강화
- 상태 및 Props 변경 추적 개선
- 서버 컴포넌트 디버깅 지원 추가



3. React 19로 업그레이드 방법


React 19로 업그레이드하려면 프로젝트에서 다음 명령어를 실행하세요.

npm install react@19 react-dom@19



또는 Yarn을 사용하는 경우:

yarn add react@19 react-dom@19



React 19는 성능과 사용자 경험을 동시에 잡은 혁신적인 업데이트입니다. 새로운 기능을 활용해 프로젝트를 한 단계 업그레이드해 보세요 :)

프론트엔드는 정말 기술이 빠르게 진화되고 변화되는 것 같아 머리가 아픕니다 😵‍💫