# [[Kiwi.com Migration]] ## ๐Ÿ“Œ Brief Summary Kiwi.com Migration์€ ์›น์‚ฌ์ดํŠธ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์˜ `styled-components`์—์„œ `Tailwind CSS`๋กœ ์Šคํƒ€์ผ๋ง ๋ฐฉ์‹์„ ์ „ํ™˜ํ•œ ๋Œ€๊ทœ๋ชจ ๋ฆฌํŒฉํ† ๋ง ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค [1, 2]. ๊ธด ์‹คํ–‰ ์‹œ๊ฐ„(long tasks)์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ `styled-components`๊ฐ€ ์ฃผ์š” ๋ณ‘๋ชฉ ํ˜„์ƒ์ž„์„ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ์ด ์ „ํ™˜์˜ ํ•ต์‹ฌ ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [1]. ์ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ์ฒซ ์ž…๋ ฅ ์ง€์—ฐ(FID) ๋ฐ ์ƒํ˜ธ์ž‘์šฉ ์†๋„(INP)์™€ ๊ฐ™์€ ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ(Core Web Vitals) ์ง€ํ‘œ๊ฐ€ ํš๊ธฐ์ ์œผ๋กœ ๊ฐœ์„ ๋˜์—ˆ์œผ๋ฉฐ, ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„(Latency)์„ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•˜๋Š” ์„ฑ๊ณผ๋ฅผ ๊ฑฐ๋‘์—ˆ์Šต๋‹ˆ๋‹ค [3-6]. ## ๐Ÿ“– Core Content * **๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐฐ๊ฒฝ ๋ฐ ๋„๊ตฌ ์„ ์ •:** ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Griffel, Linaria ๋“ฑ ์—ฌ๋Ÿฌ ๋Œ€์•ˆ์„ ๊ฒ€ํ† ํ–ˆ์œผ๋ฉฐ, ๋ฌธ์„œ ํ’ˆ์งˆ, ์„ฑ๋Šฅ, ์ปค๋ฎค๋‹ˆํ‹ฐ ํฌ๊ธฐ, SSR ์ง€์› ์—ฌ๋ถ€ ๋“ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜์—ฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์šฐ์„ (utility-first) ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋Š” Tailwind CSS๊ฐ€ ์ตœ์ข… ์„ ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค [7, 8]. ๋„์ž… ์ „ ์‹ค์‹œํ•œ Lighthouse ์˜ค๋”ง์—์„œ ํŠน์ • ์ปดํฌ๋„ŒํŠธ์˜ ๋กœ๋“œ ์†๋„๊ฐ€ ์•ฝ 26% ๋นจ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค [9]. * **์ดˆ๊ธฐ ์„ค์ • ๋ฐ ๋ชจ๋…ธ๋ ˆํฌ(๋‹ค์ค‘ ํŒ€) ๊ณผ์ œ:** Kiwi.com์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋Š” ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ํŒ€์ด ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค [10]. ์„œ๋กœ์˜ CSS ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ๋ถ€ํ’€๋ฆฌ์ง€ ์•Š๊ธฐ ์œ„ํ•ด PostCSS๋ฅผ ํ™œ์šฉํ•ด ๋‘ ๊ฐœ์˜ ๋ณ„๋„ Tailwind ๊ตฌ์„ฑ์„ ์„ธํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค [10]. ์ด๋Š” VS Code์˜ Tailwind CSS IntelliSense ๋ฐ Prettier ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์— ์–ด๋ ค์›€์„ ์ฃผ์—ˆ์ง€๋งŒ, ์‹คํ—˜์  ๊ธฐ๋Šฅ(`tailwindCSS.experimental.configFile`)์„ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค [11, 12]. * **๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰ ๋ฐ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ:** ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ์„ ํ™œ์šฉํ•ด ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€(Internal) CSS์—์„œ ์™ธ๋ถ€(External) CSS ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค [13]. ๊ทธ๋Ÿฌ๋‚˜ Safari iOS 14.5 ๋ฏธ๋งŒ ๋ฒ„์ „์—์„œ flexbox์˜ `gap` ์†์„ฑ์ด๋‚˜ `inset` ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค [14]. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Tailwind์˜ `matchUtilities()` ํ—ฌํผ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `safe-inset`, `safe-space-x`์™€ ๊ฐ™์€ ์ปค์Šคํ…€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐœ๋ฐœํ•ด ์šฐํšŒ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค [14, 15]. * **ํ•ต์‹ฌ ์„ฑ๋Šฅ ๊ฐœ์„  ๊ฒฐ๊ณผ:** * **์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ (Core Web Vitals):** ๋ชจ๋ฐ”์ผ ํ™ˆํŽ˜์ด์ง€ ๊ธฐ์ค€ ์ฒซ ์ž…๋ ฅ ์ง€์—ฐ(FID)์ด 75.9% ๊ฐ์†Œํ–ˆ๊ณ , ๋‹ค์Œ ํŽ˜์ธํŠธ์— ๋Œ€ํ•œ ์ƒํ˜ธ์ž‘์šฉ(INP)์ด 58.4% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค [3, 4]. ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ์—์„œ๋„ ๊ฐ๊ฐ 37.1%, 49.7%์˜ ๊ฐ์†Œ์œจ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค [3, 4]. * **์„œ๋ฒ„ CPU Wall Time (์ง€์—ฐ ์‹œ๊ฐ„):** Tailwind๋Š” ์Šคํƒ€์ผ๋ง์— JavaScript ์‹คํ–‰์„ ์˜์กดํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์„œ๋ฒ„์˜ ์Šคํƒ€์ผ ์—ฐ์‚ฐ์— ๋“œ๋Š” CPU ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด 10.19์ดˆ์—์„œ 4.79์ดˆ๋กœ 52.91% ๋Œ€ํญ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค [5]. * **๋ฐœ๊ฒฌ๋œ ๋‹จ์  ๋ฐ ํ•œ๊ณ„ (Drawbacks):** * ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(`styled-components`์™€ `Tailwind`)๊ฐ€ ๋™์‹œ์— ์กด์žฌํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณผ๋„๊ธฐ์—๋Š” ์ƒ์„ฑ๋œ CSS ์ฝ”๋“œ์˜ ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ์ดˆ๊ธฐ ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค [16]. * ์บก์Аํ™”๋œ `styled-components`์™€ ๋‹ฌ๋ฆฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์š”์†Œ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ์–ด ๋””๋ฒ„๊น…์ด ๋” ๊นŒ๋‹ค๋กœ์›Œ์กŒ์Šต๋‹ˆ๋‹ค [16]. * Tailwind๋Š” ํด๋ž˜์Šค ์„ ์–ธ ์ˆœ์„œ์— ์˜์กดํ•˜๋ฏ€๋กœ, ๋™์ ์ธ ํด๋ž˜์Šค ๊ตฌ์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด `clsx` ๊ฐ™์€ ๋ถ€๊ฐ€์ ์ธ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ณต์žก์„ฑ์ด ๋”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค [6]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Tailwind CSS]], [[Styled Components]], [[CSS-in-JS]], [[Core Web Vitals]] - **Projects/Contexts:** [[Kiwi.com]], [[React Performance Optimization]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด Tailwind CSS ๋„์ž…์€ ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ(Core Web Vitals ๋ฐ ์„œ๋ฒ„ ์ง€์—ฐ ์‹œ๊ฐ„)๊ณผ ๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ–ˆ์ง€๋งŒ [3-6, 17], ๋™์‹œ์— ๋””๋ฒ„๊น… ๋‚œ์ด๋„๋ฅผ ๋†’์ด๊ณ  ํŠน์ • ํด๋ž˜์Šค ๊ตฌ์„ฑ ๋„๊ตฌ(`clsx`)์— ๋Œ€ํ•œ ์˜์กด๋„๋ฅผ ๋†’์ด๋Š” ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(๋‹จ์ )๋ฅผ ์ˆ˜๋ฐ˜ํ•œ๋‹ค๊ณ  ์ง€์ ํ•ฉ๋‹ˆ๋‹ค [6, 16]. --- *Last updated: 2026-04-26*