서버가 코드를 해석해서 HTML을 보내면, “사용자에게 더 빠르고 즉각적인 첫 화면”을 보여줄 수 있기 때문입니다.
그리고 그 안에는 3가지 이유가 숨어있어요 👇
🧩 1️⃣ 사용자가 “즉시 볼 수 있도록” 하기 위해 (초기 로드 속도)
❌ CSR 방식 (브라우저가 직접 해석)
- 클라이언트가 요청
- 서버가 빈 HTML + JS 코드 전송
- 브라우저가 JS를 다운로드 → 실행 → API 요청 → 화면 그림
➡ 사용자는 그동안 “하얀 화면”을 봅니다.
✅ SSR 방식 (서버가 미리 해석)
- 서버가 React, JSP, ASP.NET 같은 코드를 직접 실행
- 완성된 HTML을 바로 클라이언트로 전송
➡ 브라우저는 JS를 받기도 전에 이미 완성된 화면을 보여줄 수 있음.
🔹 즉, SSR은 “보여주는 속도”를 극단적으로 단축합니다.
UX(사용자 경험)과 SEO(검색엔진 최적화)에 매우 유리하죠.
🧩 2️⃣ 검색엔진(SEO)과 SNS 미리보기 때문
검색 엔진(Google, Naver)은 HTML 문서의 내용을 읽습니다.
그런데 CSR은 JS를 실행해야 내용이 나오죠.
(검색봇은 JS를 완벽히 실행하지 못함)
| 비교 | CSR | SSR |
| 초기 HTML | 거의 비어있음 (<div id="root"></div>) | 완성된 HTML (<h1>안녕하세요</h1>) |
| SEO | 불리 | 유리 |
| SNS 미리보기(meta tag) | 표시 안됨 | 즉시 표시됨 |
🔹 그래서 블로그, 쇼핑몰, 뉴스, 커머스 사이트는 SSR을 택합니다.
(검색 노출, 링크 미리보기 모두 HTML 기반)
🧩 3️⃣ 보안과 인증을 서버에서 직접 처리하기 위해
서버가 직접 코드를 해석하면,
- 로그인 세션 검증
- 권한 체크
- DB 접근
등을 HTML 생성 과정에서 바로 수행할 수 있습니다.
즉,
서버 렌더링 단계에서 “이 사용자는 로그인 중인가?”를 미리 판단하고
로그인된 상태에 맞는 화면(마이페이지, 로그아웃 버튼 등)을 즉시 내려줄 수 있습니다.
CSR에서는 이런 판단을 브라우저에서 하므로,
- “로그인 상태 깜빡임” (로그인 안 된 화면 → 로그인 화면으로 바뀜)
- “비공개 페이지가 잠깐 보였다 숨겨짐”
같은 현상이 자주 일어나죠.
SSR은 이걸 원천 차단합니다 ✅
⚙️ 4️⃣ “서버 부하”는 있지만, “사용자 수 기준 이득”이 큽니다
맞아요. 서버가 직접 코드를 해석하니까 서버 부하는 늘어납니다.
하지만 이건 “사용자 경험과 검색 최적화에 투자하는 비용”이에요.
그리고 현실적으로는 이렇게 부하를 줄입니다 👇
| 전략 | 설명 |
| 캐싱 (Cache) | 같은 HTML은 메모리/Redis/CDN에 저장해 재사용 |
| Static Generation (SSG) | 자주 바뀌지 않는 페이지는 미리 HTML로 만들어 둠 |
| Edge Rendering | CDN 수준에서 SSR 실행 (서버 부하 분산) |
| Incremental Static Regeneration (ISR) | 일정 주기로만 다시 렌더링 |
즉, 요즘 SSR은 단순한 서버 렌더링이 아니라
“서버에서 렌더링은 하되, 부하를 최소화하는 전략적 SSR”입니다.
🧠 요약 정리
| 이유 | 설명 |
| 1. 빠른 첫 화면 (UX) | 브라우저가 JS 실행 전에도 바로 화면 표시 가능 |
| 2. SEO / SNS 대응 | HTML 완성본으로 검색엔진·미리보기 대응 |
| 3. 보안 / 인증 제어 | 서버가 사용자 인증을 직접 검증 가능 |
| 4. 부하는 있지만 관리 가능 | 캐싱·SSG·Edge로 분산 처리 |
✅ 결론 한 줄로 정리하자면:
서버가 코드를 해석해서 HTML을 만들어 보내는 이유는
“사용자에게 빠르고 완전한 첫 화면을 보여주기 위해서”이며,
“검색엔진과 보안 측면에서도 훨씬 유리하기 때문”입니다.
'Sprint_FESI11 > Project' 카테고리의 다른 글
| 소켓(Socket) vs HTTP Client (0) | 2025.10.16 |
|---|---|
| CSR vs SSR vs SSG vs Edge (0) | 2025.10.16 |
| JSP vs ASP vs SSR (0) | 2025.10.16 |
| 토큰 기반 렌더링 흐름 (0) | 2025.10.16 |
| 서버는 렌더링만 하는데, 왜 토큰을 가지고 있지? (0) | 2025.10.16 |