서버 컴포넌트 특징
- 오직 서버에서만 렌더링 되는 컴포넌트이다
- 기본적으로, 모든 React 컴포넌트(Next.js 앱에서)는 ReactServerComponents 이다.
- 클라이언트 코드가 거의 없어 성능 최적화의 적합하다.
클라이언트 컴포넌트 특징
- 서버에서 사전 렌더링되지만, 'use client' 지시어를 통해 선택적으로 클라이언트에서도 렌더링될 수 있는 컴포넌트
- 클라이언트 측 상호작용 가능성은 React 컴포넌트가 서버에서 렌더링된 후에도 클라이언트에서 사용자와의 상호작용(이벤트 처리, 상태 변경 등)을 할 수 있게 해주는 기능을 의미한다.
Next에서 useState,useEffetct, 이벤트 핸들링 처리를 하고 싶으면 사용하는 파일 위에 'use client'를 선언해주면 해당 컴포넌트는 클라이언트 컴포넌트가 됌