Widgets Layer
여러 features와 entities를 조합한 독립적인 UI 블록입니다.
구조
각 위젯은 다음 구조를 따릅니다:
widgets/
└── [widget-name]/
├── ui/ # UI 컴포넌트
├── model/ # 상태 관리 (선택적)
├── lib/ # 유틸리티 함수 (선택적)
└── index.ts # Public API
예시
// widgets/header/ui/header.tsx
export function Header() {
// 헤더 UI (로고, 네비게이션, 사용자 메뉴 등)
}
// widgets/header/index.ts
export { Header } from "./ui/header";
규칙
- 여러 Features와 Entities를 조합할 수 있습니다
- 다른 Widgets에 직접 의존하면 안 됩니다
- 독립적으로 작동할 수 있어야 합니다
- 페이지 레벨 레이아웃 컴포넌트로 사용됩니다