프론트엔드 개발 · 심화
React의 Concurrent Mode와 useTransition, useDeferredValue에 대해 설명해주세요.
힌트 · 긴급/비긴급 업데이트 우선순위 구분을 생각해보세요.
비동기_렌더링우선순위InterruptibleSuspenseTransition
모범답안
React의 Concurrent Mode는 React가 사용자 인터랙션을 더 부드럽게 처리하기 위해 도입된 기능입니다. 핵심은 렌더링 작업을 인터럽트하고 우선순위를 부여할 수 있다는 점입니다.
useTransition 훅은 상태 업데이트를 긴급한 업데이트와 비긴급한 업데이트로 나눌 수 있게 해줍니다. 예를 들어, 입력 필드에 글자를 입력하는 것은 긴급한 업데이트로 즉시 반영되어야 하지만, 검색 결과를 보여주는 것은 비긴급한 업데이트로 처리하여 화면이 멈추는 것을 방지할 수 있습니다.
useDeferredValue 훅은 값을 "지연"시켜서 렌더링 성능을 최적화하는 데 사용됩니다. 예를 들어, 복잡한 컴포넌트가 렌더링되는 동안 다른 중요한 업데이트가 먼저 처리되도록 할 수 있습니다.
이러한 기능들을 통해 React는 사용자 경험을 향상시키고, 더 복잡한 애플리케이션을 효율적으로 관리할 수 있게 되었습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- React의 Context API와 상태 관리 라이브러리의 차이점과 선택 기준은?
- React의 제어 컴포넌트와 비제어 컴포넌트의 차이점은?
- React Server Components란 무엇이며, 기존 SSR과의 차이점은?
- React의 useImperativeHandle Hook의 용도와 사용법에 대해 설명해주세요.
- React에서 setState 호출이 항상 비동기적으로 동작한다고 말할 수 있을까요? React 18 이전과 이후의 자동 배치(automatic batching) 동작 차이를 setTimeout이나 Promise 콜백 내부에서의 setState를 예로 들어 설명해주세요.
- JSX는 결국 React.createElement(또는 jsx 런타임) 호출로 변환됩니다. 이 변환 결과인 element 객체가 어떤 구조를 가지며, 이것이 실제 DOM이 아니라 '설명(description)'에 불과하다는 점이 렌더링 파이프라인에서 어떤 의미를 갖는지 설명해주세요.