51 lines
3.9 KiB
Markdown
51 lines
3.9 KiB
Markdown
---
|
|
id: 5e8f4a2b-1c9d-4e8b-a2f3-7d9e1c6b4a2d
|
|
category: Dev
|
|
confidence_score: 0.95
|
|
tags: [react, frontend, engineering, standard, 2025, performance, architecture]
|
|
last_reinforced: 2026-05-01
|
|
github_commit: "initial-wikification"
|
|
---
|
|
|
|
# Modern React & Frontend Engineering Standard (2025)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> 2025년의 프론트엔드 엔지니어링은 단순한 UI 개발을 넘어, FSD 아키텍처, 빌드 타임 자동화(React Compiler), 그리고 목적별로 파편화된 상태 관리 체계를 통해 확장성과 안정성을 극대화하는 정교한 분산 시스템 엔지니어링으로 진화했다.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
|
|
### 1. 확장 가능한 아키텍처: Feature-Sliced Design (FSD)
|
|
- **계층적 구조화**: `app` -> `pages` -> `widgets` -> `features` -> `entities` -> `shared` 순의 레이어링을 통해 관심사를 분리한다.
|
|
- **단방향 의존성**: 상위 레이어는 하위 레이어만 참조할 수 있도록 강제하여 순환 참조를 원천 차단하고 모듈 간 결합도를 낮춘다.
|
|
- **Public API (index.ts)**: 각 슬라이스는 `index.ts`를 통해서만 외부와 소통하여 내부 구현을 캡슐화한다.
|
|
|
|
### 2. 상태 관리의 전문화 및 파편화
|
|
- **서버 상태**: TanStack Query (React Query)를 사용하여 캐싱, 동기화, 비동기 상태를 전담 관리한다.
|
|
- **전역 애플리케이션 상태**: Zustand를 활용하여 Selector 기반의 세밀한 리렌더링 제어를 수행하며, Redux는 복잡도가 극도로 높은 대규모 협업 환경에서만 제한적으로 채택한다.
|
|
- **로컬 및 UI 상태**: `useState`, `useReducer`, 또는 정적인 설정값의 경우 `Context API`를 적재적소에 배치한다.
|
|
|
|
### 3. 성능 엔지니어링 (Build & Runtime)
|
|
- **Vite & ESM**: 기존 번들러 대비 비약적으로 빠른 HMR과 개발 서버 속도를 보장한다.
|
|
- **React Compiler**: 빌드 타임에 AST 분석을 통해 `useMemo`, `useCallback` 등을 자동으로 주입하여 수동 메모이제이션의 오버헤드를 제거한다.
|
|
- **코드 스플리팅**: `React.lazy`와 Vite의 `manualChunks` 설정을 통해 라우트 단위로 번들을 쪼개어 초기 로딩 속도(LCP)를 개선한다.
|
|
|
|
### 4. 운영 회복성 및 거버넌스
|
|
- **Error Boundaries**: 특정 컴포넌트의 런타임 에러가 전체 앱 중단(White Screen)으로 번지지 않도록 구획별로 안전장치를 배치한다.
|
|
- **Observability**: Sentry, LogRocket 등을 연동하여 실제 사용자의 세션 리플레이 및 에러 로그를 실시간 모니터링한다.
|
|
- **엄격한 컨벤션**: `kebab-case`(파일명), `PascalCase`(컴포넌트), `camelCase`(훅/변수) 네이밍을 자동화 훅(Husky, ESLint)으로 강제한다.
|
|
|
|
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
|
- **메모이제이션의 함정**: `React.memo`의 얕은 비교 비용이 실제 렌더링 비용보다 클 수 있으므로, React Profiler 측정 없는 무분별한 최적화는 지양해야 한다.
|
|
- **FSD vs Flat Structure**: 소규모 프로젝트에서는 FSD가 오버엔지니어링이 될 수 있으며, 팀의 숙련도에 따라 `shared` 레이어 비대화 문제가 발생할 수 있다.
|
|
- **Compiler 블랙박스**: 자동 최적화가 동작하지 않는 엣지 케이스(불안정한 참조 반환 등)에 대한 개발자의 수동 대응 패턴이 여전히 필요하다.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- **Parent**: 10_Wiki/Topics/Development
|
|
- **Related**: [[Feature-Sliced Design|Feature-Sliced Design]], Zustand, [[React Compiler|React Compiler]], [[Error Boundaries|Error Boundaries]]
|
|
- **Raw Source**: 00_Raw/2025 프론트엔드 엔지니어링 표준 확립, 00_Raw/대규모 React 애플리케이션 개발, 00_Raw/Modern React Application Development (2025)
|
|
|
|
## 💻 GitHub 동기화 자동화 워크플로우
|
|
1. Stage: git add .
|
|
2. Commit: `git commit -m "[P-Reinforce] Wikify Modern React Engineering Standard 2025"`
|
|
3. Push: `git push origin main`
|