프론트엔드 개발 · 심화
React Server Components란 무엇이며, 기존 SSR과의 차이점은?
힌트 · 클라이언트/서버 컴포넌트 구분과 번들 사이즈 이점을 생각해보세요.
서버 컴포넌트클라이언트 컴포넌트렌더링 위치스트리밍부분적 hydration
모범답안
React Server Components는 서버에서 렌더링되는 컴포넌트입니다. 기존 SSR(Server-Side Rendering)과 가장 큰 차이점은 렌더링 위치와 번들 사이즈입니다.
SSR은 서버에서 HTML을 생성하여 클라이언트로 보내고, 클라이언트에서는 JavaScript를 통해 DOM을 조작하는 hydration 과정을 거칩니다. 이 과정에서 클라이언트는 서버에서 보낸 HTML과 함께 모든 컴포넌트의 JavaScript 번들을 다운로드해야 합니다.
반면, Server Components는 서버에서 렌더링된 결과만 클라이언트로 보내고, 클라이언트에서는 필요한 부분만 hydration합니다. 즉, 서버에서 실행되는 컴포넌트는 클라이언트 번들에 포함되지 않아 번들 사이즈를 크게 줄일 수 있습니다. 또한, Server Components는 데이터 페칭을 서버에서 직접 수행할 수 있어 클라이언트 측 로직을 단순화하고 성능을 향상시킬 수 있습니다.
간단히 말해, Server Components는 렌더링 위치를 서버로 옮겨 번들 사이즈를 줄이고, 클라이언트 컴포넌트와 함께 사용하여 효율적인 렌더링을 가능하게 하는 새로운 방식입니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- React에서 컴포넌트 리렌더링이 발생하는 조건과 최적화 방법에 대해 설명해주세요.
- React의 Context API와 상태 관리 라이브러리의 차이점과 선택 기준은?
- React의 제어 컴포넌트와 비제어 컴포넌트의 차이점은?
- React의 Concurrent Mode와 useTransition, useDeferredValue에 대해 설명해주세요.
- React의 useImperativeHandle Hook의 용도와 사용법에 대해 설명해주세요.
- React에서 setState 호출이 항상 비동기적으로 동작한다고 말할 수 있을까요? React 18 이전과 이후의 자동 배치(automatic batching) 동작 차이를 setTimeout이나 Promise 콜백 내부에서의 setState를 예로 들어 설명해주세요.