"use client" vs hydrate

jellyjoji·2025년 1월 26일
0

프론트엔드

목록 보기
4/4

왜 use client를 써야 할까?

브라우저 전용 기능을 위해
React 훅들(useState, useEffect 등)은 서버에서 동작하지 않아요.

서버는 "HTML 만들기"만 잘하고,
브라우저는 "동작 추가(클릭, 상태 관리)"를 잘해요.
만약 컴포넌트에서 이런 브라우저 전용 기능이 필요하다면 use client를 명시해서 브라우저에서만 실행되도록 설정해야 해요.

"use client" vs hydrate 차이

  • "use client"는 "이 파일은 컴퓨터가 아닌 브라우저에서 실행될 거야!"
  • hydrate: 서버가 만든 HTML을 브라우저에서 React가 이어받아 동작하게 만들어!

"이어받는다"는 말은 서버가 준비해놓은 화면(HTML)을 브라우저가 가져와서, React가 그 화면을 이어받아 동적으로 동작하게 만드는 것을 말해요.

두 개의 역할은 다릅니다!

hydrate: 서버에서 만들어진 HTML을 React가 이어받아서 활성화하는 과정이에요. (HTML은 서버에서 만들어짐)
use client: 브라우저에서만 실행되는 컴포넌트를 만들 때 사용해요. 즉, 서버에서는 실행할 수 없는 기능(React 훅, 상태 관리 등)을 쓸 때 필요해요.

비유로 이해하기
서버가 HTML을 만드는 것: 마치 요리사가 음식을 테이블에 내놓은 것과 같아요.
React가 이어받는 것: 손님이 음식을 먹을 수 있도록 젓가락이나 포크를 주는 과정이에요. 음식(HTML)은 이미 준비되어 있지만, React가 동작을 넣어서 사용자가 "클릭, 입력" 같은 걸 할 수 있도록 준비시키는 거예요.

hydrate를 사용하는 이유는:

화면을 더 빨리 보여줄 수 있고,
검색엔진에 더 잘 노출되며,
데이터를 더 효율적으로 전달하기 위해서예요. 😊

둘다 동시에 사용해도 되나요?

네, hydrate와 "use client"는 동시에 사용할 수 있어요! 실제로 두 개가 함께 쓰이는 상황도 흔해요. 하지만 "어떻게" 쓰이는지와 그 이유를 이해하는 게 중요합니다.

hydrate는 앱 전체를 활성화하고, "use client"는 동적 기능이 필요한 특정 컴포넌트를 브라우저 전용으로 만들어줍니다. 😊

0개의 댓글