C
네트워크/인프라/Lesson 09

인프라 — CDN · 로드 밸런서 · 프록시 · 브라우저 렌더링

45분·theory

인프라 — CDN · 로드 밸런서 · 프록시 · 브라우저 렌더링

🎯 이 lesson 을 읽고 나면

이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.

  • ✅ Load Balancer L4 vs L7 + 알고리즘 (Round Robin·Least Conn)
  • ✅ CDN (Cloudflare · CloudFront) 캐시 전략
  • ✅ Reverse Proxy (Nginx) 의 역할

학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.

CDN — 사용자 가까운 곳에 캐시

CDN (Content Delivery Network)지리적으로 분산된 캐시 서버 네트워크.

동작:
1. 사용자가 image.jpg 요청
2. DNS 가 가장 가까운 CDN edge 로 라우팅
3. Edge 캐시 hit ? → 즉시 응답
4. miss → origin 서버에 요청 → 받아서 캐시 + 사용자에게

왜 빠른가:

  • 지리적 근접 (서울 사용자 → 도쿄 edge 가 50ms vs 미국 origin 200ms)
  • 안 막힌 backbone 사용 (peering·private connection)
  • 캐시 hit 율 ~95% (잘 설계 시)

대표 CDN:

서비스강점
Cloudflare무료 plan·DDoS 방어·Workers (엣지 컴퓨팅)
AWS CloudFrontAWS 통합·Lambda@Edge
Akamai엔터프라이즈·금융·미디어
Fastly빠른 cache invalidation·VCL
Vercel·NetlifyJamstack 통합

캐시 정책 (HTTP 헤더):

  • Cache-Control: public, max-age=31536000, immutable — 1년·변경 X
  • Cache-Control: private, no-cache — 항상 origin 검증
  • Cache-Control: no-store — 절대 캐시 X
  • ETag: "abc123" — 콘텐츠 해시 (변경 감지)

Cache Invalidation (캐시 무효화):

  • 새 버전 배포 시 URL 변경 (예: app.v2.js·app.HASH.js)
  • 또는 purge API 호출 (Cloudflare·CloudFront)
  • 잘못된 invalidation = "캐시 stale" 버그

현대 트렌드 — Edge Computing:

  • Cloudflare Workers·Vercel Edge Functions·AWS Lambda@Edge
  • 캐시 + 연산 도 엣지에서 (개인화·인증)
  • 응답 시간 ↓·서버 부하 ↓

로드 밸런서 + 알고리즘

Load Balancer — 트래픽을 여러 서버에 분배:

계층별:

  • L4 (Transport) — TCP/UDP 수준. 빠름. AWS NLB
  • L7 (Application) — HTTP 수준. URL·헤더 기반 라우팅. AWS ALB·Nginx

분배 알고리즘:

알고리즘의미
Round Robin순서대로 1 → 2 → 3 → 1 → ...
Weighted Round Robin가중치 (성능 좋은 서버에 더)
Least Connection현재 연결 가장 적은 서버
IP Hashhash(client_ip) % N — 같은 사용자 = 같은 서버 (sticky)
Least Response Time응답 시간 가장 빠른 서버
Random무작위 (간단)

헬스 체크:

  • LB 가 주기적으로 /health 호출
  • 실패 N 회 → unhealthy → 트래픽 제외
  • 복구 시 다시 포함
  • 간격: 5-30초, threshold: 2-5

Sticky Session:

  • 같은 사용자는 같은 서버로
  • 세션 메모리 저장 시 필요
  • 단점: 한 서버 다운 → 그 사용자들 모두 끊김
  • 대안: 공유 세션 저장소 (Redis)

대표 LB:

종류
클라우드AWS ALB/NLB · GCP LB · Azure LB
소프트웨어Nginx · HAProxy · Envoy · Traefik
DNS 기반Route 53 (Geo·Latency·Failover)
L4 하드웨어F5 · A10 (엔터프라이즈)

HTTP/2·gRPC 부하분산 함정:

  • 한 TCP 연결로 다중 스트림 → L4 LB 가 균등 분배 못 함
  • 해결: L7 LB (Envoy·Nginx) 또는 클라이언트 LB (gRPC 내장)

브라우저 렌더링 + 성능

Critical Rendering Path (브라우저가 HTML → 화면까지):

code
HTML 받음
  ↓ Parse
DOM 트리
  ↓
CSS 받음 → CSSOM 트리
  ↓
Render Tree (DOM + CSSOM)
  ↓
Layout (위치·크기 계산)
  ↓
Paint (픽셀 색칠)
  ↓
Composite (레이어 합성 → 화면)

JS 로드 영향:

  • 기본 <script>parser 차단 (다운로드·실행 끝까지 멈춤)
  • <script defer> — 다운로드는 병행, DOM 준비 후 실행
  • <script async> — 다운로드는 병행, 끝나는 즉시 실행 (순서 X)
  • <script type="module"> — defer 와 유사

Web Vitals 3 가지 (Google):

지표의미목표
LCP (Largest Contentful Paint)큰 콘텐츠 렌더≤ 2.5s
INP (Interaction to Next Paint)사용자 입력 반응≤ 200ms
CLS (Cumulative Layout Shift)레이아웃 흔들림≤ 0.1

최적화 기법:

  • Image lazy loading: <img loading="lazy">
  • Code splitting: route 별 JS 청크 분리
  • Preload·Preconnect: 중요 자원 미리 시작
  • WebP·AVIF: 이미지 압축 (JPEG 보다 30-50% 작음)
  • Critical CSS: 첫 화면용 CSS 인라인
  • CDN: 정적 자원 가까운 곳에서
  • HTTP/2·3: 다중 요청 + 헤더 압축

측정 도구:

  • Lighthouse (Chrome DevTools 내장)
  • WebPageTest (다양한 지역·디바이스)
  • PageSpeed Insights (Google)
  • Real User Monitoring (Datadog·Sentry)

🤖 AI 에게 이렇게 요청해보세요

이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.

  • "이 정적 파일에 Cloudflare CDN + 1년 캐시 헤더 적용해줘"
  • "Nginx load balancing (least_conn) 설정 만들어줘"

왜 이게 토큰을 줄이나

개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.

다음 추천: 운영체제
인프라 — CDN·로드밸런서·프록시·렌더링 - 네트워크