LumoMate
LumoMate/용어집/SurfaceWeb

서버 사이드 렌더링

서버 사이드 렌더링(Server-side Rendering, SSR)은 사용자가 페이지를 요청했을 때 서버가 미리 HTML을 만들어 보내 주는 방식입니다. 사용자는 브라우저가 화면을 그리기 전에도 글의 모양을 볼 수 있습니다.
서버 사이드 렌더링의 개념을 표현한 편집형 일러스트.

쉬운 설명

SPA는 첫 응답이 거의 빈 HTML이고, 자바스크립트가 다 내려와 실행돼야 비로소 글자가 보입니다. 인터넷이 느리거나 기기가 약하면 한참 동안 흰 화면을 봅니다. SSR은 서버가 그 첫 HTML을 미리 그려서 보내 주기 때문에, 사용자가 페이지를 받자마자 글·이미지가 보입니다.

동시에 검색엔진(구글봇 등)도 좋아합니다. SPA가 보내는 빈 HTML은 봇이 내용을 못 읽지만, SSR이 보내는 완성된 HTML은 본문을 즉시 읽어서 색인합니다. 그래서 콘텐츠 사이트·커머스에서는 SEO 때문에 SSR을 자주 씁니다. SNS 공유 미리보기(OG 이미지·제목·요약)도 SSR에서 자연스럽게 동작합니다.

현대 SSR의 흐름은 '서버에서 만든 HTML + 클라이언트의 자바스크립트'를 결합하는 형태입니다. 서버가 첫 화면을 그려서 보내 주고, 그 위에 자바스크립트가 붙어 그 뒤의 상호작용을 담당합니다. 이걸 '하이드레이션(hydration)'이라고 부릅니다. Next.js·Remix·Nuxt·SvelteKit이 이 흐름을 표준 도구로 제공합니다.

SSR과 비슷한 단어가 몇 개 더 있어 헷갈리기 쉽습니다. SSG(정적 생성)는 빌드 타임에 미리 모든 페이지를 HTML로 만들어 두는 방식 — 변하지 않는 콘텐츠(문서·블로그)에 좋습니다. ISR(증분 정적 재생성)은 SSG + 일정 주기로 재생성. SSR은 매 요청마다 서버가 새로 그리는 방식 — 데이터가 자주 바뀌거나 사용자별로 다른 경우에 적합합니다. 세 방식을 한 프로젝트 안에서 페이지별로 섞어 쓰는 게 보통입니다.

SSR의 단점도 있습니다. 매 요청마다 서버가 일을 하니 서버 비용이 늘고, 트래픽이 폭주하면 응답이 느려질 수 있습니다. 그래서 캐싱·CDN을 함께 두는 게 일반적입니다. 또 클라이언트와 서버에서 같은 코드가 실행되는데 환경 차이로 작은 버그가 생기곤 합니다(예: window 객체는 서버에 없음). 이런 디테일을 잘 다뤄야 진짜 SSR의 이점을 누립니다.

서버 사이드 렌더링의 개념을 본문 안에서 다른 각도로 비춰 보는 편집형 일러스트.
FIG. 1서버 사이드 렌더링을 다른 각도에서 다시 봅니다.

비유로 보면

SSR은 식당이 미리 만든 따끈한 한 그릇을 손님에게 바로 내주는 방식이고, SPA는 손님에게 재료와 도구를 한 봉지 주고 식탁에서 직접 조리하게 하는 방식입니다. 식탁에서 만들면 손님 입맛에 더 맞출 수 있지만, 첫 한 입까지 더 오래 걸립니다.

어디에서 만나나

콘텐츠 사이트(뉴스·블로그·매거진), 이커머스(상품 상세 페이지), 마케팅 페이지, SEO가 중요한 모든 사이트. 또 사용자별 대시보드처럼 매 요청마다 다른 데이터를 보여 줘야 하는 경우에도 SSR이 자연스럽습니다. Next.js가 이 영역에서 가장 널리 쓰이는 프레임워크입니다.

작은 예시

뉴스 사이트에서 기사 링크를 페이스북에 공유하면 미리보기가 제목·이미지와 함께 뜹니다. 그게 가능한 이유는 서버가 기사 HTML을 미리 만들어서 응답하기 때문(SSR)이고, 만약 SPA였다면 미리보기 자리에 빈 페이지만 잡힐 가능성이 큽니다.

자주 하는 오해

오해
흔한 오해 셋. ① 'SSR = 무조건 빠르다' — 서버가 느리면 SSR이 SPA보다 느릴 수 있습니다. ② 'SSR이면 자바스크립트는 안 필요하다' — 첫 화면은 HTML이지만 상호작용은 여전히 자바스크립트가 합니다. ③ 'SSG와 SSR은 같다' — 빌드 타임에 만드는지(SSG), 요청 시점에 만드는지(SSR)에 차이가 있습니다.

한 줄 정리

SSR은 '첫 화면을 빠르게, 검색·공유에서 잘 보이게' 만드는 가장 표준적인 방법입니다. SPA의 부드러움과 함께 묶을 때 가장 좋은 결과가 나옵니다.
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.