|
1 | | -# 28th-Web-Team-3-Fe |
| 1 | + |
2 | 2 |
|
3 | | -얍 팀3 프론트엔드 레포입니다. |
| 3 | +# YAPP 28th Web Team 3 |
| 4 | + |
| 5 | +목표 금액을 정하고, 주간 절약 미션을 실천하며 저축을 이어가는 서비스의 프론트엔드 모노레포입니다. |
| 6 | + |
| 7 | +## Features |
| 8 | + |
| 9 | +- 목표 금액과 기간 설정, 월별 저축 현황 확인 |
| 10 | +- 소비 습관을 바탕으로 한 주간 절약 미션 생성·관리 |
| 11 | +- 청년 금융 혜택과 절약 팁 탐색·저장 |
| 12 | +- WebView 기반 네이티브 앱과 웹 간 브리지 연동 |
| 13 | +- 문의와 서비스 데이터를 위한 내부 어드민 |
| 14 | + |
| 15 | +## Tech stack |
| 16 | + |
| 17 | +- Web: Next.js 16, React 19, Tailwind CSS 4 |
| 18 | +- Native: Expo 57, React Native 0.86, React Native WebView |
| 19 | +- Data: TanStack Query, ky, Zod |
| 20 | +- Tooling: pnpm, Turborepo, TypeScript, Biome, Vitest, Playwright |
| 21 | + |
| 22 | +## Repository structure |
| 23 | + |
| 24 | +```text |
| 25 | +apps/ |
| 26 | + web/ 사용자 웹 애플리케이션 |
| 27 | + native/ 웹을 제공하는 Expo 기반 네이티브 셸 |
| 28 | + admin/ 내부 관리용 웹 애플리케이션 |
| 29 | +packages/ |
| 30 | + api/ HTTP 클라이언트와 QueryClient |
| 31 | + bridge/ 웹·네이티브 브리지 계약 |
| 32 | + schema/ API 요청·응답 스키마 |
| 33 | + ui/ 공용 UI 컴포넌트와 디자인 토큰 |
| 34 | + config/ 공용 TypeScript·Biome 설정 |
| 35 | +``` |
| 36 | + |
| 37 | +## Getting started |
| 38 | + |
| 39 | +Node.js `24.18.0`과 pnpm `11.8.0`이 필요합니다. |
| 40 | + |
| 41 | +```bash |
| 42 | +pnpm install |
| 43 | +cp apps/web/.env.example apps/web/.env.local |
| 44 | +pnpm web |
| 45 | +``` |
| 46 | + |
| 47 | +웹 앱은 기본적으로 `http://localhost:3000`에서 실행됩니다. 로컬 백엔드는 `apps/web/.env.local`의 `BACKEND_API_URL`에서 설정합니다. |
| 48 | + |
| 49 | +## Commands |
| 50 | + |
| 51 | +| Command | Description | |
| 52 | +| --- | --- | |
| 53 | +| `pnpm dev` | 모든 워크스페이스 개발 서버 실행 | |
| 54 | +| `pnpm web` | 웹 앱 개발 서버 실행 | |
| 55 | +| `pnpm native` | Expo 개발 클라이언트 실행 | |
| 56 | +| `pnpm ios` / `pnpm android` | iOS 또는 Android 앱 실행 | |
| 57 | +| `pnpm build` | 워크스페이스 빌드 | |
| 58 | +| `pnpm lint` | Biome 검사 | |
| 59 | +| `pnpm typecheck` | TypeScript 검사 | |
| 60 | +| `pnpm test` | Vitest 테스트 실행 | |
| 61 | +| `pnpm --filter web test:e2e` | 웹 E2E 테스트 실행 | |
| 62 | + |
| 63 | +## Development |
| 64 | + |
| 65 | +코드 작성 규칙과 API 레이어 구조는 [코드 컨벤션](docs/code-conventions.md)에서 확인할 수 있습니다. 공용 UI의 디자인 토큰과 사용 방법은 [`packages/ui/DESIGN.md`](packages/ui/DESIGN.md)에 정리되어 있습니다. |
0 commit comments