You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tailwind 스타일로 구성해 커스터마이징이 쉽고, 디자인 시스템 일관성을 유지할 수 있음
Lucide Icons
일관된 아이콘 세트
Tailwind CSS 4
빠른 스타일링, 클래스 정렬 자동화 (Prettier 플러그인)
Developer Experience
기술
선택 이유
Storybook 9
컴포넌트 단위 개발/문서화
ESLint + Prettier + Husky
일관된 코드 품질 유지
🚀 빠른 시작
사전 요구사항
Node.js 20.x 이상
npm 또는 yarn
설치 및 실행
# 1. 저장소 클론
git clone https://github.com/your-username/zoopzoop.git
cd zoopzoop
# 2. 의존성 설치
npm install
# 3. 환경 변수 설정
cp .env.example .env.local
# 4. 개발 서버 실행
npm run dev
브라우저에서 http://localhost:3000 열기
⚙️ 환경 변수
.env.local 파일을 생성하고 아래 항목을 설정합니다.
# 백엔드 API 엔드포인트
API_URL=https://api.example.com
# Liveblocks 서버 키 (서버 전용)
NEXT_LIVEBLOCKS_SECRET_KEY=sk_liveblocks_xxx
변수
설명
API_URL
백엔드 API 베이스 URL
NEXT_LIVEBLOCKS_SECRET_KEY
Liveblocks 서버 인증용 시크릿 키 (/api/liveblocks-auth 사용)
📦 사용 가능한 스크립트
npm run dev # 개발 서버 실행 (Turbopack)
npm run build # 프로덕션 빌드
npm run start # 프로덕션 서버 시작
npm run lint # ESLint 검사
npm run format # Prettier 포맷 적용
npm run storybook # Storybook 서버 실행
npm run build-storybook # Storybook 정적 빌드
📁 폴더 구조 (Feature-Sliced Design)
src/
├── app/ # Next.js App Router, 전역 Provider
├── features/ # 사용자 액션 단위 (로그인, 업로드 등)
├── entities/ # 도메인 모델, 상태, 타입 (User, Archive, Space 등)
├── widgets/ # 독립 UI 블록 (Header, Sidebar 등)
└── shared/ # 공용 컴포넌트, 유틸, 타입, 라이브러리