모던하고 클린한, MZ세대를 위한 신세대 커뮤니티
- Node.js 18+
- npm 9+
npm installnpm run devhttp://localhost:3000에서 확인하세요.
npm run build
npm run start- Framework: Next.js 16 (App Router)
- Language: TypeScript 5
- Styling: TailwindCSS 4
- State: Zustand, React Query
- Icons: Lucide React
- Animation: Framer Motion
src/
├── app/ # Next.js App Router
│ ├── globals.css # 글로벌 스타일 및 디자인 토큰
│ ├── layout.tsx # 루트 레이아웃
│ └── page.tsx # 홈 페이지
├── components/ # UI 컴포넌트 (Atomic Design)
│ ├── atoms/ # 기본 UI 요소 (Button, Input, etc.)
│ ├── molecules/ # 복합 컴포넌트
│ ├── organisms/ # 섹션 컴포넌트 (Header, Sidebar, etc.)
│ └── templates/ # 페이지 레이아웃
├── contexts/ # React Context
│ └── ThemeContext.tsx # 테마 상태 관리
├── hooks/ # 커스텀 훅
├── lib/ # 유틸리티 함수
│ └── utils.ts # 공통 유틸리티
├── constants/ # 상수
├── types/ # TypeScript 타입
└── styles/ # 추가 스타일
- 라이트/다크 테마 지원 (시스템 설정 연동)
- 반응형 디자인 (Mobile First)
- 접근성 (WCAG 2.1 AA 준수)
- 디자인 시스템 기반 일관된 UI
- Primary: Blue (#3B82F6)
- Gray Scale: 50-950
- Semantic: Success, Warning, Error, Info
| 이름 | 범위 | 레이아웃 |
|---|---|---|
| Mobile | < 640px | 1컴럼, 하단 탭 |
| Tablet | 640-1023px | 1컴럼, 하단 탭 |
| Desktop | 1024-1279px | 사이드바 + 콘텐츠 |
| Wide | ≥ 1280px | 3컴럼 |
- Atoms: Button, Input, Avatar, Badge, ThemeToggle
- Organisms: Header, Sidebar, BottomNav
- Templates: MainLayout
npm run dev # 개발 서버
npm run build # 프로덕션 빌드
npm run start # 프로덕션 서버
npm run lint # ESLint 검사Private