From 9a9468953198907e61e71b6d215f3693cad13aec Mon Sep 17 00:00:00 2001 From: Antigravity Agent Date: Sun, 26 Apr 2026 20:33:12 +0900 Subject: [PATCH] feat: Wiki-fication of 00_Raw data (Batch #4 - Next.js, Atomic Style, CI/CD, CLS, Rendering) --- 00_Raw/Component Lifecycle.md | 22 +++++++++++++ 00_Raw/Scalable React Architecture.md | 23 +++++++++++++ 00_Raw/Sentry-LogRocket Monitoring.md | 25 ++++++++++++++ 10_Wiki/Topics/AI/ADA-Website-Compliance.md | 32 +++++++++--------- .../AI/AI-Personalization-and-Adaptive-UX.md | 28 ++++++++++++++++ .../AI/Atomic-Styling-and-Design-Systems.md | 29 ++++++++++++++++ .../Topics/AI/CI-CD-Pipeline-Foundations.md | 29 ++++++++++++++++ .../AI/Case-Study-Allbirds-PWA-Redesign.md | 31 +++++++++++++++++ .../Topics/AI/Cumulative-Layout-Shift-CLS.md | 33 +++++++++++++++++++ .../AI/Nextjs-App-Router-Architecture.md | 29 ++++++++++++++++ .../Topics/AI/Uber-Base-Web-Design-System.md | 29 ++++++++++++++++ .../AI/Web-Rendering-Strategies-CSR-vs-SSR.md | 29 ++++++++++++++++ 12 files changed, 324 insertions(+), 15 deletions(-) create mode 100644 00_Raw/Component Lifecycle.md create mode 100644 00_Raw/Scalable React Architecture.md create mode 100644 00_Raw/Sentry-LogRocket Monitoring.md create mode 100644 10_Wiki/Topics/AI/AI-Personalization-and-Adaptive-UX.md create mode 100644 10_Wiki/Topics/AI/Atomic-Styling-and-Design-Systems.md create mode 100644 10_Wiki/Topics/AI/CI-CD-Pipeline-Foundations.md create mode 100644 10_Wiki/Topics/AI/Case-Study-Allbirds-PWA-Redesign.md create mode 100644 10_Wiki/Topics/AI/Cumulative-Layout-Shift-CLS.md create mode 100644 10_Wiki/Topics/AI/Nextjs-App-Router-Architecture.md create mode 100644 10_Wiki/Topics/AI/Uber-Base-Web-Design-System.md create mode 100644 10_Wiki/Topics/AI/Web-Rendering-Strategies-CSR-vs-SSR.md diff --git a/00_Raw/Component Lifecycle.md b/00_Raw/Component Lifecycle.md new file mode 100644 index 00000000..378747a6 --- /dev/null +++ b/00_Raw/Component Lifecycle.md @@ -0,0 +1,22 @@ +# [[Component Lifecycle]] + +## ๐Ÿ“Œ Brief Summary +์ปดํฌ๋„ŒํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด(Component Lifecycle)์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋˜๊ณ , ์—…๋ฐ์ดํŠธ๋˜๋ฉฐ, ๋งˆ์šดํŠธ ํ•ด์ œ(unmount)๋˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ํ•จ์ˆ˜ํ˜• React์—์„œ๋Š” `useEffect`์™€ ๊ฐ™์€ ํ›…(Hook)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ดํ”„์‚ฌ์ดํด์— ๋”ฐ๋ฅธ ๋ถ€์ˆ˜ ํšจ๊ณผ(side effects)๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” `componentDidCatch`์™€ ๊ฐ™์€ ํŠน์ • ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค [1, 2]. ํŠนํžˆ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šดํŠธ ํ•ด์ œ๋  ๋•Œ ์ ์ ˆํ•œ ์ •๋ฆฌ(cleanup) ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [3]. + +## ๐Ÿ“– Core Content +* **ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ `useEffect` ํ›… ํ™œ์šฉ** + ์ตœ์‹  React์˜ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ฃผ๋กœ `useEffect`๋ฅผ ํ†ตํ•ด ๋ผ์ดํ”„์‚ฌ์ดํด๊ณผ ๊ด€๋ จ๋œ ๋ถ€์ˆ˜ ํšจ๊ณผ(side effects)๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋‚˜ ๊ตฌ๋…(subscription)๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ปดํฌ๋„ŒํŠธ ๋งˆ์šดํŠธ ํ•ด์ œ ์‹œ ์ •๋ฆฌ(cleanup)ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค [1]. ์ด๋Ÿฌํ•œ ์ •๋ฆฌ ๋ˆ„๋ฝ์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์ €ํ•˜์™€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak)๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, `useEffect`์—์„œ ํ•ญ์ƒ ์ •๋ฆฌ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ๋  ๋•Œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•ด์ œ๋˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [1, 4]. + +* **ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ์™€ ์—๋Ÿฌ ๊ฒฝ๊ณ„(Error Boundaries)** + ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ๋Š” ๊ณ ์œ ํ•œ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. `static getDerivedStateFromError()` ๋˜๋Š” `componentDidCatch()` ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ์ •์˜ํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋Š” ํ•˜์œ„ ํŠธ๋ฆฌ์˜ ์—๋Ÿฌ๋ฅผ ํฌ์ฐฉํ•˜๋Š” '์—๋Ÿฌ ๊ฒฝ๊ณ„(Error Boundary)' ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [2]. ์—๋Ÿฌ ๊ฒฝ๊ณ„๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ๋ Œ๋”๋ง ์ค‘, ์ƒ์„ฑ์ž ๋‚ด๋ถ€, ๊ทธ๋ฆฌ๊ณ  ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค [5]. ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ `componentDidUpdate`์™€ ๊ฐ™์€ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„, ์ด๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์—๋Ÿฌ ๊ฒฝ๊ณ„๋กœ ์ •์ƒ์ ์œผ๋กœ ์ „ํŒŒ๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๊ฐ€ ๋ฉˆ์ถ”๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [6]. + +* **์ปดํฌ๋„ŒํŠธ ์–ธ๋งˆ์šดํŠธ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์˜ˆ๋ฐฉ** + SPA(Single Page Application) ํ™˜๊ฒฝ์—์„œ ์ปดํฌ๋„ŒํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด ์ฃผ๊ธฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํƒ์ง€ ๋ฐ ์˜ˆ๋ฐฉ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค [7]. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ๋  ๋•Œ ๋“ฑ๋ก๋œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š์œผ๋ฉด ์ฐธ์กฐ๊ฐ€ ๊ณ„์† ์œ ์ง€๋˜์–ด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค [3, 7]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด React์—์„œ๋Š” `useEffect`์˜ ๋ฐ˜ํ™˜ ํ•จ์ˆ˜์—์„œ ์ •๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , Vue์—์„œ๋Š” `beforeUnmount` ๋ผ์ดํ”„์‚ฌ์ดํด ๋‹จ๊ณ„์—์„œ ๊ฐ์‹œ์ž(watchers)์™€ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ํŒŒ๊ดดํ•˜๋Š” ๋“ฑ ๊ฐ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์— ๋งž์ถ˜ ์ ์ ˆํ•œ ์ •๋ฆฌ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [3]. + +## ๐Ÿ”— Knowledge Connections +- **Related Topics:** [[React Hooks]], [[useEffect]], [[Error Boundaries]], [[Memory Leaks]] +- **Projects/Contexts:** [[Single Page Applications (SPAs)]], [[Frontend Performance Optimization]] +- **Contradictions/Notes:** ์ œ๊ณต๋œ ์†Œ์Šค์—์„œ๋Š” ๋ผ์ดํ”„์‚ฌ์ดํด์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ํฌ๊ด„์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ์ฃผ๋กœ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๋งˆ์šดํŠธ ํ•ด์ œ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€(useEffect์˜ cleanup)์™€ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ์—๋Ÿฌ ํ•ธ๋“ค๋ง(Error Boundaries) ๋งฅ๋ฝ์—์„œ ๋ผ์ดํ”„์‚ฌ์ดํด์˜ ํŠน์ • ์ธก๋ฉด์„ ์ง‘์ค‘์ ์œผ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +--- +*Last updated: 2026-04-26* \ No newline at end of file diff --git a/00_Raw/Scalable React Architecture.md b/00_Raw/Scalable React Architecture.md new file mode 100644 index 00000000..aaede80a --- /dev/null +++ b/00_Raw/Scalable React Architecture.md @@ -0,0 +1,23 @@ +# [[Scalable React Architecture]] + +## ๐Ÿ“Œ Brief Summary +ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์•กํŠธ ์•„ํ‚คํ…์ฒ˜(Scalable React Architecture)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณต์žก์„ฑ ์ฆ๊ฐ€, ํŒ€์˜ ํ™•์žฅ, ์žฅ๊ธฐ์ ์ธ ์œ ์ง€๋ณด์ˆ˜ ์š”๊ตฌ๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋ก ํŠธ์—”๋“œ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [1-4]. ๋‹จ์ˆœํ•œ ํŒŒ์ผ ์œ ํ˜•๋ณ„ ํด๋” ๊ตฌ์„ฑ์„ ๋„˜์–ด ๊ธฐ๋Šฅ(Feature) ๋˜๋Š” ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ์ธ ๊ธฐ๋Šฅ ๋ถ„ํ•  ์„ค๊ณ„(Feature-Sliced Design)๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ™”ํ•ด ์™”์Šต๋‹ˆ๋‹ค [5, 6]. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ๋ช…์‹œ์ ์ธ ๊ฒฝ๊ณ„ ์„ค์ •, ๊ฒฐํ•ฉ๋„ ๊ฐ์†Œ, ์ผ๊ด€๋œ ๋ช…๋ช… ๊ทœ์น™ ์ ์šฉ ๋ฐ ์ ์ ˆํ•œ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๋†’์€ ์„ฑ๋Šฅ๊ณผ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค [3, 6-12]. + +## ๐Ÿ“– Core Content + +* **์•„ํ‚คํ…์ฒ˜์˜ ํ•„์š”์„ฑ๊ณผ ์‹คํŒจ ์š”์ธ:** ๋ฆฌ์•กํŠธ ์•ฑ์ด ์ปค์งˆ์ˆ˜๋ก ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด UI ์ปดํฌ๋„ŒํŠธ๋กœ ์ƒˆ์–ด๋‚˜๊ฐ€๊ฑฐ๋‚˜, ์ƒํƒœ ์†Œ์œ ๊ถŒ์ด ๋ถˆ๋ถ„๋ช…ํ•ด์ง€๊ณ , ๊ธฐ๋Šฅ ๊ฐ„ ์•”๋ฌต์ ์ธ ์˜์กด์„ฑ์ด ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๊ฐ€ ํ”ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [2, 13]. ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฒฐํ•ฉ๋„(Coupling)๋ฅผ ๋‚ฎ์ถ”๊ณ  ์‘์ง‘๋„(Cohesion)๋ฅผ ๋†’์ด๋ฉฐ, ๋ชจ๋“ˆ๊ณผ ํผ๋ธ”๋ฆญ API์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ธ์ง€ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์•ˆ์ „ํ•œ ์„ฑ์žฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [3]. +* **ํด๋” ๊ตฌ์กฐ์˜ ์ง„ํ™” (์œ ํ˜• ๊ธฐ๋ฐ˜์—์„œ ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜์œผ๋กœ):** ์ปดํฌ๋„ŒํŠธ, ํ›…, ์„œ๋น„์Šค๋ฅผ ๊ฐ๊ฐ์˜ ํด๋”๋กœ ๋ชจ์•„๋‘๋Š” ์ „ํ†ต์ ์ธ ํŒŒ์ผ ์œ ํ˜• ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋Š” ๋‹จ์ผ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•  ๋•Œ ์—ฌ๋Ÿฌ ํด๋”๋ฅผ ์˜ค๊ฐ€์•ผ ํ•˜๋ฏ€๋กœ ๋Œ€๊ทœ๋ชจ ํ™•์žฅ์— ๋ถˆ๋ฆฌํ•ฉ๋‹ˆ๋‹ค [7, 14-16]. 2025๋…„ ๊ธฐ์ค€์˜ ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋Š” ์—ฐ๊ด€๋œ ์ปดํฌ๋„ŒํŠธ, ํ›…, ๋กœ์ง, ํƒ€์ž…์„ ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ/๊ธฐ๋Šฅ ํด๋” ๋‚ด์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜(Feature-Based) ๊ตฌ์กฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค [6, 16, 17]. +* **๊ธฐ๋Šฅ ๋ถ„ํ•  ์„ค๊ณ„ (Feature-Sliced Design, FSD):** FSD๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ์•„ํ‚คํ…์ฒ˜ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ, ์ฝ”๋“œ๋ฅผ ๊ธฐ์ˆ ์  ์œ ํ˜•์ด ์•„๋‹Œ ๋ฒ”์œ„(Scope)์™€ ์ฑ…์ž„(Responsibility)์— ๋”ฐ๋ผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค [5, 18, 19]. ์•ฑ(app) -> ํŽ˜์ด์ง€(pages) -> ์œ„์ ฏ(widgets) -> ๊ธฐ๋Šฅ(features) -> ์—”ํ‹ฐํ‹ฐ(entities) -> ๊ณต์œ (shared)๋กœ ์ด์–ด์ง€๋Š” ๊ณ„์ธต ๋ชจ๋ธ์„ ๊ฐ€์ง€๋ฉฐ, ์ƒ์œ„ ๊ณ„์ธต์ด ํ•˜์œ„ ๊ณ„์ธต์—๋งŒ ์˜์กดํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ๋ฐฉํ–ฅ ์˜์กด์„ฑ ๊ทœ์น™์„ ์—„๊ฒฉํžˆ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค [8, 9, 18]. ๋˜ํ•œ ๊ฐ ์Šฌ๋ผ์ด์Šค๋Š” ๋‹จ์ผ ์ง„์ž…์ (`index.ts`)๋งŒ์„ ๋…ธ์ถœํ•˜๋Š” 'ํผ๋ธ”๋ฆญ API ๊ทœ์น™'์„ ํ†ตํ•ด ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ์บก์Аํ™”ํ•ฉ๋‹ˆ๋‹ค [20-22]. +* **ํด๋ฆฐ ์ฝ”๋“œ ๋ฐ SOLID ์›์น™ ์ ์šฉ:** ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋ ค๋ฉด SOLID, DRY, KISS, YAGNI์™€ ๊ฐ™์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ์›์น™์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [21, 23-26]. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP)์— ๋”ฐ๋ผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ 300์ค„์„ ๋„˜์–ด๊ฐ€๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์€ ์ปค์Šคํ…€ ํ›…์œผ๋กœ ์ถ”์ถœ(DRY)ํ•˜์—ฌ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€(KISS)ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [23, 25, 27, 28]. +* **์ƒํƒœ ๊ด€๋ฆฌ์™€ ์„ฑ๋Šฅ ์ตœ์ ํ™”:** ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ƒํƒœ๋ฅผ ์ง€์—ญ ์ƒํƒœ, ์ „์—ญ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ, ์„œ๋ฒ„ ์บ์‹œ ์ƒํƒœ ๋“ฑ์œผ๋กœ ์—„๊ฒฉํžˆ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค [29, 30]. ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์ƒํƒœ๋ฅผ ๊ธฐ๋ณธ Context API๋กœ ๊ด€๋ฆฌํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง ํญํ’(Re-render storm)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ƒํƒœ ์Šฌ๋ผ์ด์Šค๋ฅผ ์„ ํƒ(Selector)ํ•  ์ˆ˜ ์žˆ๋Š” Zustand๋‚˜ ๋Œ€๊ทœ๋ชจ ํŒ€์— ์ ํ•ฉํ•œ Redux ๊ฐ™์€ ์ „๋ฌธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค [31-34]. ๋”๋ถˆ์–ด Vite์˜ `manualChunks`๋‚˜ `React.lazy`๋ฅผ ์ด์šฉํ•œ ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…์„ ํ†ตํ•ด ์ดˆ๊ธฐ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ๋„ ํ•ต์‹ฌ ์ „๋žต์ž…๋‹ˆ๋‹ค [35-38]. +* **๋ช…๋ช… ๊ทœ์น™ ๋ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค(Governance):** ํ™•์žฅ๋˜๋Š” ํŒ€ ๋‚ด ํ˜ผ๋ž€์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์—„๊ฒฉํ•œ ํด๋” ๋ฐ ํŒŒ์ผ ๋ช…๋ช… ๊ทœ์น™์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” PascalCase, ์ผ๋ฐ˜ ํŒŒ์ผ/ํด๋”๋Š” OS ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด kebab-case, ํ›…๊ณผ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋Š” camelCase๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [39-44]. ๋˜ํ•œ ESLint, Prettier, Husky ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์•„ํ‚คํ…์ฒ˜ ๊ทœ์น™๊ณผ ํฌ๋งทํŒ…์„ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ž๋™ ๊ฐ•์ œ(Governance)ํ•ฉ๋‹ˆ๋‹ค [45, 46]. + +## ๐Ÿ”— Knowledge Connections +- **Related Topics:** [[Feature-Sliced Design]], [[Clean Code and SOLID Principles]], [[Frontend Folder Structure]], [[React State Management]], [[Frontend Performance Optimization]] +- **Projects/Contexts:** [[Bulletproof React]] (์ƒ์‚ฐ ํ™˜๊ฒฝ์— ์ ํ•ฉํ•œ ๋‹จ์ˆœํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์•กํŠธ ์•„ํ‚คํ…์ฒ˜ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค๋ฅผ ๋ชจ์•„๋‘” ์˜คํ”ˆ์†Œ์Šค ๋ ˆํผ๋Ÿฐ์Šค [10]) +- **Contradictions/Notes:** + - ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ(Feature-Based Structure)๊ฐ€ ํ™•์žฅ์„ฑ ์ธก๋ฉด์—์„œ ๋งค์šฐ ๊ถŒ์žฅ๋˜์ง€๋งŒ, ๋งค์šฐ ์ž‘์€ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋‚˜ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง(Overkill)์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ดˆ๊ธฐ์—๋Š” ํ”Œ๋žซ(Flat) ๊ตฌ์กฐ๊ฐ€ ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [15, 47]. + - Context API๋Š” ์ถ”๊ฐ€ ์˜์กด์„ฑ ์—†์ด ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์–ด ์œ ์šฉํ•˜์ง€๋งŒ, ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ์ €ํ•˜๋˜๋ฏ€๋กœ Zustand๋‚˜ Redux๋กœ ๋Œ€์ฒดํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ช…ํ™•ํ•œ ์ œ์•ฝ ์‚ฌํ•ญ์ด ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๊ฐ•์กฐ๋ฉ๋‹ˆ๋‹ค [31, 33, 34, 48]. + +--- +*Last updated: 2026-04-26* \ No newline at end of file diff --git a/00_Raw/Sentry-LogRocket Monitoring.md b/00_Raw/Sentry-LogRocket Monitoring.md new file mode 100644 index 00000000..8115feef --- /dev/null +++ b/00_Raw/Sentry-LogRocket Monitoring.md @@ -0,0 +1,25 @@ +# [[Sentry/LogRocket Monitoring]] + +## ๐Ÿ“Œ Brief Summary +Sentry์™€ LogRocket์€ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์„ธ์…˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๋””๋ฒ„๊น…์„ ๋•๋Š” ๋Œ€ํ‘œ์ ์ธ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ์ž…๋‹ˆ๋‹ค [1-3]. Sentry๋Š” ์ง€๋Šฅํ˜• ์—๋Ÿฌ ๊ทธ๋ฃนํ™”์™€ ์—๋Ÿฌ ๋ฐœ์ƒ๊นŒ์ง€์˜ ๊ฒฝ๋กœ(Breadcrumb)๋ฅผ ์ถ”์ ํ•˜๋Š” ๋“ฑ ๊ฐœ๋ฐœ์ž ์ค‘์‹ฌ์˜ ์—๋Ÿฌ ๊ด€๋ฆฌ์— ํƒ์›”ํ•œ ๋ฐ˜๋ฉด, LogRocket์€ Redux ์ƒํƒœ ๋ณ€ํ™”์™€ ์ „์ฒด DOM์„ ํฌํ•จํ•˜๋Š” ๊ณ ํ•ด์ƒ๋„ ์„ธ์…˜ ๋ฆฌํ”Œ๋ ˆ์ด ๊ธฐ๋Šฅ์— ํŠนํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค [2, 4, 5]. ๋‘ ๋„๊ตฌ ๋ชจ๋‘ ๋ณต์žกํ•œ ๋ถ„์‚ฐ ํ”„๋ก ํŠธ์—”๋“œ ์‹œ์Šคํ…œ์˜ ๊ฐ€์‹œ์„ฑ(Observability)์„ ํ™•๋ณดํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ๊ทผ๋ณธ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [5, 6]. + +## ๐Ÿ“– Core Content +**Sentry: ๊ฐœ๋ฐœ์ž ์ค‘์‹ฌ์˜ ์—๋Ÿฌ ํŠธ๋ž˜์ปค (Developer-First Error Tracker)** +* **ํ•ต์‹ฌ ๊ธฐ๋Šฅ:** Sentry์˜ ๊ฐ€์žฅ ํฐ ๊ฐ•์ ์€ '์ง€๋Šฅํ˜• ์—๋Ÿฌ ๊ทธ๋ฃนํ™”(Intelligent error grouping)'์ž…๋‹ˆ๋‹ค [2]. ์ค‘๋ณต๋˜๋Š” ์—๋Ÿฌ์˜ ํ™์ˆ˜ ์†์—์„œ ์œ ์‚ฌํ•œ ์—๋Ÿฌ๋ฅผ ์ž๋™์œผ๋กœ ๋ฌถ์–ด ๊ณ ์œ ํ•œ ๋ฌธ์ œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค [2, 5]. ๋˜ํ•œ '์ด๋™ ๊ฒฝ๋กœ(Breadcrumb trail)' ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ฝ˜์†” ๋กœ๊ทธ, ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ ๋“ฑ ์—๋Ÿฌ ๋ฐœ์ƒ ์ „๊นŒ์ง€์˜ ์ •ํ™•ํ•œ ์ด๋ฒคํŠธ ์‹œํ€€์Šค๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค [2]. +* **์žฅ๋‹จ์ :** ๋„‰๋„‰ํ•œ ๋ฌด๋ฃŒ ํ‹ฐ์–ด๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ 100๊ฐœ ์ด์ƒ์˜ SDK ํ†ตํ•ฉ์„ ์ง€์›ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์ด ๋งค์šฐ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค [7]. NextJS ํ™˜๊ฒฝ ๊ธฐ์ค€ ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์ฒซ ์—๋Ÿฌ ์บก์ฒ˜๊นŒ์ง€ ์•ฝ 8๋ถ„๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š์„ ์ •๋„๋กœ ์„ค์ •์ด ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค [8]. ๋ฐ˜๋ฉด ๋Œ€๊ทœ๋ชจ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์žฅ ์‹œ ์—๋Ÿฌ, ๋ฆฌํ”Œ๋ ˆ์ด, ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ์— ๋Œ€ํ•œ ๋‹ค์ค‘ ๋ฏธํ„ฐ๋ง ์š”๊ธˆ์ œ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ธ์…˜ ๋ฆฌํ”Œ๋ ˆ์ด ๊ธฐ๋Šฅ์€ ์ „๋ฌธ ๋„๊ตฌ์— ๋น„ํ•ด ์„ฑ์ˆ™๋„๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค [7]. ์ตœ๊ทผ์—๋Š” Sentry MCP ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜์—ฌ ๋‹จ์ˆœ ์—๋Ÿฌ ๋ณต์‚ฌ๋ฅผ ๋„˜์–ด ์‹ค์ œ ํ”„๋กœ๋•์…˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์Šค๋งˆํŠธ ๋””๋ฒ„๊น…๊ณผ ์ˆ˜์ • ์ œ์•ˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [9]. + +**LogRocket: ์„ธ์…˜ ๋ฆฌํ”Œ๋ ˆ์ด ์„ ๊ตฌ์ž (The Session Replay Pioneer)** +* **ํ•ต์‹ฌ ๊ธฐ๋Šฅ:** ๋‹จ์ˆœํ•œ ์—๋Ÿฌ ๋กœ๊น…์„ ๋„˜์–ด ๋ชจ๋“  ์‚ฌ์šฉ์ž ์„ธ์…˜์„ ํ™”๋ฉด ๋…นํ™”๊ธฐ์ฒ˜๋Ÿผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค [3]. ์ „์ฒด DOM, Redux/Vuex ์ƒํƒœ ๋ณ€๊ฒฝ, ํ—ค๋” ๋ฐ ์‘๋‹ต์ด ํฌํ•จ๋œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ์„ฑ๋Šฅ ์ง€ํ‘œ๊นŒ์ง€ ์ƒ์„ธํ•˜๊ฒŒ ์บก์ฒ˜ํ•˜์—ฌ ๋ณต์žกํ•œ ๋ฒ„๊ทธ๋ฅผ ๋””๋ฒ„๊น…ํ•  ๋•Œ ์ตœ๊ณ ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [4, 5]. +* **์žฅ๋‹จ์ :** ๊ณ ํ•ด์ƒ๋„ ์„ธ์…˜ ๋ฆฌํ”Œ๋ ˆ์ด์™€ ์ƒํƒœ(State) ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์€ ๋…๋ณด์ ์ด์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ "๋ชจ๋“  ๊ฒƒ์„ ์บก์ฒ˜"ํ•˜๋Š” ๋ฐฉ์‹์„ ์ทจํ•˜๊ณ  ์žˆ์–ด ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌ๋Š”(Redact) ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ • ์ž‘์—…์— ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค [4, 10]. ๋˜ํ•œ Sentry์— ๋น„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค ํฌ๊ธฐ์— ๋ฏธ์น˜๋Š” ์„ฑ๋Šฅ ์˜ํ–ฅ์ด ๋” ํฌ๊ณ , ๋Œ€๊ทœ๋ชจ ์‚ฌ์šฉ ์‹œ ์›” 69๋‹ฌ๋Ÿฌ์—์„œ ์ˆ˜์ฒœ ๋‹ฌ๋Ÿฌ๊นŒ์ง€ ๋น„์šฉ์ด ๋น„์‹ธ์ง€๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค [10, 11]. + +**๋„์ž… ์‹œ ์„ฑ๋Šฅ ๋ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๊ณ ๋ ค์‚ฌํ•ญ** +* ๋กœ๊น… ๋„๊ตฌ๋ฅผ ์„ ํƒํ•  ๋•Œ๋Š” ๋‹จ์ˆœํžˆ ์Šคํ‹ฐ์ปค ๊ฐ€๊ฒฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฒˆ๋“ค ํฌ๊ธฐ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜(์ถ”๊ฐ€ ๋กœ๋“œ ์‹œ๊ฐ„ ๋ฐœ์ƒ)์™€ ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ •์— ๋“ค์–ด๊ฐ€๋Š” ํŒ€์˜ ์‹œ๊ฐ„์„ ์ด ๋น„์šฉ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [12, 13]. +* ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๋งˆ์Šคํ‚นํ•˜๋Š” ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ํ”„๋ผ์ด๋ฒ„์‹œ ๊ทœ์ œ๊ฐ€ ๊ฐ•ํ™”๋˜๋Š” ํ˜„์žฌ ํ™˜๊ฒฝ์—์„œ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [12]. + +## ๐Ÿ”— Knowledge Connections +- **Related Topics:** [[Error Handling]], [[Performance Optimization]], [[Observability]], [[Debugging Frontend Applications]] +- **Projects/Contexts:** [[Scalable Frontend Systems]], [[Production Monitoring]] +- **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด Sentry๋Š” ์„ค์ •์ด ๋น ๋ฅด๊ณ  ์ดˆ๊ธฐ ๋น„์šฉ(๋ฌด๋ฃŒ ํ‹ฐ์–ด) ๋ฉด์—์„œ ๋‹จ์ˆœ ๋กœ๊น… ์š”๊ตฌ์‚ฌํ•ญ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์˜ต์…˜์œผ๋กœ ๊ผฝํžˆ๋Š” ๋ฐ˜๋ฉด, LogRocket์€ ์„ธ์…˜๊ณผ ์ƒํƒœ์— ๋Œ€ํ•œ ์••๋„์ ์ธ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ๋ฒˆ๋“ค ํฌ๊ธฐ์— ๋ฏธ์น˜๋Š” ์„ฑ๋Šฅ ์•…์˜ํ–ฅ๊ณผ ๊ธฐ๋ณธ ์„ค์ •์—์„œ์˜ ํ”„๋ผ์ด๋ฒ„์‹œ ์นจํ•ด ์šฐ๋ ค(๋ชจ๋“  ๊ฒƒ ์บก์ฒ˜)๋ผ๋Š” ์ƒ๋ฐ˜๋œ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [7, 10, 12, 14]. + +--- +*Last updated: 2026-04-26* \ No newline at end of file diff --git a/10_Wiki/Topics/AI/ADA-Website-Compliance.md b/10_Wiki/Topics/AI/ADA-Website-Compliance.md index 73064c42..943639b8 100644 --- a/10_Wiki/Topics/AI/ADA-Website-Compliance.md +++ b/10_Wiki/Topics/AI/ADA-Website-Compliance.md @@ -1,29 +1,31 @@ --- -id: SYS-COMP-ADA-001 +id: SYS-COMP-ACC-GLOBAL-001 category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" confidence_score: 1.0 -tags: [accessibility, compliance, ada, wcag, pour-principles, inclusive-design, digital-governance] +tags: [accessibility, compliance, ada, eaa, wcag-2-2, pour-principles, digital-inclusive, legal-risk] last_reinforced: 2026-04-26 --- -# [[ADA Website Compliance (ADA ์›น์‚ฌ์ดํŠธ ๊ทœ์ • ์ค€์ˆ˜)]] +# [[ADA and EAA Accessibility Compliance (๊ธ€๋กœ๋ฒŒ ๋””์ง€ํ„ธ ์ ‘๊ทผ์„ฑ ๊ทœ์ • ์ค€์ˆ˜)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) -> "์žฅ์•  ์œ ๋ฌด์™€ ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์ธ๊ฐ„์ด ๋””์ง€ํ„ธ ๊ณต๊ฐ„์˜ ์ •๋ณด๋ฅผ ๊ณตํ‰ํ•˜๊ฒŒ ์†Œ์œ ํ•˜๊ฒŒ ํ•˜๊ณ , ๊ธฐ์ˆ ์  ํ‘œ์ค€(WCAG)์„ ํ†ตํ•ด ๋ฒ•์  ๋ฆฌ์Šคํฌ๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์‹ ๋ขฐ๋„๋กœ ์ „ํ™˜ํ•˜๋ผ" โ€” ๋ฏธ๊ตญ ์žฅ์• ์ธ๋ฒ•(ADA)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋””์ง€ํ„ธ ์ฝ˜ํ…์ธ ์˜ ๋ณดํŽธ์  ์ ‘๊ทผ์„ฑ ๋ณด์žฅ ์ฒด๊ณ„. +> "๋””์ง€ํ„ธ ์žฅ๋ฒฝ์„ ํ—ˆ๋ฌผ์–ด ๋ชจ๋“  ์ธ๊ฐ„์˜ ํ‰๋“ฑํ•œ ์ •๋ณด ์ ‘๊ทผ๊ถŒ์„ ๋ณด์žฅํ•˜๊ณ , ADA(๋ฏธ๊ตญ)์™€ EAA(์œ ๋Ÿฝ)๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ๋ฒ•์  ํ‘œ์ค€์„ ํ†ตํ•ด ๊ธ€๋กœ๋ฒŒ ๋น„์ฆˆ๋‹ˆ์Šค์˜ ์œค๋ฆฌ์ /๋ฒ•์  ์ •๋‹น์„ฑ์„ ํ™•๋ณดํ•˜๋ผ" โ€” WCAG 2.2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์ ‘๊ทผ์„ฑ์˜ ๊ธ€๋กœ๋ฒŒ ํ†ตํ•ฉ ๊ฐ€์ด๋“œ๋ผ์ธ. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) -- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Universal Access and Regulatory Alignment" โ€” ๋ฏผ๊ถŒ๋ฒ•์ธ ADA์™€ ๊ธฐ์ˆ  ํ‘œ์ค€์ธ WCAG(์ตœ์†Œ Level AA)๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ, ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ '์ธ์‹, ์šด์šฉ, ์ดํ•ด, ๊ฒฌ๊ณ ์„ฑ'์„ ๋ณด์žฅํ•˜๋Š” ์ธํด๋ฃจ์‹œ๋ธŒ ๋””์ž์ธ ํŒจํ„ด. -- **ํ•ต์‹ฌ ์›์น™ (POUR Principles):** - - **Perceivable (์ธ์‹์˜ ์šฉ์ด์„ฑ):** ์ด๋ฏธ์ง€ ๋Œ€์ฒด ํ…์ŠคํŠธ(Alt Text) ์ œ๊ณต, ์˜์ƒ ์ž๋ง‰ ํƒ‘์žฌ ๋“ฑ ์ •๋ณด์˜ ๊ฐ๊ฐ์  ์ธ์‹ ๋ณด์žฅ. - - **Operable (์šด์šฉ์˜ ์šฉ์ด์„ฑ):** ํ‚ค๋ณด๋“œ ์ „์šฉ ํƒ์ƒ‰ ๋ณด์žฅ, ์ถฉ๋ถ„ํ•œ ์กฐ์ž‘ ์‹œ๊ฐ„ ์ œ๊ณต, ๋ฐœ์ž‘ ์œ ๋ฐœ ์ฝ˜ํ…์ธ  ๋ฐฐ์ œ. - - **Understandable (์ดํ•ด์˜ ์šฉ์ด์„ฑ):** ํ…์ŠคํŠธ ๊ฐ€๋…์„ฑ ํ™•๋ณด, ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ UI ๋™์ž‘, ์ž…๋ ฅ ์˜ค๋ฅ˜ ์ˆ˜์ • ์ง€์›. - - **Robust (๊ฒฌ๊ณ ์„ฑ):** ๋ณด์กฐ ๊ธฐ์ˆ (ํ™”๋ฉด ํŒ๋…๊ธฐ ๋“ฑ) ๋ฐ ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์™€์˜ ๋†’์€ ํ˜ธํ™˜์„ฑ ์œ ์ง€. -- **์˜์˜:** ์ฐจ๋ณ„ ์—†๋Š” ์ •๋ณด ์ ‘๊ทผ๊ถŒ์ด๋ผ๋Š” ์‚ฌํšŒ์  ๊ฐ€์น˜ ์‹คํ˜„๊ณผ ๋™์‹œ์—, ์ ‘๊ทผ์„ฑ ์†Œ์†ก(Lawsuits)์œผ๋กœ๋ถ€ํ„ฐ ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO) ํšจ๊ณผ๋ฅผ ๋ค์œผ๋กœ ์–ป๋Š” ์ „๋žต์  ํ•„์ˆ˜ ์š”๊ฑด. +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Harmonized Global Standards and Proactive Inclusivity" โ€” ๋ฏธ๊ตญ(ADA)์˜ WCAG 2.1 AA ๊ถŒ๊ณ ์™€ ์œ ๋Ÿฝ(EAA 2025)์˜ EN 301 549 ํ‘œ์ค€์„ ํ†ตํ•ฉํ•˜์—ฌ, ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ๋ถ€ํ„ฐ ๋ณดํŽธ์  ์„ค๊ณ„(Universal Design)๋ฅผ ๊ด€์ฒ ์‹œํ‚ค๋Š” ํŒจํ„ด. +- **๊ธ€๋กœ๋ฒŒ ๊ทœ์ œ ํ˜„ํ™ฉ:** + - **ADA (Americans with Disabilities Act):** ๋ฏธ๊ตญ ๋‚ด ๋ชจ๋“  ๋””์ง€ํ„ธ ์ฝ˜ํ…์ธ ์˜ ์ ‘๊ทผ์„ฑ ์˜๋ฌดํ™”. ์ตœ๊ทผ ์†Œ์†ก ๊ฑด์ˆ˜ ๊ธ‰์ฆ ์ถ”์„ธ. + - **EAA (European Accessibility Act):** 2025๋…„ 6์›” ๋ฐœํšจ. ์œ ๋Ÿฝ ๋‚ด ์ „์ž์ƒ๊ฑฐ๋ž˜, ๋ฑ…ํ‚น ๋“ฑ ์ฃผ์š” ์„œ๋น„์Šค์˜ ์ ‘๊ทผ์„ฑ ์ค€์ˆ˜ ๊ฐ•์ œ. +- **WCAG 2.2 ํ•ต์‹ฌ ์—…๋ฐ์ดํŠธ (2023):** + - **Focus Not Obscured:** ๋ ˆ์ด์–ด ๋“ฑ์— ์˜ํ•ด ํฌ์ปค์Šค ํ‘œ์‹œ๊ฐ€ ๊ฐ€๋ ค์ง€์ง€ ์•Š์•„์•ผ ํ•จ. + - **Dragging Movements:** ๋ณต์žกํ•œ ๋“œ๋ž˜๊ทธ ๋™์ž‘์— ๋Œ€ํ•œ ๋‹จ์ผ ํด๋ฆญ ๋Œ€์•ˆ ์ œ๊ณต ํ•„์ˆ˜. + - **Accessible Authentication:** ๊ธฐ์–ต๋ ฅ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋กœ๊ทธ์ธ ๋ฐฉ์‹(์ƒ์ฒด ์ธ์‹ ๋“ฑ) ๊ถŒ์žฅ. +- **์˜์˜:** ์žฅ์• ์ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ณ ๋ น์ž, ์ผ์‹œ์  ๋ถ€์ƒ์ž, ์ €์† ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž ๋“ฑ ๋ชจ๋“  ์ž ์žฌ ๊ณ ๊ฐ์˜ ์ดํƒˆ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ธŒ๋žœ๋“œ ๊ฐ€์น˜๋ฅผ ๊ณ ์–‘ํ•จ. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) -- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” '์ ‘๊ทผ์„ฑ ์œ„์ ฏ(Overlay)'์ด ๋ฒ•์  ๋ฐฉํŒจ๊ฐ€ ๋  ๊ฒƒ์œผ๋กœ ์˜คํ•ดํ–ˆ์œผ๋‚˜, ์‹ค์ œ ์ •์ฑ…์ƒ ์ด๋Ÿฌํ•œ ์œ„์ ฏ์€ ๊ทผ๋ณธ์  ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๋ฉฐ ์†Œ์†ก์˜ ํƒ€๊ฒŸ์ด ๋˜๊ณ  ์žˆ์Œ. ์ฝ”๋“œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” '๋„ค์ดํ‹ฐ๋ธŒ ์ ‘๊ทผ์„ฑ' ์ •์ฑ…์ด ์œ ์ผํ•œ ์ •๋‹ต์ž„. -- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  UI ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ์‹œ WCAG 2.1 AA ํ‘œ์ค€ ๊ฐ์‚ฌ๋ฅผ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์— ํฌํ•จํ•˜๋ฉฐ, ์‹œ๊ฐ ์žฅ์• ์ธ ์—์ด์ „ํŠธ์˜ ์ ‘๊ทผ์„ฑ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ•„์ˆ˜๋กœ ๊ฑฐ์น˜๋Š” ์ •์ฑ…์„ ์‹œํ–‰ํ•จ. +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” '์ ‘๊ทผ์„ฑ ์œ„์ ฏ(Overlay)'์ด ๋ฒ•์  ๋ฐฉํŒจ๊ฐ€ ๋  ๊ฒƒ์œผ๋กœ ๋ณด์•˜์œผ๋‚˜, 2025๋…„ ๊ธฐ์ค€ ์†Œ์†ก์˜ 22% ์ด์ƒ์ด ์œ„์ ฏ ์„ค์น˜ ์‚ฌ์ดํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•จ. ๋”ฐ๋ผ์„œ '์ฝ”๋“œ ๋ ˆ๋ฒจ์˜ ์ง์ ‘ ์ˆ˜์ •'๋งŒ์ด ์œ ์ผํ•œ ์•ˆ์ „ ์ •์ฑ…์ž„. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  UI ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด WCAG 2.2 AA ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๊ฒ€์ฆ์„ ์˜๋ฌดํ™”ํ•˜๋ฉฐ, ์œ ๋Ÿฝ ์‹œ์žฅ ์ง„์ถœ์„ ์œ„ํ•ด EAA ํ‘œ์ค€์„ ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜์— ๋ฐ˜์˜ํ•จ. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) -- [[Web-Accessibility]], [[POUR-Principles]], [[Inclusive-Design]], [[SEO-Foundations]] -- **Raw Source:** [[00_Raw/ADA Website Compliance.md]] +- [[Web-Accessibility]], [[POUR-Principles]], [[Inclusive-Design]], [[User-Centered-Design-Approach]] +- **Raw Source:** [[00_Raw/ADA Website Compliance.md]], [[00_Raw/Accessibility Compliance (ADA-EAA).md]], [[00_Raw/Accessibility Compliance (WCAG).md]] diff --git a/10_Wiki/Topics/AI/AI-Personalization-and-Adaptive-UX.md b/10_Wiki/Topics/AI/AI-Personalization-and-Adaptive-UX.md new file mode 100644 index 00000000..6ca50078 --- /dev/null +++ b/10_Wiki/Topics/AI/AI-Personalization-and-Adaptive-UX.md @@ -0,0 +1,28 @@ +--- +id: UX-AI-ADAPTIVE-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [ux, ai, personalization, adaptive-ux, predictive-ux, progressive-disclosure, user-engagement] +last_reinforced: 2026-04-26 +--- + +# [[AI Personalization and Adaptive UX (AI ๊ฐœ์ธํ™” ๋ฐ ์ ์‘ํ˜• UX)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์ •์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉ์ž์˜ ์‹ค์‹œ๊ฐ„ ์˜๋„์™€ ๋งฅ๋ฝ์— ๋ฐ˜์‘ํ•˜๋Š” ์‚ด์•„์žˆ๋Š” ์œ ๊ธฐ์ฒด๋กœ ๋ณ€๋ชจ์‹œํ‚ค๊ณ , ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์ ํ™”๋œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๋™์ ์œผ๋กœ ์ œ์‹œํ•˜๋ผ" โ€” AI์™€ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ณ„ ๋งž์ถคํ˜• ๊ฒฝํ—˜์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ณ ๋„ํ™”๋œ UX ์ „๋žต. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Contextual Fluidity and Predictive Guidance" โ€” ์‚ฌ์šฉ์ž์˜ ๊ณผ๊ฑฐ ํ–‰๋™ ๋ฐ์ดํ„ฐ, ํ˜„์žฌ ์„ธ๊ทธ๋จผํŠธ, ์‹ค์‹œ๊ฐ„ ์ธํ„ฐ๋ž™์…˜์„ ๋ถ„์„ํ•˜์—ฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌ์„ฑ ์š”์†Œ, ๋‚œ์ด๋„, ๊ธฐ๋Šฅ์„ ๋™์ ์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ํŒจํ„ด. +- **์ฃผ์š” ๊ตฌํ˜„ ๊ธฐ๋ฒ•:** + - **Adaptive Learning Paths:** ํ•™์Šต์ž์˜ ์„ฑ์ทจ๋„์— ๋”ฐ๋ผ ์ฝ˜ํ…์ธ ์˜ ๋‚œ์ด๋„์™€ ์ง„ํ–‰ ๊ฒฝ๋กœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐ์ •. + - **Progressive Disclosure:** ์‚ฌ์šฉ์ž์˜ ์ˆ™๋ จ๋„๋‚˜ ์—ญํ• ์— ๋”ฐ๋ผ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ๋…ธ์ถœํ•˜์—ฌ ์ธ์ง€ ๊ณผ๋ถ€ํ•˜ ๋ฐฉ์ง€. + - **Predictive Interfaces:** ๋‹ค์Œ์— ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ธก๋˜๋Š” ๋ฒ„ํŠผ์ด๋‚˜ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ•์กฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐ์น˜. +- **์˜์˜:** '๋ชจ๋‘๋ฅผ ์œ„ํ•œ ํ•˜๋‚˜์˜ ๋””์ž์ธ(One-size-fits-all)'์—์„œ ๋ฒ—์–ด๋‚˜, ์ดˆ๊ฐœ์ธํ™”(Hyper-personalization)๋ฅผ ํ†ตํ•ด ์ดํƒˆ๋ฅ ์„ ๋‚ฎ์ถ”๊ณ  ์ „ํ™˜์œจ ๋ฐ ๊ณ ๊ฐ ์ƒ์•  ๊ฐ€์น˜(LTV)๋ฅผ ๊ทน๋Œ€ํ™”ํ•จ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” ์ •ํ•ด์ง„ ๊ทœ์น™ ๊ธฐ๋ฐ˜(Rule-based)์˜ ๊ฐœ์ธํ™”์— ๋จธ๋ฌผ๋ €์œผ๋‚˜, ํ˜„์žฌ๋Š” ์‹ค์‹œ๊ฐ„ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด ์‚ฌ์šฉ์ž์˜ ๋ฏธ์„ธํ•œ ๋งˆ์ดํฌ๋กœ ์ธํ„ฐ๋ž™์…˜์„ ํ•™์Šตํ•˜์—ฌ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” '์ง€๋Šฅํ˜• ์ ์‘' ์ •์ฑ…์œผ๋กœ ์ง„ํ™”ํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” '๊ฐœ์ธํ™”์™€ ํ”„๋ผ์ด๋ฒ„์‹œ์˜ ๊ท ํ˜•' ์ •์ฑ…์„ ์ค€์ˆ˜ํ•˜๋ฉฐ, ๋ชจ๋“  ๊ฐœ์ธํ™” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ณ ์ง€ํ•˜๊ณ  ์Šค์Šค๋กœ ์ตœ์ ํ™” ์ˆ˜์ค€์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[User-Centered-Design]], [[A-B-Testing-and-Data-Driven-UX]], [[Predictive-UX]], [[Micro-interactions]], [[Ethical-Decision-Making]] +- **Raw Source:** [[00_Raw/AI ๊ฐœ์ธํ™” ๋ฐ ์ ์‘ํ˜• UX.md]], [[00_Raw/Adaptive UX.md]] diff --git a/10_Wiki/Topics/AI/Atomic-Styling-and-Design-Systems.md b/10_Wiki/Topics/AI/Atomic-Styling-and-Design-Systems.md new file mode 100644 index 00000000..6155e86a --- /dev/null +++ b/10_Wiki/Topics/AI/Atomic-Styling-and-Design-Systems.md @@ -0,0 +1,29 @@ +--- +id: FE-STYLE-ATOMIC-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [css, frontend, atomic-css, design-systems, tailwindcss, utility-first, scalability] +last_reinforced: 2026-04-26 +--- + +# [[Atomic Styling and Design Systems (์•„ํ† ๋ฏน ์Šคํƒ€์ผ๋ง๊ณผ ๋””์ž์ธ ์‹œ์Šคํ…œ)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์Šคํƒ€์ผ์„ ๋” ์ด์ƒ 'ํŽ˜์ด์ง€' ๋‹จ์œ„๋กœ ์„ค๊ณ„ํ•˜์ง€ ๋ง๊ณ , ๋” ์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” '์›์ž(Utility)' ๋‹จ์œ„๋กœ ํŒŒํŽธํ™”ํ•˜์—ฌ ์กฐํ•ฉํ•จ์œผ๋กœ์จ ์ „์—ญ ์Šคํƒ€์ผ์˜ ์˜ค์—ผ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋ฌดํ•œํžˆ ํ™•์žฅํ•˜๋ผ" โ€” Tailwind CSS ๋“ฑ์œผ๋กœ ๋Œ€๋ณ€๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํผ์ŠคํŠธ(Utility-first) ์Šคํƒ€์ผ๋ง ํŒจ๋Ÿฌ๋‹ค์ž„. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Composition Over Cascading" โ€” CSS์˜ ์ „ํ†ต์ ์ธ ์ƒ์†(Cascading)๊ณผ ๋ณต์žกํ•œ ์„ ํƒ์ž ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ œํ•˜๊ณ , ํด๋ž˜์Šค ํ•˜๋‚˜๊ฐ€ ํ•˜๋‚˜์˜ ์Šคํƒ€์ผ ์†์„ฑ๋งŒ์„ ๋‹ด๋‹นํ•˜๊ฒŒ ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ์—์„œ ์Šคํƒ€์ผ์„ ์กฐํ•ฉํ•˜๋Š” ํŒจํ„ด. +- **์ฃผ์š” ํŠน์ง•:** + - **Single Responsibility Class:** `flex`, `p-4`, `text-center` ๋“ฑ ๋ช…ํ™•ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํด๋ž˜์Šค ์‚ฌ์šฉ. + - **No Side Effects:** ํ•œ ๊ณณ์˜ ์Šคํƒ€์ผ ์ˆ˜์ •์ด ๋‹ค๋ฅธ ๊ณณ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ ์ œ๊ณต. + - **Minimal Bundle Size:** ์‚ฌ์šฉ๋œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋งŒ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์— ํฌํ•จํ•˜์—ฌ CSS ํŒŒ์ผ ํฌ๊ธฐ ์ตœ์†Œํ™”. + - **Constraint-based Design:** ์ •์˜๋œ ๋””์ž์ธ ํ† ํฐ(Spacing, Colors) ๋‚ด์—์„œ๋งŒ ์Šคํƒ€์ผ์„ ์„ ํƒํ•˜๊ฒŒ ๊ฐ•์ œํ•˜์—ฌ ๋””์ž์ธ ์ผ๊ด€์„ฑ ์œ ์ง€. +- **์˜์˜:** ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ CSS์˜ ๋ณต์žก๋„๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ์œ ์ง€ํ•˜๋ฉฐ, ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” HTML๊ณผ CSS์˜ ๋ถ„๋ฆฌ(Separation of Concerns)๋ฅผ ์ง€ํ–ฅํ–ˆ์œผ๋‚˜, ์•„ํ† ๋ฏน ์Šคํƒ€์ผ๋ง ์ •์ฑ…์€ ์Šคํƒ€์ผ๊ณผ ๊ตฌ์กฐ๋ฅผ ํ•œ๊ณณ์— ๋ชจ์œผ๋Š” '๊ฒฐํ•ฉ(Co-location)'์„ ํ†ตํ•œ ์œ ์ง€๋ณด์ˆ˜ ํšจ์œจ ์ •์ฑ…์œผ๋กœ ์ „ํ–ฅํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” UI ๊ฐœ๋ฐœ ์‹œ Tailwind CSS v4 ๊ธฐ๋ฐ˜์˜ ์•„ํ† ๋ฏน ์Šคํƒ€์ผ๋ง์„ ๊ธฐ๋ณธ ์ •์ฑ…์œผ๋กœ ์ฑ„ํƒํ•˜๋ฉฐ, ์ธ๋ผ์ธ ์Šคํƒ€์ผ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•˜๊ณ  ์˜ค์ง ์‚ฌ์ „ ์ •์˜๋œ ์›์ž ํด๋ž˜์Šค๋งŒ์„ ํ™œ์šฉํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Design-System]], [[Tailwind-CSS-v4-แ„ƒแ…ฉแ„‹แ…ตแ†ธ]], [[Software-Architecture-Patterns]], [[Clean-Code-Principles]] +- **Raw Source:** [[00_Raw/Atomic Styling.md]] diff --git a/10_Wiki/Topics/AI/CI-CD-Pipeline-Foundations.md b/10_Wiki/Topics/AI/CI-CD-Pipeline-Foundations.md new file mode 100644 index 00000000..385b748c --- /dev/null +++ b/10_Wiki/Topics/AI/CI-CD-Pipeline-Foundations.md @@ -0,0 +1,29 @@ +--- +id: OPS-CICD-CORE-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [devops, cicd, automation, continuous-integration, continuous-deployment, delivery-pipeline, reliability] +last_reinforced: 2026-04-26 +--- + +# [[CI/CD Pipeline Foundations (CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ์ดˆ)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„๋‹ฌํ•˜๊ธฐ๊นŒ์ง€์˜ ์ „ ๊ณผ์ •์„ ์ž๋™ํ™”๋œ ๊ฒ€์ฆ ๋ฃจํ”„๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ, ๋ฐฐํฌ์˜ ๋ฆฌ์Šคํฌ๋ฅผ ์ค„์ด๊ณ  ๊ฐœ๋ฐœ์˜ ์†๋„๋ฅผ ๋ฌผ๋ฆฌ์  ํ•œ๊ณ„๊นŒ์ง€ ๋ฐ€์–ด๋ถ™์—ฌ๋ผ" โ€” ์ง€์†์  ํ†ตํ•ฉ(CI)๊ณผ ์ง€์†์  ์ œ๊ณต/๋ฐฐํฌ(CD)๋ฅผ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ๊ณผ ์ถœ์‹œ ์†๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ํ˜„๋Œ€ ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜ ์ธํ”„๋ผ. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Automated Verification and Incremental Delivery" โ€” ์ฝ”๋“œ๊ฐ€ ์ปค๋ฐ‹๋˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ์Šคํ…Œ์ด์ง•, ์šด์˜ ํ™˜๊ฒฝ ๋ฐฐํฌ๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๋™ ๊ฐœ์ž…์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€์‹œ์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ํŒจํ„ด. +- **ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ ์š”์†Œ:** + - **Continuous Integration (CI):** ์ฝ”๋“œ ๋ณ‘ํ•ฉ ์‹œ ์ž๋™ ๋นŒ๋“œ ๋ฐ ์œ ๋‹›/ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰. ์ถฉ๋Œ์„ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌ. + - **Continuous Delivery:** ๊ฒ€์ฆ๋œ ์ฝ”๋“œ๋ฅผ ์ˆ˜๋™ ์Šน์ธ ํ›„ ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€. + - **Continuous Deployment (CD):** ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž๋™์œผ๋กœ ์ฆ‰์‹œ ๋ฐฐํฌ. + - **Quality Gates:** ๋ฆฐํŒ…(Linting), ๋ณด์•ˆ ์Šค์บ”, ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ๋“ฑ์˜ ์ง€ํ‘œ๊ฐ€ ์ถฉ์กฑ๋˜์–ด์•ผ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰. +- **์˜์˜:** ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋‹จ์ถ•(Daily or hourly)์‹œํ‚ค๊ณ , ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋กค๋ฐฑ(Rollback) ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค์˜ ๊ธฐ๋ฏผํ•จ๊ณผ ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ๋™์‹œ์— ํ™•๋ณดํ•จ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” ์ •๊ธฐ์ ์ธ '๋ฐฐํฌ์ผ'์„ ์ •ํ•ด ๋Œ€๊ทœ๋ชจ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋‚˜, ํ˜„๋Œ€ CI/CD ์ •์ฑ…์€ ์ž‘๊ณ  ์žฆ์€ ๋ฐฐํฌ(Small & Frequent)๋ฅผ ํ†ตํ•ด ๋ฆฌ์Šคํฌ๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ์ •์ฑ…์„ ์ตœ์šฐ์„ ์œผ๋กœ ํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ์ €์žฅ์†Œ์— ๋Œ€ํ•ด 'Pull Request ๊ธฐ๋ฐ˜์˜ ์ž๋™ CI'๋ฅผ ๊ฐ•์ œํ•˜๋ฉฐ, ๋ฉ”์ธ ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ์‹œ ์ฆ‰์‹œ ์—์ง€(Edge) ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋Š” CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Software-Architecture-Patterns]], [[Technical-Debt-Management]], [[Cloud-Infrastructure]], [[Infrastructure-as-Code-IaC]] +- **Raw Source:** [[00_Raw/CI-CD Pipeline.md]] diff --git a/10_Wiki/Topics/AI/Case-Study-Allbirds-PWA-Redesign.md b/10_Wiki/Topics/AI/Case-Study-Allbirds-PWA-Redesign.md new file mode 100644 index 00000000..4eccc8c9 --- /dev/null +++ b/10_Wiki/Topics/AI/Case-Study-Allbirds-PWA-Redesign.md @@ -0,0 +1,31 @@ +--- +id: CS-RETAIL-ALLBIRDS-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [case-study, ecommerce, allbirds, pwa, performance-optimization, sustainability, storytelling, conversion-rate] +last_reinforced: 2026-04-26 +--- + +# [[Case Study: Allbirds PWA Redesign (์‚ฌ๋ก€ ์—ฐ๊ตฌ: Allbirds PWA ๋ฆฌ๋””์ž์ธ)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "๊ธฐ์ˆ ์  ๊ณ ์„ฑ๋Šฅ(PWA)๊ณผ ๊ฐ€์น˜ ๊ธฐ๋ฐ˜ ์Šคํ† ๋ฆฌํ…”๋ง(์ง€์† ๊ฐ€๋Šฅ์„ฑ)์„ ์ œํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€์— ์ˆ˜ํ‰์ ์œผ๋กœ ํ†ตํ•ฉํ•˜์—ฌ, ๋‹จ์ˆœํ•œ '๊ตฌ๋งค'๋ฅผ ๋ธŒ๋žœ๋“œ ๋ฏธ์…˜์— ๋Œ€ํ•œ '๋™์ฐธ'์œผ๋กœ ์Šน๊ฒฉ์‹œ์ผœ๋ผ" โ€” ์›น ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ๋ธŒ๋žœ๋“œ ๊ฐ€์น˜ ์ „๋‹ฌ์˜ ์™„๋ฒฝํ•œ ์กฐํ™”๋ฅผ ํ†ตํ•ด ํญ๋ฐœ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์„ฑ์žฅ์„ ์ด๋ค„๋‚ธ ์ด์ปค๋จธ์Šค ํ˜์‹  ์‚ฌ๋ก€. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **ํ•ต์‹ฌ ๊ณผ์ œ:** ์‚ฌ์šฉ์ž ๊ตฌ๋งค ํ๋ฆ„์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์œผ๋ฉด์„œ Allbirds์˜ ํ•ต์‹ฌ ๊ฐ€์น˜์ธ '์ง€์† ๊ฐ€๋Šฅ์„ฑ' ๋ฉ”์‹œ์ง€๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ , ๋ชจ๋ฐ”์ผ ๋กœ๋”ฉ ์†๋„๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ. +- **ํ˜์‹ ์  UX/๊ธฐ์ˆ  ์ „๋žต:** + - **Value-Integrated UI:** ์ง€์† ๊ฐ€๋Šฅ์„ฑ ์ง€ํ‘œ๋ฅผ 'ํšŒ์‚ฌ ์†Œ๊ฐœ' ํŽ˜์ด์ง€์— ๊ฐ€๋‘์ง€ ์•Š๊ณ , ์ œํ’ˆ ๊ธฐ๋Šฅ ์„ค๋ช… ๋ฐ”๋กœ ์˜†์— ๋ฐฐ์น˜ํ•˜์—ฌ ๊ณ ๊ฐ ์‹ ๋ขฐ๋„์™€ ํˆฌ๋ช…์„ฑ ํ™•๋ณด. + - **PWA Architecture ๋„์ž…:** ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์›น ์•ฑ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์ฆ‰๊ฐ์ ์ธ(Near-instantaneous) ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„ ๊ตฌํ˜„. +- **์ •๋Ÿ‰์  ๋น„์ฆˆ๋‹ˆ์Šค ์„ฑ๊ณผ:** + - **Performance:** ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„ **89% ํ–ฅ์ƒ**, ์ดํƒˆ๋ฅ (Bounce Rate) **34% ๊ฐ์†Œ**. + - **Conversion:** ํ™˜๊ฒฝ ์ค‘์‹œ ์†Œ๋น„์ž์ธต์˜ ์ „ํ™˜์œจ **23% ์ฆ๊ฐ€**. + - **Revenue:** ๋ฆฌ๋””์ž์ธ ํ›„ ์ฒซ ๋ถ„๊ธฐ์—๋งŒ **230๋งŒ ๋‹ฌ๋Ÿฌ**์˜ ์ถ”๊ฐ€ ์ˆ˜์ต ์ฐฝ์ถœ. +- **์˜์˜:** ์›น ์„ฑ๋Šฅ(Engineering)๊ณผ ๊ฐ€์น˜ ์ „๋‹ฌ(Branding)์˜ ๊ฒฐํ•ฉ์ด ์–ด๋–ป๊ฒŒ ์ง์ ‘์ ์ธ ์ˆ˜์ต ์ฐฝ์ถœ๋กœ ์ด์–ด์ง€๋Š”์ง€๋ฅผ ์ฆ๋ช…ํ•œ ํ˜„๋Œ€ ์ด์ปค๋จธ์Šค์˜ ๋ฒค์น˜๋งˆํ‚น ๋ชจ๋ธ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” ๊ณ ์„ฑ๋Šฅ ์ด๋ฏธ์ง€์™€ ํ’๋ถ€ํ•œ ์Šคํ† ๋ฆฌํ…”๋ง์ด ์†๋„ ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•œ๋‹ค๊ณ  ๋ณด์•˜์œผ๋‚˜, Allbirds ์‚ฌ๋ก€๋Š” PWA ๊ธฐ์ˆ ์„ ํ†ตํ•ด 'ํ’๋ถ€ํ•œ ๊ฒฝํ—˜'๊ณผ '๋น ๋ฅธ ์†๋„'๊ฐ€ ์–‘๋ฆฝ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ์ด์ปค๋จธ์Šค ๊ด€๋ จ ์—์ด์ „ํŠธ ์„ค๊ณ„ ์‹œ Allbirds์˜ '์ง€์  ํ†ตํ•ฉํ˜• ๊ฐ€์น˜ ์ „๋‹ฌ' ๋ชจ๋ธ์„ ํ‘œ์ค€์œผ๋กœ ์ฑ„ํƒํ•˜๋ฉฐ, PWA๋ฅผ ๊ธฐ๋ณธ ์›น ์•ฑ ์•„ํ‚คํ…์ฒ˜๋กœ ๊ฐ•์ œํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Progressive-Web-App-PWA]], [[Conversion-Rate-Optimization-CRO]], [[Modern-Website-Architecture]], [[User-Experience-UX-Design]] +- **Raw Source:** [[00_Raw/Allbirds E-commerce Redesign.md]], [[00_Raw/Allbirds PWA Redesign.md]] diff --git a/10_Wiki/Topics/AI/Cumulative-Layout-Shift-CLS.md b/10_Wiki/Topics/AI/Cumulative-Layout-Shift-CLS.md new file mode 100644 index 00000000..65ad998f --- /dev/null +++ b/10_Wiki/Topics/AI/Cumulative-Layout-Shift-CLS.md @@ -0,0 +1,33 @@ +--- +id: PERF-CWV-CLS-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [core-web-vitals, cls, performance, ux, visual-stability, frontend-optimization, seo] +last_reinforced: 2026-04-26 +--- + +# [[Cumulative Layout Shift: CLS (๋ˆ„์  ๋ ˆ์ด์•„์›ƒ ์ด๋™)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์‚ฌ์šฉ์ž๊ฐ€ ์ฝ๊ฑฐ๋‚˜ ํด๋ฆญํ•˜๋ ค๋Š” ์ˆœ๊ฐ„ ์ฝ˜ํ…์ธ ๊ฐ€ ์ถค์ถ”๋“ฏ ์ด๋™ํ•˜๋Š” '์‹œ๊ฐ์  ๋ถˆ์•ˆ์ •์„ฑ'์„ ์ œ๊ฑฐํ•˜๊ณ , 0.08์ดˆ ์ด๋‚ด์˜ ๊ณ ์ •๋œ ์•ˆ์ •๊ฐ์„ ์ œ๊ณตํ•˜์—ฌ ์ธ์ง€์  ๋งˆ์ฐฐ์„ ์ฐจ๋‹จํ•˜๋ผ" โ€” ํŽ˜์ด์ง€์˜ ์ „์ฒด ์ˆ˜๋ช… ๋™์•ˆ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ์ธก์ •ํ•˜๋Š” Core Web Vitals์˜ ํ•ต์‹ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ง€ํ‘œ. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Predictive Space Allocation and Visual Isolation" โ€” ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ ์ „์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ๋ฏธ๋ฆฌ ์˜ˆ์•ฝํ•˜์—ฌ, ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ์ „ํ›„์˜ ์‹œ๊ฐ์  ๋ถˆ์ผ์น˜๋ฅผ ์ œ๋กœ๋กœ ๋งŒ๋“œ๋Š” ํŒจํ„ด. +- **CLS ๋ฐœ์ƒ์˜ ์ฃผ์š” ์›์ธ:** + - **Sizeless Images/Ads:** ํฌ๊ธฐ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€๋‚˜ ๋™์  ๊ด‘๊ณ ๊ฐ€ ๋กœ๋“œ๋˜๋ฉด์„œ ์ฃผ๋ณ€ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐ€์–ด๋ƒ„. + - **Dynamic Content Injection:** ๋ฐฐ๋„ˆ๋‚˜ ํˆดํŒ์ด ๊ธฐ์กด ์ฝ˜ํ…์ธ  ์œ„์ชฝ์— ๊ฐ‘์ž๊ธฐ ์‚ฝ์ž…๋จ. + - **FOIT/FOUT:** ์›น ํฐํŠธ ๋กœ๋”ฉ ์ง€์—ฐ์œผ๋กœ ์ธํ•œ ํ…์ŠคํŠธ ํฌ๊ธฐ ๋ฐ ์ค„๋ฐ”๊ฟˆ ๋ณ€๊ฒฝ. +- **CLS ์ตœ์ ํ™” ์ „๋žต:** + - **Explicit Dimensions:** ๋ชจ๋“  ๋ฏธ๋””์–ด ์š”์†Œ์— `width`, `height` ๋˜๋Š” `aspect-ratio` ๋ช…์‹œ. + - **Placeholder Reservation:** ๊ด‘๊ณ  ๋ฐ ๋™์  ์š”์†Œ ์Šฌ๋กฏ์— `min-height`๋ฅผ ํ™œ์šฉํ•œ ๊ณต๊ฐ„ ํ™•๋ณด. + - **CSS Transform:** ์œ„์น˜ ์ด๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ ๋ ˆ์ด์•„์›ƒ ์žฌ๊ณ„์‚ฐ์„ ์œ ๋ฐœํ•˜์ง€ ์•Š๋Š” `transform` ์†์„ฑ ์‚ฌ์šฉ. + - **Font Display:** `font-display: swap` ์„ค์ •์„ ํ†ตํ•ด ํ…์ŠคํŠธ ๊ตฌ์กฐ ๋ณ€๋™ ์ตœ์†Œํ™”. +- **์˜์˜:** ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•จ์œผ๋กœ์จ ์˜คํด๋ฆญ(Misclick)์„ ๋ฐฉ์ง€ํ•˜๊ณ , ๊ฒ€์ƒ‰ ์—”์ง„ ๋žญํ‚น ์ ์ˆ˜๋ฅผ ๋†’์ด๋ฉฐ ์‚ฌ์šฉ์ž์˜ ์‹ ๋ขฐ๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ด. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” CLS ์šฐ์ˆ˜ ๊ธฐ์ค€์ด 0.1์ด์—ˆ์œผ๋‚˜, 2025๋…„ Google ์ •์ฑ… ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐ์ ์œผ๋กœ 0.08 ๋ฏธ๋งŒ(25% ๊ฐ•ํ™”)์œผ๋กœ ๋”์šฑ ์—„๊ฒฉํ•ด์ง. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  UI ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด 'Zero Layout Shift' ์ •์ฑ…์„ ๊ฐ•์ œํ•˜๋ฉฐ, ๋นŒ๋“œ ํƒ€์ž„์— ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋ฏธ์ง€์ • ์š”์†Œ๋ฅผ ์ž๋™ ๊ฒ€์ถœํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ •์ฑ…์„ ์‹œํ–‰ํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Core-Web-Vitals]], [[LCP-Largest-Contentful-Paint]], [[INP-Interaction-to-Next-Paint]], [[Web-Performance-Optimization]], [[SEO-Foundations]] +- **Raw Source:** [[00_Raw/CLS (Cumulative Layout Shift).md]] diff --git a/10_Wiki/Topics/AI/Nextjs-App-Router-Architecture.md b/10_Wiki/Topics/AI/Nextjs-App-Router-Architecture.md new file mode 100644 index 00000000..596dd96c --- /dev/null +++ b/10_Wiki/Topics/AI/Nextjs-App-Router-Architecture.md @@ -0,0 +1,29 @@ +--- +id: FE-NEXT-APP-ROUTER-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [nextjs, react, app-router, server-components, ssr, partial-rendering, web-architecture] +last_reinforced: 2026-04-26 +--- + +# [[Next.js App Router Architecture (Next.js ์•ฑ ๋ผ์šฐํ„ฐ ์•„ํ‚คํ…์ฒ˜)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์„œ๋ฒ„ ์ค‘์‹ฌ์˜ ๋ผ์šฐํŒ… ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ JavaScript ๋ฒˆ๋“ค์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ(RSC)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ํŽ˜์นญ๊ณผ ๋ Œ๋”๋ง์˜ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์žฌ์ •๋ฆฝํ•˜๋ผ" โ€” React Server Components๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์ฑ„ํƒํ•˜์—ฌ ์›น ์„ฑ๋Šฅ๊ณผ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์„ ๋™์‹œ์— ํ˜์‹ ํ•œ Next.js์˜ ์ฐจ์„ธ๋Œ€ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Server-First Rendering and Granular Hydration" โ€” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•˜๊ณ  ํ•„์š”ํ•œ ์ธํ„ฐ๋ž™์…˜ ๋ถ€๋ถ„๋งŒ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ์„ ์–ธํ•˜์—ฌ, ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋Š” JS ์–‘์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์ด๋Š” ํŒจํ„ด. +- **์ฃผ์š” ํ•ต์‹ฌ ๊ธฐ์ˆ :** + - **React Server Components (RSC):** ์„œ๋ฒ„์—์„œ๋งŒ ์‹คํ–‰๋˜์–ด ํด๋ผ์ด์–ธํŠธ ๋ฒˆ๋“ค์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ. ์ง์ ‘์ ์ธ DB ์ ‘๊ทผ ๊ฐ€๋Šฅ. + - **Streaming & Suspense:** ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ , ๋ Œ๋”๋ง๋œ ์กฐ๊ฐ(Chunk)์„ ์ ์ง„์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „์†ก. + - **Layouts & Nested Routing:** ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ UI์˜ ํŠน์ • ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ณ„์ธต์  ๊ตฌ์กฐ ์ง€์›. + - **Caching & Revalidation:** ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•˜๊ณ  ์ „๋žต์ ์œผ๋กœ ๊ฐฑ์‹ (ISR ๋“ฑ). +- **์˜์˜:** ๊ธฐ์กด Pages Router์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์˜์กด์„ฑ์„ ๊ฐ€์ง„ ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋„ ์ตœ์ƒ์˜ LCP์™€ TTI๋ฅผ ๋ณด์žฅํ•จ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ Pages Router์—์„œ๋Š” `getServerSideProps`๋ฅผ ํ†ตํ•ด ์ตœ์ƒ๋‹จ์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™”์œผ๋‚˜, App Router ์ •์ฑ…์€ ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ์—์„œ ๋น„๋™๊ธฐ(async/await)๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ํŽ˜์นญํ•˜๋Š” ์ •์ฑ…์œผ๋กœ ์ „ํ™˜๋จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ์‹ ๊ทœ ๋Œ€์‹œ๋ณด๋“œ ๋ฐ ์›น ์—”์ง„ ๊ตฌ์ถ• ์‹œ App Router ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ‘œ์ค€์œผ๋กœ ์ฑ„ํƒํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์„ฑ๋Šฅ ์ž„๊ณ„์น˜๋ฅผ ๊ด€๋ฆฌํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Web-Rendering-Strategies-CSR-vs-SSR]], [[Server-Side-Rendering-SSR]], [[React-Architecture]], [[Performance-Optimization]] +- **Raw Source:** [[00_Raw/App Router.md]] diff --git a/10_Wiki/Topics/AI/Uber-Base-Web-Design-System.md b/10_Wiki/Topics/AI/Uber-Base-Web-Design-System.md new file mode 100644 index 00000000..add7810a --- /dev/null +++ b/10_Wiki/Topics/AI/Uber-Base-Web-Design-System.md @@ -0,0 +1,29 @@ +--- +id: FE-DS-BASEWEB-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [uber, baseweb, design-system, react, overrides-pattern, styletron, scalability, accessibility] +last_reinforced: 2026-04-26 +--- + +# [[Uber Base Web Design System (์šฐ๋ฒ„ ๋ฒ ์ด์Šค ์›น ๋””์ž์ธ ์‹œ์Šคํ…œ)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋‚ด๋ถ€ ์•ฑ์„ ์ผ๊ด€๋œ ๋””์ž์ธ ์–ธ์–ด๋กœ ํ†ตํ•ฉํ•˜๊ณ , '์˜ค๋ฒ„๋ผ์ด๋“œ(Overrides)' ํŒจํ„ด์„ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ์˜ ์œ ์—ฐ์„ฑ๊ณผ API์˜ ๊ฐ„๊ฒฐํ•จ ์‚ฌ์ด์˜ ๋ชจ์ˆœ์„ ํ•ด๊ฒฐํ•˜๋ผ" โ€” ์šฐ๋ฒ„์—์„œ ๊ฐœ๋ฐœํ•œ, ๊ทน๋„์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๊ณผ ์ ‘๊ทผ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ React UI ํ”„๋ ˆ์ž„์›Œํฌ. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Granular Override and Observability-driven Governance" โ€” ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ํ•˜์œ„ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ์˜ค๋ฒ„๋ผ์ด๋“œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์‹œ์Šคํ…œ์˜ ์ฑ„ํƒ๋ฅ ์„ ๋ฐ์ดํ„ฐ๋กœ ์ธก์ •ํ•˜์—ฌ ๋””์ž์ธ ํ’ˆ์งˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ํŒจํ„ด. +- **ํ•ต์‹ฌ ํ˜์‹  ์š”์†Œ:** + - **Overrides Pattern:** 'Prop Soup' ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ์˜ ์Šคํƒ€์ผ๊ณผ ๊ตฌ์กฐ๋ฅผ ํ•˜์œ„ ์š”์†Œ ๋‹จ์œ„๋กœ ์ •๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ prop ์ œ๊ณต. + - **Styletron Integration:** ๋Ÿฐํƒ€์ž„์— ์•„ํ† ๋ฏน CSS๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์Šคํƒ€์ผ ์ถฉ๋Œ ๋ฐฉ์ง€. + - **Design Observability:** 'Base Counter' ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ์˜ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉ ๋น„์œจ์„ ์ธก์ •ํ•˜๊ณ  ๋””์ž์ธ ๊ฑฐ๋ฒ„๋„Œ์Šค ๊ตฌํ˜„. + - **Native Accessibility:** ํ‚ค๋ณด๋“œ ๋‚ด๋น„๊ฒŒ์ด์…˜, ํ™”๋ฉด ํŒ๋…๊ธฐ ํ˜ธํ™˜์„ฑ ๋ฐ ARIA ์—ญํ• ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์™„๋ฒฝ ์ง€์›. +- **์˜์˜:** ๋Œ€๊ทœ๋ชจ ์กฐ์ง์—์„œ ๊ฐœ๋ฐœ ์†๋„๋ฅผ 3๋ฐฐ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์‹œ๊ฐ์  ๋ถˆ์ผ์น˜๋ฅผ 4๋ฐฐ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๋“ฑ, ์—”์ง€๋‹ˆ์–ด๋ง ํšจ์œจ์„ฑ๊ณผ ๋””์ž์ธ ์ผ๊ด€์„ฑ์˜ ์–‘๋ฆฝ ๊ฐ€๋Šฅ์„ฑ์„ ์ฆ๋ช…ํ•จ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋“  ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ณ„๋„์˜ Prop์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค ํ–ˆ์œผ๋‚˜, Base Web ์ •์ฑ…์€ '์˜ค๋ฒ„๋ผ์ด๋“œ'๋ผ๋Š” ๋‹จ์ผ ํ†ต๋กœ๋ฅผ ํ†ตํ•ด ๋ฌดํ•œํ•œ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ์ •์ฑ…์œผ๋กœ ์ „ํ™˜ํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ณต์žกํ•œ SaaS ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ• ์‹œ Base Web์˜ ์˜ค๋ฒ„๋ผ์ด๋“œ ์ฒ ํ•™์„ ์ฐธ๊ณ ํ•˜๋ฉฐ, ๋ชจ๋“  ๋””์ž์ธ ์‹œ์Šคํ…œ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด '์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅ์„ฑ(Customizability)' ์ ์ˆ˜๋ฅผ ๋งค๊ฒจ ๊ด€๋ฆฌํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Design-System]], [[Atomic-Styling-and-Design-Systems]], [[Web-Accessibility]], [[Reusable-UI-Components]], [[Scalable-UI-Systems]] +- **Raw Source:** [[00_Raw/Base Web.md]] diff --git a/10_Wiki/Topics/AI/Web-Rendering-Strategies-CSR-vs-SSR.md b/10_Wiki/Topics/AI/Web-Rendering-Strategies-CSR-vs-SSR.md new file mode 100644 index 00000000..ede4de04 --- /dev/null +++ b/10_Wiki/Topics/AI/Web-Rendering-Strategies-CSR-vs-SSR.md @@ -0,0 +1,29 @@ +--- +id: FE-REND-STRAT-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [csr, ssr, rendering, web-architecture, seo, lcp, hydration, hybrid-rendering] +last_reinforced: 2026-04-26 +--- + +# [[Web Rendering Strategies: CSR vs SSR (์›น ๋ Œ๋”๋ง ์ „๋žต: CSR vs SSR)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "์ดˆ๊ธฐ ๋กœ๋”ฉ์˜ ์†๋„(SSR)์™€ ์ธํ„ฐ๋ž™์…˜์˜ ๋งค๋„๋Ÿฌ์›€(CSR) ์‚ฌ์ด์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉ์ ์— ์ตœ์ ํ™”๋œ ์ง€์ ์„ ์„ ํƒํ•˜๊ณ , ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ๋ฒ•์„ ํ†ตํ•ด ๊ฒ€์ƒ‰ ์—”์ง„๊ณผ ์‚ฌ์šฉ์ž ๋ชจ๋‘๋ฅผ ๋งŒ์กฑ์‹œ์ผœ๋ผ" โ€” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ, SEO, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฒฐ์ •์ง“๋Š” ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ์„ ํƒ ๊ฐ€์ด๋“œ. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Purpose-driven Rendering Allocation" โ€” ๊ฒ€์ƒ‰ ๋…ธ์ถœ์ด ์ค‘์š”ํ•œ ๊ณต์šฉ ํŽ˜์ด์ง€๋Š” SSR๋กœ, ๋ณต์žกํ•œ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋Œ€์‹œ๋ณด๋“œ๋Š” CSR๋กœ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜, ์ด๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด. +- **๋ Œ๋”๋ง ๋ฐฉ์‹ ๋น„๊ต:** + - **CSR (Client-Side Rendering):** ๋ธŒ๋ผ์šฐ์ €์—์„œ JS๋กœ UI ๊ตฌ์„ฑ. SPA์— ์ ํ•ฉํ•˜๋ฉฐ ๋งค๋„๋Ÿฌ์šด ํ™”๋ฉด ์ „ํ™˜ ์ œ๊ณต. ๋‹จ, ์ดˆ๊ธฐ ๋กœ๋“œ ์†๋„๊ฐ€ ๋А๋ฆฌ๊ณ  SEO์— ๋ถˆ๋ฆฌํ•จ. + - **SSR (Server-Side Rendering):** ์„œ๋ฒ„์—์„œ ์™„์„ฑ๋œ HTML ์ „์†ก. ์ดˆ๊ธฐ LCP๊ฐ€ ๋น ๋ฅด๊ณ  SEO์— ๋งค์šฐ ์œ ๋ฆฌํ•จ. ๋‹จ, ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ฆ๊ฐ€ ๋ฐ ์ˆ˜ํ™”(Hydration) ์ง€์—ฐ ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ. + - **SSG (Static Site Generation):** ๋นŒ๋“œ ํƒ€์ž„์— ์ •์  ํŒŒ์ผ ์ƒ์„ฑ. ๊ฐ€์žฅ ๋น ๋ฅธ ์„ฑ๋Šฅ ์ œ๊ณต. ์ •์  ๋งˆ์ผ€ํŒ… ํŽ˜์ด์ง€์— ์ตœ์ . +- **ํ•ต์‹ฌ ์ง€ํ‘œ ์˜ํ–ฅ:** SSR์€ LCP(์ตœ๋Œ€ ์ฝ˜ํ…์ธ  ํŽ˜์ธํŒ…)๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ˜๋ฉด, CSR์€ TTI(์ƒํ˜ธ์ž‘์šฉ ์‹œ์ž‘ ์‹œ๊ฐ„) ์ดํ›„์˜ ํƒ์ƒ‰ ๊ฒฝํ—˜์„ ๊ฐ•ํ™”ํ•จ. +- **์˜์˜:** ๊ธฐ์ˆ ์  ์ œ์•ฝ์„ ๋„˜์–ด ๋น„์ฆˆ๋‹ˆ์Šค ์ˆ˜์ต(์ „ํ™˜์œจ)๊ณผ ์ง๊ฒฐ๋˜๋Š” ์ตœ์ ์˜ ๋ Œ๋”๋ง ์ „๋žต์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” CSR๊ณผ SSR ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ์ด๋ถ„๋ฒ•์  ๋…ผ๋ฆฌ๊ฐ€ ์ง€๋ฐฐ์ ์ด์—ˆ์œผ๋‚˜, ํ˜„์žฌ ์ •์ฑ…์€ Next.js ๋“ฑ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•ด ํŽ˜์ด์ง€/์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๋ Œ๋”๋ง ๋ฐฉ์‹์„ ํ˜ผํ•ฉํ•˜๋Š” 'ํ•˜์ด๋ธŒ๋ฆฌ๋“œ/์•„์ผ๋žœ๋“œ ์•„ํ‚คํ…์ฒ˜' ์ •์ฑ…์œผ๋กœ ์ง„ํ™”ํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ๊ณต์šฉ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•ด 'SSR-First'๋ฅผ ์›์น™์œผ๋กœ ํ•˜๋ฉฐ, ์ธ์ฆ๋œ ์˜์—ญ์— ํ•œํ•ด 'CSR-Hydration' ์ „๋žต์„ ๋ถ€๋ถ„์ ์œผ๋กœ ํ—ˆ์šฉํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[Core-Web-Vitals]], [[Nextjs-App-Router-Architecture]], [[Single-Page-Application-SPA]], [[SEO-Foundations]], [[Server-Side-Rendering-SSR]] +- **Raw Source:** [[00_Raw/Client-Side Rendering (CSR) vs Server-Side Rendering (SSR).md]]