모던 리액트 Deep Dive - 서버 사이드 랜더링을 위한 리액트 API

2025. 11. 10. 21:41·Study/모던 리액트 Deep Dive

⚡서버 사이드 렌더링 - 4.2 서버 사이드 랜더링을 위한 리액트 API 살펴보기 

  • Node.js같은 서버환경에서만 실행할 수 있으며, window환경에서 실행 시 에러가 발생할 수 있음
  • 리액트에서 서버 사이드 렌더링을 실행할 때 사용되는 API를 확인해 보려면 리액트 저장소의 react-dom/server.js를 확인하면 됨
  • react-dom/server.js에는 react-dom이 서버에서 렌더링하기 위한 다양한 메서드를 제공하고 있음

4.2.1 renderToString

  • 인수로 넘겨받은 리액트 컴포넌트를 렌더링해 HTML문자열로 반환하는 함수
  • 최초페이지를 빠르게 HTML로 먼저 렌더링 하는 역할
  • 클라이언트에서 실행되는 자바스크립트 코드를 포함시키거나 렌더링하는 역할까지 해주지는 않음
  • 클라이언트에서 실행되지 않고, 완성된 HTML을 서버에서 제공할 수 있으므로 초기 렌더링에서 뛰어난 성능을 보임

4.2.2 renderToStaticMarkup

  • renderToString처럼 리액트 컴포넌트를 기준으로 HTML문자열을 만들지만, 리액트에서 사용하는 추가적인 DOM속성을 만들지 않음(리액트에서만 사용하는 속성을 제거하면 HTML의 크기를 약간 줄일수 있음)
  • 리액트의 이벤트 리스너가 필요없는 완전히 순수한 HTML을 만들때만 사용

4.2.3 renderToNodeStream

  • 브라우저에서 사용하는 것이 불가능(renderToString와 renderToStaticMarkup는 브라우저에서 사용가능)
  • Node.js같은 환경에서 의존함
  • 생성해야하는 HTML의 크기가 작다면 renderToString으로 가능하나, 크기가 크다면 renderToNodeStream을 사용해야 함

4.2.4 renderToStaticNodeStream

  • renderToNodeStream과 제공하는 결과물은 동일하지만, 리액트 자바스크립트에 필요한 리액트 속성이 제공되지 않음

4.2.5 hydrate

  • 생성된 HTML콘텐츠에 자바스크립트 핸들러나 이벤트를 붙이는 역할을 함
  • 리액트에서 render 함수는 컴포넌트와 HTML의 요소를 인수로 받는데, 인수로 받은 두 정보를 바탕으로 HTML의 요소에 해당 컴포넌트를 렌더링 하며, 여기에 이벤트 핸들러를 붙이는 작업까지 모두 한 번에 수행함
  • render와의 차이점은 이미 렌더링 된 HTML이 있다는 가정하에 작업이 수행되고, 렌더링 된 HTML을 기준으로 이벤트를 붙이는 작업만 실행함

4.2.6 서버 사이드 렌더링 예제 프로젝트 

 

 

 

 

 

'Study > 모던 리액트 Deep Dive' 카테고리의 다른 글

모던 리액트 Deep Dive - 상태관리  (0) 2025.12.09
모던 리액트 Deep Dive - Next.js  (0) 2025.11.23
모던 리액트 Deep Dive - 리액트 훅과 고차 컴포넌트  (0) 2025.11.01
모던 리액트 Deep Dive - 리액트 훅  (1) 2025.10.22
모던 리액트 Deep Dive - 메모이제이션  (0) 2025.10.14
'Study/모던 리액트 Deep Dive' 카테고리의 다른 글
  • 모던 리액트 Deep Dive - 상태관리
  • 모던 리액트 Deep Dive - Next.js
  • 모던 리액트 Deep Dive - 리액트 훅과 고차 컴포넌트
  • 모던 리액트 Deep Dive - 리액트 훅
happy_dev
happy_dev
복사하고 붙여넣기 잘하고 싶어요
  • happy_dev
    happy의 개발일지
    happy_dev
  • 전체
    오늘
    어제
    • 전체 (43)
      • Java (0)
      • React (1)
      • DB (1)
      • Study (41)
        • 친절한 SQL 튜닝 (9)
        • 모던 리액트 Deep Dive (18)
        • 젠킨스로 배우는 CI,CD 파이프라인 구축 (14)
        • Studyd (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    toad
    조인
    DB
    젠킨스
    인덱스의기본
    oracle
    리액트
    SQL
    Jenkins
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
happy_dev
모던 리액트 Deep Dive - 서버 사이드 랜더링을 위한 리액트 API
상단으로

티스토리툴바