왜 Hydration이 필요한가???
SSR로 생성된 HTML은 브라우저가 빠르게 렌더링 하지만, 그 HTML에는 React의 상태 관리나 이벤트 핸들러가 포함되어 있지 않다.
클라이언트 측에서 React가 그 HTML을 다시 인식하고 이벤트 핸들러와 상태를 적용해 상호작용 가능한 애플리케이션으로 만들어야 한다. 이과정을 hydration이라고 부른다.
Hydration 과정
서버에서 HTML을 미리 생성해 사용자의 브라우저로 전송
클라이언트 (브라우저)는 React를 이용해 서버에서 받은 HTML을 분석하고, 이를 기반으로 Virtual DOM을 생성 한다.
Virtual DOM 이란????
버츄얼 돔은 웹페이지의 실제 DOM과는 별도로 메모리에 유지되는 가상 사본이다. 주로 React 같은 라이브러리에서 사용되며ㅡ 화면을 효율적으로 업데이트하는데 도움을 준다.
- state 즉 상태가 변경되면 가상트리를 생성하고 이전 Virtual DOM 과 새로 생성된 Vurtual DOM을 비교해서 변경된 부분만 DOM에 반영한다.
그럼 Hydration을 사용하면 무엇이 좋고 단점은 뭔데??
빠른 초기 로딩: SSR 덕분에 사용자에게 빠르게 페이지가 보인다.
SEO 향상: 검색 엔진이 서버에서 렌더된 HTML을 쉽게 크롤링할 수 있다.
코드 재사용: 서버와 클라이언트 모두 동일한 React 코드를 사용한다.