Streaming
스트리밍(Streaming)은 초기 페이지 로딩 속도와 사용자 경험을 개선하기 위해 HTML 페이지를 여러 개의 청크로 나눠서 화면에 표시하는 기술을 의미합니다. 서버에서 화면에 표시할 데이터가 준비되어야만 브라우저에 화면을 그리는 SSR의 단점을 보완하기 위해 등장했습니다. 여기서 말하는 단점은 SSR로 페이지를 그릴 때 API 서버에서 데이터를 받아오는 시간이 오래 걸릴 경우 한참 동안 페이지 접속이 되지 않는 문제점을 의미합니다.
이 스트리밍 방식은 Next v13부터 지원됩 니다.
동작 방식
스트리밍은 서버 컴포넌트에서 원격의 API 데이터를 호출해서 그릴 때 확인할 수 있습니다. 아래 그림처럼 특정 URL로 페이지에 진입할 때 미리 그릴 수 있는 영역들은 미리 그립니다. 그리고, 데이터를 불러와야지만 화면을 표시할 수 영역들은 로딩 UI를 표시합니다.
이때 데이터 호출은 서버 사이드에서 수행하며 데이터가 준비되면 자바스크립트 청크가 브라우저에 전달됩니다. 브라우저에 전달된 청크가 최종적으로 화면에 표시되면서 사용자가 볼 수 있는 화면이 나타납니다.