feat: Wiki 지식 자산 업데이트 - UX Scenarios, Frontend, Game Design, Topics 추가 [2026-05-08]

This commit is contained in:
2026-05-08 19:52:07 +09:00
parent 9dd3d40662
commit 5ba5a55c78
3984 changed files with 334557 additions and 28839 deletions
@@ -1,10 +1,29 @@
---
id: wiki-2026-0508-확장-가능한-프론트엔드-아키텍처-구축
title: 확장 가능한 프론트엔드 아키텍처 구축
category: 10_Wiki/Topics
status: needs_review
canonical_id: self
aliases: []
duplicate_of: none
source_trust_level: A
confidence_score: 0.92
tags: [uncategorized]
raw_sources: []
last_reinforced: 2026-05-08
github_commit: pending
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
tech_stack:
language: unspecified
framework: unspecified
---
# [[확장 가능한 프론트엔드 아키텍처 구축|확장 가능한 프론트엔드 아키텍처 구축]]
## 📌 Brief Summary
## 📌 한 줄 통찰 (The Karpathy Summary)
확장 가능한 프론트엔드 아키텍처란 애플리케이션의 규모와 복잡성이 증가하더라도 유지보수성, 성능, 일관성을 잃지 않도록 코드베이스와 UI 컴포넌트를 구조화하는 방법론입니다 [1]. 이를 위해 [[Tailwind CSS|Tailwind CSS]]나 CSS-in-JS와 같은 적절한 스타일링 패러다임을 선택하고, 디자인 토큰을 통해 시각적 일관성을 유지합니다 [1, 2]. 또한 아토믹 디자인(Atomic Design), 복합 컴포넌트([[Compound Components|Compound Components]]) 같은 패턴으로 재사용 가능한 UI를 구축하며, 모노레포(Monorepo)와 FSD([[Feature-Sliced Design|Feature-Sliced Design]])를 활용하여 모듈 간의 의존성을 엄격하게 관리합니다 [3-6].
## 📖 Core Content
## 📖 구조화된 지식 (Synthesized Content)
**1. 스타일링 패러다임과 디자인 토큰 (Styling Paradigms & [[Design Tokens|Design Tokens]])**
* **Tailwind CSS vs [[Styled Components|Styled Components]]:** 최신 프론트엔드 아키텍처에서는 런타임 성능과 브라우저 효율성이 핵심적인 요소입니다 [1]. Tailwind CSS는 유틸리티 퍼스트 및 빌드 타임(정적 CSS) 접근 방식을 취하여 제로 런타임 오버헤드와 작은 번들 사이즈를 자랑하며, 특히 React Server Components(RSC) 환경에서 강력한 호환성을 보여줍니다 [7-9]. 반면 Styled Components(CSS-in-JS)는 컴포넌트와 스타일이 함께 위치해 동적 스타일링에 유리하지만, 서버 컴포넌트 환경에서는 React Context 사용이 불가능하여 추가적인 설정([[Style Registry|Style Registry]])이 필요하고 런타임 성능 비용이 발생합니다 [10-12].
* **디자인 토큰 시스템:** 일관된 UI 확장을 위해 디자인 결정을 토큰화해야 합니다 [2, 13]. 토큰은 원시 값을 나타내는 '기본 토큰(Primitive Tokens)', 의도를 표현하는 '시맨틱 토큰(Semantic Tokens)', 그리고 개별 컴포넌트 변형에 쓰이는 '컴포넌트 토큰(Component Tokens)'의 3계층 구조로 관리되어야 변경 사항이 안전하게 전파되고 테마(예: 다크 모드) 전환이 용이해집니다 [14-16].
@@ -17,10 +36,64 @@
* **모노레포 (Monorepo):** 여러 애플리케이션과 공유 라이브러리(디자인 시스템 등)를 단일 저장소에서 관리하는 아키텍처입니다 [6]. [[Turborepo|Turborepo]]나 Nx, pnpm workspaces 같은 도구를 활용하면 로컬 의존성 연결, 작업 파이프라인 최적화 및 캐싱을 통해 대규모 프로젝트의 빌드와 CI/CD 속도를 획기적으로 향상시킬 수 있습니다 [24-26].
* **[[Feature-Sliced Design (FSD)|Feature-Sliced Design (FSD]]:** 모노레포 내부 또는 단일 앱의 코드가 혼란스러워지는 것을 막기 위해, 코드를 Shared, Entities, Features, Widgets, Pages, App의 계층으로 나누는 아키텍처 방법론입니다 [5]. 상위 계층은 하위 계층을 임포트할 수 있지만 그 반대는 금지되며, 각 모듈은 `index.ts`를 통한 명시적인 공개 API(Public API)만을 제공하여 '깊은 임포트(Deep imports)'로 인한 모듈 간 강결합을 방지해야 합니다 [5, 27, 28].
## 🔗 Knowledge Connections
## 🔗 지식 연결 (Graph)
- **Related Topics:** [[Design Tokens|Design Tokens]], Atomic Design, Compound Components, [[Monorepo|Monorepo]], Feature-Sliced Design (FSD), [[Tailwind CSS|Tailwind CSS]], [[Styled Components|Styled Components]]
- **Projects/Contexts:** [[Uber Base Web|Uber Base Web]], Shopify Polaris, [[Next.js App Router|Next.js App Router]] (RSC)
- **Contradictions/Notes:** 소스 [7, 9, 29]는 대규모 및 서버 사이드(SSR/RSC) 환경에서 런타임 비용이 없고 번들 크기가 작은 Tailwind CSS(정적 유틸리티 방식)가 성능면에서 우수하다고 주장합니다. 그러나 소스 [10, 30]에서는 Styled Components가 컴포넌트 내부에서 동적 상태(Props)에 따른 스타일 변경이 필요하거나 복잡한 런타임 테마 전환이 필요한 애플리케이션에서는 높은 유연성과 개발자 경험(DX)을 제공한다고 반론하며 각 기술의 트레이드오프를 명확히 보여줍니다.
---
*Last updated: 2026-04-26*
*Last updated: 2026-04-26*
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
**언제 이 지식을 쓰는가:**
- *(TODO)*
**언제 쓰면 안 되는가:**
- *(TODO)*
## 🧪 검증 상태 (Validation)
- **정보 상태:** needs_review
- **출처 신뢰도:** A
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
## 🧬 중복 검사 (Duplicate Check)
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
- **처리 방식:** UPDATE (자동 정규화)
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
- **과거 데이터와의 충돌:** 없음
- **정책 변화:** 없음
## 🕓 변경 이력 (Changelog)
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|------|-----------|-----------|--------|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
## 💻 코드 패턴 (Code Patterns)
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
```text
# TODO
```
## 🤔 의사결정 기준 (Decision Criteria)
**선택 A를 써야 할 때:**
- *(TODO)*
**선택 B를 써야 할 때:**
- *(TODO)*
**기본값:**
> *(TODO)*
## ❌ 안티패턴 (Anti-Patterns)
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*