์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”

2026. 1. 26. 03:22ยท๐ŸŒ WEB
728x90

1. ์›น ์‚ฌ์ดํŠธ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•

  • ๋ฒ ์ŠคํŠธ : ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํ˜„์‹ค์ ์ธ ์„ ํƒ : ๋œ ์ผํ•œ๋‹ค.

2. ์ตœ์ ํ™” ์ž‘์—… ์ง„ํ–‰ ํ๋ฆ„

  • ์ง„๋‹จ > ๊ฐœ์„  > ํ…Œ์ŠคํŠธ > ์ง„๋‹จ

1. ์ง„๋‹จ

  • ์ฒซ ํŽ˜์ด์ง€ ์™œ ์ด๋ ‡๊ฒŒ ๋А๋ฆผ?
    • Core Web Vitals
      • First Contentful Paint
      • Lagest Contentful Paint
      • Cumulative Layout Shift
  • ์™œ ์ด๋ ‡๊ฒŒ ๋Šฆ๊ฒŒ ๋ฐ˜์‘ํ•จ?
    • Core Web Vitals
      • Interaction to Next Paint
  • ์™œ ์ด๋ ‡๊ฒŒ ๋Š๊น€?
    • ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์ž‘
  • ํฌ๋กฌ ๊ฐœ๋ฐœ์ž๋„๊ตฌ - lighthouse
  • ํฌ๋กฌ ๊ฐœ๋ฐœ์ž๋„๊ตฌ - performance, memory(๋ˆ„์ˆ˜๋Š” ์—†๋‚˜?)

 

2.1 ๋ฌธ์ œ ํ•ด๊ฒฐ - ๋กœ๋”ฉ ์ง€์—ฐ

  • HTML Parsing ๋ฐฉํ•ดํ•˜์ง€ ์•Š๊ธฐ
    • script ์œ„์น˜ ์กฐ์ • (body ๋์œผ๋กœ ์ด๋™)
    • defer/async ์†์„ฑ ํ™œ์šฉ
  • Build๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ์ตœ์ ํ™”
    • ์ฝ”๋“œ ์••์ถ• (minification) ๋ฐ ๋ฒˆ๋“ค๋ง
    • ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… (Code Splitting)
    • Vite, ESBuild์™€ ๊ฐ™์€ ์ตœ์‹  ๋นŒ๋“œ ๋„๊ตฌ ํ™œ์šฉ
  • ํด๋ผ์ด์–ธํŠธ ๋™์  ๋ Œ๋”๋ง ํ”ผํ•˜๊ธฐ
    • Server-Side Rendering (SSR)
    • Pre-Rendering
      • ์ •์ ์ธ ์‚ฌ์ดํŠธ์˜ (๋ธ”๋กœ๊ทธ ๋“ฑ) ์‚ฌ์ „ ๋ Œ๋”๋ง(๋ฏธ๋ฆฌ HTML๋งŒ๋“ค์–ด๋‘๊ธฐ)
      • ์˜ˆ: Vite ๊ธฐ๋ฐ˜์˜ vite-plugin-ssr
      • NEXT.JS์˜ SSG (Static Site Generation)
  • Lazy Loading
    • Lazy Component Loading (Dynamic JS Loading)
    • Image Lazy Loading (loading="lazy")
      • ํ•˜์ง€๋งŒ LCP์˜ํ–ฅ์„ ์ฃผ๋Š” ์ด๋ฏธ์ง€์—๋Š” lazy ์ ์šฉ์€ ์•ˆ๋จ.
    • IntersectionObserver API ํ™œ์šฉ
  • HTTP Header์˜ ์†์„ฑ ํ™œ์šฉ
    • Cache-Control (max-age, no-cache, no-store)
    • Expires (์บ์‹œ ๋งŒ๋ฃŒ ์‹œ๊ฐ„)
    • Last-Modified / If-Modified-Since (๋งˆ์ง€๋ง‰ ๊ฐฑ์‹  ์‹œ๊ฐ„)
    • ETag ํ™œ์šฉ: ๋ฆฌ์†Œ์Šค ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ์„œ๋ฒ„์—์„œ ํŒ๋‹จ
      • ์„œ๋ฒ„๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•  ๋•Œ ETag ๊ฐ’์„ ์ƒ์„ฑํ•ด ์‘๋‹ต ํ—ค๋”์— ํฌํ•จ (ETag: "abc123")
      • ๋ธŒ๋ผ์šฐ์ €๋Š” ์ดํ›„ ์š”์ฒญ์—์„œ If-None-Match ํ—ค๋”์— ETag ๊ฐ’์„ ํฌํ•จ (If-None-Match: "abc123")
      • ์„œ๋ฒ„๋Š” ETag๋ฅผ ๋น„๊ต (๊ฐ’์ด ๊ฐ™์œผ๋ฉด ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ 304 Not Modified๋ฅผ ๋ฐ˜ํ™˜)
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
    • WebP, AVIF ํฌ๋งท์œผ๋กœ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜
    • ๊ธฐ์กด ํฐํŠธ ํŒŒ์ผ์„ WOFF2๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋กœ๋”ฉ ์†๋„ ๊ฐœ์„ 
      • WOFF2 ํฐํŠธ ํ™œ์šฉ: WOFF๋ณด๋‹ค ๋” ์ž‘์€ ํฌ๊ธฐ๋กœ ์••์ถ• ๊ฐ€๋Šฅ

2.2 ๋ฌธ์ œ ํ•ด๊ฒฐ - ๋ฐ˜์‘ ์ง€์—ฐ

  • ๋ฉ”์ธ ์Šค๋ ˆ๋“œ Blocking ๋ฐฉ์ง€
    • DOM ์ˆ˜์ • ์ตœ์†Œํ™” (๋ถˆํ•„์š”ํ•œ Layout๊ณผ Paint ์ œ๊ฑฐ ๋…ธ๋ ฅ)
    • Layout ์ค„์ด๊ธฐ
      • Composite ๋‹จ๊ณ„์—์„œ ๋™์ž‘ํ•˜๋„๋ก GPU ๊ฐ€์† ์†์„ฑ ์‚ฌ์šฉ
      • ๋…๋ฆฝ์ ์ธ ๋ ˆ์ด์–ด ํ™œ์šฉ(transform, opacity)
      • Video/Canvas ์š”์†Œ ํ™œ์šฉ
      • transform/opacity ๊ธฐ๋ฐ˜ CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ (Keyframes, Transition)
  • ์ค‘๋ณต ๊ณ„์‚ฐ ์ค„์ด๊ธฐ
    • Memoization ๊ธฐ๋ฒ•
  • ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์บ์‹œ ์ „๋žต
    • Service Worker ๋ฐ PWA๋ฅผ ํ™œ์šฉํ•œ ์บ์‹ฑ
      • ์ฐธ๊ณ 
    • Cache Header ์ „๋žต
  • Prefetch ๋ฐ Preload ํ™œ์šฉ
    • Preload ์‚ฌ์šฉ :
    • ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ๊ณง๋ฐ”๋กœ ์“ฐ์ผ ํ•ต์‹ฌ ๋ฆฌ์†Œ์Šค(ํฐํŠธ, ๋ฉ”์ธ CSS/JS)๋ฅผ ์ตœ์ƒ์œ„ ์šฐ์„ ์ˆœ์œ„๋กœ ๋‹ค์šด๋กœ๋“œ
    <link rel="preload" href="/styles/main.css" as="style">
    <link rel="preload" href="/scripts/main.js" as="script">
    
    • Prefetch ์‚ฌ์šฉ :
    • ๋‹ค์Œ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ๋  ๋ฆฌ์†Œ์Šค๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•œ๊ฐ€ํ•  ๋•Œ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๋ฏธ๋ฆฌ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์บ์‹œ์— ์ €์žฅ
    <link rel="prefetch" href="/images/background.jpg">
    
  • Speculation Rules API - ๊ฐœ์„ ๋œ preloading ๊ธฐ๋ฒ•
    • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฏธ๋ฆฌ ์‹คํ–‰(Prerender)ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ตœ์‹  ํ‘œ์ค€ API
    • JSON ํ˜•ํƒœ์˜ ๊ทœ์น™์„ ํ†ตํ•ด ์–ด๋–ค ๋งํฌ๋ฅผ ์–ด๋–ค ๊ฐ•๋„๋กœ ์ค€๋น„ํ• ์ง€ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ด
<script type="speculationrules">
{
  "prerender": [
    {
      "source": "list",
      "urls": ["/main", "/product/detail"],
      "eagerness": "moderate" 
    }
  ],
  "prefetch": [
    {
      "where": { "href_matches": "/articles/*" },
      "eagerness": "conservative"
    }
  ]
}
</script>
  • (์ฐธ๊ณ ) ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” rel="prefetch" ๋ฐฉ์‹์œผ๋กœ fallback

 

 

์„ฑ๋Šฅ ๊ด€์ ์œผ๋กœ ๋ณด๋Š” HTTP์˜ ๋ฐœ์ „

HTTP ๋ ˆ๋ฒจ์—์„œ์˜ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•๋„ ์•Œ์•„๋‘๋ฉด ์ข‹์Œ.

1. HTTP/1.1 (1997๋…„)

  • TLS ์•”ํ˜ธํ™” ํ†ต์‹ 
  • Keep-Alive ๊ธฐ๋ณธ ์ œ๊ณต (TCP ์—ฐ๊ฒฐ ์žฌ์‚ฌ์šฉ)
  • XMLHttpRequest

2. HTTP/1.1์˜ ํ•œ๊ณ„

  • ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„ ์—†์ด ๋‹ค์šด๋กœ๋“œ
  • ํ—ค๋” ํฌ๊ธฐ ์ฆ๊ฐ€
  • ๋™์‹œ์„ฑ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ฐ๊ฒฐ(connection) ํ•„์š”

3. HTTP/2.0 (2015๋…„)

  • HTTP/2.0์˜ ์ŠคํŠธ๋ฆผ-ํ”„๋ ˆ์ž„ ๊ด€๊ณ„
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ์„ ๋™์‹œ์— ์ „์†ก ๊ฐ€๋Šฅ
    • ๊ฐ ์ŠคํŠธ๋ฆผ์€ ๋‹ค์ˆ˜์˜ ํ”„๋ ˆ์ž„์œผ๋กœ ๊ตฌ์„ฑ
      • ์˜ˆ:
        • ์ŠคํŠธ๋ฆผ 1 → ํ”„๋ ˆ์ž„ A, B, C
        • ์ŠคํŠธ๋ฆผ 2 → ํ”„๋ ˆ์ž„ X, Y, Z
    • ํ”„๋ ˆ์ž„์€ ๋…๋ฆฝ์ ์œผ๋กœ ์ „์†ก๋˜๋ฉฐ ๊ณ ์œ  ID๋ฅผ ๊ฐ€์ง
    • ์ŠคํŠธ๋ฆผ๊ณผ ํ”„๋ ˆ์ž„์˜ ๋…๋ฆฝ์  ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ณ‘๋ ฌ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ
  • ๊ธฐ๋Šฅ ๊ฐœ์„ 
    • ๋‹ค์ค‘ ์š”์ฒญ/์‘๋‹ต ์ฒ˜๋ฆฌ (Multiplexing)
    • ํ—ค๋” ํ•„๋“œ ์••์ถ• (HPACK)
    • Server Push ์ง€์› (์‚ฌ์‹ค์ƒ deprecated)

4. HTTP/3 (2020๋…„ ~ ํ˜„์žฌ ํ‘œ์ค€)

HTTP/3๋Š” ๋‚ก์€ ์—”์ง„์ธ TCP๋ฅผ ๋ฒ„๋ฆฌ๊ณ , QUIC(ํ€ต) ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ์—”์ง„์„ ์žฅ์ฐฉ

  • QUIC ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜ (UDP ํ™œ์šฉ)
    • ์—ฐ๊ฒฐ ์ง€์—ฐ ์ตœ์†Œํ™” (1-RTT / 0-RTT)
      • 1-RTT(Round-Trip Time):์ฒ˜์Œ ์ ‘์†ํ•  ๋•Œ ์ธ์‚ฌ์™€ ์•”ํ˜ธํ™” ์„ค์ •์„ ํ•œ ๋ฒˆ์— ๋๋ƒ„.
        (TCP+TLS ๋Œ€๋น„ ์ ˆ๋ฐ˜ ์‹œ๊ฐ„)
      • 0-RTT: ์žฌ๋ฐฉ๋ฌธ ์‹œ์—๋Š” ์ธ์‚ฌ์กฐ์ฐจ ์ƒ๋žตํ•˜๊ณ  ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ƒ„
    • TCP HOLB(Head-Of-Line Blocking) ๋ฌธ์ œ ํ•ด๊ฒฐ
      • ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋…๋ฆฝ์ ์ธ ํŒŒ์ดํ”„(์ŠคํŠธ๋ฆผ)๋กœ ๋ณด๋‚ด์„œ ํ•œ ํŒŒ์ดํ”„์—์„œ ์‚ฌ๊ณ (ํŒจํ‚ท ์œ ์‹ค)๊ฐ€ ๋‚˜๋„ ๋‹ค๋ฅธ ํŒŒ์ดํ”„๋Š” ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ์ง„ํ–‰
  • ๋„คํŠธ์›Œํฌ ์ „ํ™˜ ์ตœ์ ํ™” (Connection ID)
    • ๊ณผ๊ฑฐ์—๋Š” Wi-Fi์—์„œ LTE๋กœ ๋ฐ”๋€Œ๋ฉด IP๊ฐ€ ๋ณ€ํ•ด ์—ฐ๊ฒฐ์ด ๋Š๊น€.
    • HTTP/3๋Š” ๊ณ ์œ ํ•œ ID๋ฅผ ๋ถ€์—ฌํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋™ ์ค‘์—๋„ ๋Š๊น€ ์—†๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ์—ฐ๊ฒฐ์„ ์œ ์ง€
  • ๋ณด์•ˆ ๋‚ด์žฅ (TLS 1.3 ๊ธฐ๋ณธ ํƒ‘์žฌ)
    • ์ตœ์‹  ์•”ํ˜ธํ™” ํ‘œ์ค€์ธ TLS 1.3์ด ์—”์ง„ ๋‚ด๋ถ€์— ์ผ์ฒดํ˜•์œผ๋กœ ์„ค๊ณ„๋˜์–ด ๋ณด์•ˆ ์ˆ˜๋ฆฝ ๋‹จ๊ณ„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ์•ˆ์ „

'๐ŸŒ WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

RAG ์—ฐ๋™ ์›น ์•ฑ  (0) 2026.01.23
์›น ์‚ฌ์ดํŠธ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•  (0) 2026.01.19
HTTP Multipart/form-data ์ง์ ‘ ํŒŒ์„œ ๋งŒ๋“ค๋ฉฐ ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ  (0) 2025.10.01
Node.js๋กœ ๊ณ ์„ฑ๋Šฅ ์›น์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ: Cluster์™€ Worker Threads  (0) 2025.09.28
HTTP ํŒจํ‚ท ๋ถ„์„ํ•˜๊ธฐ  (0) 2025.09.18
'๐ŸŒ WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • RAG ์—ฐ๋™ ์›น ์•ฑ
  • ์›น ์‚ฌ์ดํŠธ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•
  • HTTP Multipart/form-data ์ง์ ‘ ํŒŒ์„œ ๋งŒ๋“ค๋ฉฐ ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
  • Node.js๋กœ ๊ณ ์„ฑ๋Šฅ ์›น์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ: Cluster์™€ Worker Threads
์—ฐ์žŽ(lotus leaf)
์—ฐ์žŽ(lotus leaf)
  • ์—ฐ์žŽ(lotus leaf)
    lotus' s develog ๐Ÿƒ
    ์—ฐ์žŽ(lotus leaf)
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • โœ๏ธ ๊ฐœ๋ฐœํšŒ๊ณ ๋ก (5)
      • ๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (3)
      • ๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE) (19)
        • HTML (0)
        • CSS (0)
        • Javascript (0)
        • React (0)
        • Next.js (0)
        • webpack & babel (0)
      • ๐Ÿ’ป ๋ฐฑ์—”๋“œ(BE) (2)
        • Nest.js (0)
        • Express.js (0)
        • MySQL (1)
      • โš™๏ธ ์ธํ”„๋ผ(Devops) (2)
      • ๐Ÿค– AI (1)
      • ๐ŸŒ WEB (8)
      • ๐Ÿ’ป CS (16)
        • ์ž๋ฃŒ๊ตฌ์กฐ (0)
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
        • ์šด์˜์ฒด์ œ (0)
        • ์ธ๊ณต์ง€๋Šฅ (8)
        • ์›น ๋ณด์•ˆ (1)
        • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… (6)
      • ๐Ÿ–‹๏ธ DevLog (1)
      • ๐Ÿฆพ ๋กœ๋ณดํ‹ฑ์Šค (4)
      • ๐Ÿ“— ๋„ค์ด๋ฒ„๋ถ€์ŠคํŠธ์บ ํ”„ ์›น ๋ชจ๋ฐ”์ผ (0)
      • ๐ŸŽฎ Unity(C#) (10)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (4)
        • C (4)
        • C++ (0)
        • Java (0)
        • Python (0)
      • MSA (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    turtlebot
    auto-scaling
    AWS
    c์–ธ์–ด
    gaussian rbf svm
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    advaned detail
    c++
    C#
    ํŒŒ์ผํŠธ๋ฆฌ
    ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต #๋„์ „ํ•™๊ธฐ์ œ
    soft margin svm
    ์ŠคํŒธ๋ถ„๋ฅ˜๊ธฐ
    ์ฝ”๋”ํŒจ๋“œ
    ros workspace
    ๋ฆฌ์•กํŠธ
    client-streaming
    C
    ์ŠคํŒธ๋ฉ”์ผ๋ถ„๋ฅ˜๊ธฐ
    nav2
    ๋ฐฑ์ค€
    isaac automator
    ์กฐํ•ฉ
    Devops #๋Œ€๊ทœ๋ชจํŠธ๋ž˜ํ”ฝ์ฒ˜๋ฆฌ
    ros bridge
    deploy-aws
    hard margin svm
    next.js12
    ๊ธฐ์ดˆ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ˆœ์—ด
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
์—ฐ์žŽ(lotus leaf)
์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”