React 자동 배칭: 몇 번 재렌더링?

발행: (2025년 12월 15일 오전 12:51 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

Example

import { useState } from 'react';

const App = () => {
  const [name, setName] = useState('');
  const [age, setAge] = useState(null);
  const [hobby, setHobby] = useState('');

  const displayPerson = () => {
    setName('Luiji');
    setAge(29);
    setHobby('swimming');
  };

  console.log('Component rendered');

  return (
    <>
      
### {name}

      
### {age}

      
#### Enjoys: {hobby}

      
        {name === 'Yoshi' ? 'Display Person' : 'Person Displayed'}
      
    
  );
};

export default App;

버튼을 클릭하면 컴포넌트가 한 번만 다시 렌더링됩니다. 세 번이 아니라 한 번만 렌더링되는 이유는 React가 동일한 이벤트 루프 내에서 발생하는 상태 업데이트들을 자동으로 배치하기 때문입니다.

Note: 첫 번째 console.log는 초기 렌더링 시 실행되고, 두 번째는 버튼 클릭으로 인해 재렌더링이 트리거된 후 실행됩니다.

배치란 무엇인가?

배치는 여러 상태 업데이트를 하나의 렌더링 패스로 묶어 불필요한 작업을 줄이고 성능을 향상시킵니다. React 18에서는 자동 배치가 기본적으로 활성화되어 있으며 다음 상황에서 작동합니다:

  • 네이티브 이벤트 핸들러(예: 클릭)
  • 비동기 작업(예: 프로미스)
  • 타임아웃 및 인터벌

세 개의 setState 호출(setName, setAge, setHobby)이 모두 같은 클릭 이벤트 동안 발생하기 때문에 React는 이를 배치하고 단 한 번의 렌더링만 수행합니다.

Back to Blog

관련 글

더 보기 »

내부 구조: React

소개 나는 React를 사용하기 시작한 순간부터 이것을 하고 싶었다: 그것이 어떻게 작동하는지 이해하고 싶었다. 이것은 소스 코드를 세밀하게 검토하는 것이 아니다. In...