# [[Time to Interactive (TTI)|Time to Interactive (TTI]] ## ๐Ÿ“Œ Brief Summary Time to Interactive (TTI)๋Š” ์‚ฌ์šฉ์ž์˜ ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ์š”์ฒญ(DNS ์กฐํšŒ ๋ฐ TCP ์—ฐ๊ฒฐ) ์‹œ์ ๋ถ€ํ„ฐ ์›น ํŽ˜์ด์ง€๊ฐ€ 50ms ์ด๋‚ด์— ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ์ž‘์šฉ์— ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ์„ฑ๋Šฅ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค [1]. ์‹œ๊ฐ์ ์ธ ์ฝ˜ํ…์ธ ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ํ•„์š”ํ•œ [[JavaScript|JavaScript]]๊ฐ€ ๋ชจ๋‘ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜์–ด ๋ฒ„ํŠผ ํด๋ฆญ ๋“ฑ์˜ ์ž…๋ ฅ์— ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1, 2]. ํŠนํžˆ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ํ™˜๊ฒฝ์—์„œ๋Š” ํ™”๋ฉด์ด ๋จผ์ € ๋ณด์ด์ง€๋งŒ JavaScript๊ฐ€ ์—ฐ๊ฒฐ([[Hydration|Hydration]])๋  ๋•Œ๊นŒ์ง€ ์ƒํ˜ธ์ž‘์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ง€์—ฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ TTI ์ตœ์ ํ™”๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค [2, 3]. ## ๐Ÿ“– Core Content * **TTI์˜ ์ •์˜์™€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ์—ญํ• :** TTI๋Š” ํŽ˜์ด์ง€์˜ [[First Contentful Paint (FCP)|First Contentful Paint (FCP]] ์ดํ›„, ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ(์Šคํฌ๋กค, ํ„ฐ์น˜ ๋“ฑ)์— 50ms ์ด๋‚ด๋กœ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ์‹œ์ ์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค [1]. ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ JavaScript๋ฅผ ํŒŒ์‹ฑ, ์ปดํŒŒ์ผ, ์‹คํ–‰ํ•˜๋А๋ผ ์ ์œ ๋˜์–ด ์žˆ๋‹ค๋ฉด, ํŽ˜์ด์ง€๋Š” ์‹œ๊ฐ์ ์œผ๋กœ ์™„์„ฑ๋˜์—ˆ๋”๋ผ๋„ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค [1, 4]. * **SSR(Server-Side Rendering)๊ณผ Hydration์— ๋”ฐ๋ฅธ TTI ์ง€์—ฐ:** SSR์€ ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง๋œ HTML์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ดˆ๊ธฐ ์ฝ˜ํ…์ธ  ํ‘œ์‹œ(FCP)๊ฐ€ ๋น ๋ฅด์ง€๋งŒ, TTI ์ธก๋ฉด์—์„œ๋Š” ๋ถˆ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2, 3, 5]. ํ™”๋ฉด์˜ ์š”์†Œ๊ฐ€ ํด๋ฆญ ๊ฐ€๋Šฅํ•ด ๋ณด์ด๋”๋ผ๋„, JavaScript ๋ฒˆ๋“ค์ด ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ์ •์  HTML์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ์™€ ์ƒํƒœ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” 'Hydration' ๊ณผ์ •์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€๋Š” ๋ฐ˜์‘ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [2, 3, 6]. JavaScript ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ํฌ๊ฑฐ๋‚˜ ๊ธฐ๊ธฐ ์„ฑ๋Šฅ์ด ๋‚ฎ์„ ๊ฒฝ์šฐ ์ด ๊ณผ์ •์— 2~5์ดˆ๊ฐ€ ์†Œ์š”๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ต๋‹ตํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2, 5-7]. * **CSR(Client-Side Rendering)๊ณผ์˜ ๋น„๊ต:** CSR์˜ ๊ฒฝ์šฐ, ์ดˆ๊ธฐ์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋นˆ HTML ์…ธ์„ ๋ฐ›๊ณ  JavaScript๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ดˆ๊ธฐ ํ™”๋ฉด ํ‘œ์‹œ๋Š” ๋А๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [8, 9]. ํ•˜์ง€๋งŒ JavaScript ๋กœ๋“œ ํ›„ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ Œ๋”๋ง์ด ์™„๋ฃŒ๋˜๋ฉด ์ฆ‰๊ฐ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง€๋ฏ€๋กœ ์ดˆ๊ธฐ ๋กœ๋“œ ์ดํ›„์˜ TTI๋Š” ํ–ฅ์ƒ๋˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค [10, 11]. * **์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ด€์ :** TTI๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ์ ์œ  ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [4]. ์ด๋ฅผ ์œ„ํ•ด ์ ์ง„์ /์„ ํƒ์  Hydration ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ ์ค‘์š”ํ•œ ์ƒํ˜ธ์ž‘์šฉ ์š”์†Œ๋ฅผ ๋จผ์ € ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ [12, 13], [[React Server Components|React Server Components]](RSC)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก๋˜๋Š” JavaScript ๋ฒˆ๋“ค ํฌ๊ธฐ ์ž์ฒด๋ฅผ ์ค„์ž„์œผ๋กœ์จ Hydration์— ์†Œ์š”๋˜๋Š” ๋น„์šฉ์„ ์›์ฒœ์ ์œผ๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [14, 15]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Hydration|Hydration]], Server-Side Rendering (SSR), Client-Side Rendering (CSR), [[First Contentful Paint (FCP)|First Contentful Paint (FCP]], ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ([[Main Thread|Main Thread]] - **Projects/Contexts:** [[แ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช แ„€แ…ขแ„‚แ…งแ†ท แ„‰แ…ฅแ†ฏแ„†แ…งแ†ผ แ„Œแ…กแ„…แ…ญ|๋ Œ๋”๋ง ์ตœ์ ํ™” ๊ฐœ๋… ์„ค๋ช… ์ž๋ฃŒ]], [[Reactแ„€แ…ก แ„ˆแ…กแ„…แ…ณแ†ซ แ„‹แ…ตแ„‹แ…ฒ|React๊ฐ€ ๋น ๋ฅธ ์ด์œ ]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด SSR๊ณผ CSR์€ ๋šœ๋ ทํ•œ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. SSR์€ FCP(์ดˆ๊ธฐ ์ฝ˜ํ…์ธ  ํ‘œ์‹œ)๊ฐ€ ๋น ๋ฅด์ง€๋งŒ Hydration ์˜ค๋ฒ„ํ—ค๋“œ๋กœ ์ธํ•ด TTI๊ฐ€ ๋А๋ ค์ง€๋Š” ๋ฐ˜๋ฉด, CSR์€ ์ดˆ๊ธฐ ๋กœ๋“œ ์†๋„๋Š” ๋А๋ฆฌ์ง€๋งŒ ๋กœ๋“œ ์ดํ›„์˜ ์ƒํ˜ธ์ž‘์šฉ(TTI ํ–ฅ์ƒ)์€ ๋” ๋ถ€๋“œ๋Ÿฝ๊ณ  ์ฆ‰๊ฐ์ ์ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค [11, 16-18]. --- *Last updated: 2026-04-25*