StudioGo
์๋ฅ ์ฐฝ๊ณ ๊ธฐ๋ฐ ๋ผ์ด๋ธ์ปค๋จธ์ค ์คํ๋์ค ์์ฝ ํ๋ซํผ v1.5.0
๊ฐ์
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ํ๋ก ํธ์๋ | Expo SDK 52+ (React Native) + TypeScript strict + NativeWind v5 |
| ๋ฐฑ์๋ | Hono (Vercel Serverless) |
| DB | Neon PostgreSQL (์๋ฒ๋ฆฌ์ค) + Drizzle ORM |
| ์ธ์ฆ | ์นด์นด์ค ๋ก๊ทธ์ธ (๋ค์ดํฐ๋ธ + ์น OAuth) |
| ์๋ฆผ | ์นด์นด์ค ์๋ฆผํก + Expo Push Notification + ์ธ์ฑ ์๋ฆผ |
| ์ํ ๊ด๋ฆฌ | TanStack Query (์๋ฒ ์ํ) + Zustand (UI ์ํ) |
| ํผ ๊ฒ์ฆ | React Hook Form + Zod |
| ํธ์คํ | Vercel (API ์๋ฒ) + App Store / Google Play (๋ชจ๋ฐ์ผ ์ฑ) |
๋๋ฉ์ธ
- BJ(๋ฐฉ์ก์ธ/MEMBER): ์คํ๋์ค๋ฅผ ๋น๋ ค ๋ผ์ด๋ธ์ปค๋จธ์ค ๋ฐฉ์ก
- ์ฐฝ๊ณ ์ด์์(OPERATOR): ์์ฝ ์น์ธ, ์ฒดํฌ์ธ, ํฌ์ฅ/์ถ๊ณ ๊ด๋ฆฌ
- ๊ด๋ฆฌ์(ADMIN): ๋ชจ๋ ์ค์ , ๊ถํ, ์์คํ ์ ์ด
- ์คํ๋์ค: ํ์ ์์, ์์ฝ์ ์ด์
- ์ฌ๋กฏ: ์ด์์๊ฐ์ ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ๋๋ ์์ฝ ๋จ์
- Hold: ์์ฝ ์์๋ ์ค 2๋ถ๊ฐ ์ฌ๋กฏ ์์ ์ ์
์ฃผ์ ๊ธฐ๋ฅ
- ์คํ๋์ค ์์ฝ/์ทจ์
- ์ค์๊ฐ ์ฌ๋กฏ ํํฉ ์บ๋ฆฐ๋
- ์์ฝ ์น์ธ/๊ฑฐ์ (์ด์์)
- ์ฒดํฌ์ธ ์ฒ๋ฆฌ
- ์นด์นด์ค ์๋ฆผํก ์๋ ๋ฐ์ก
์ธ๋ถ ์ฐ๋
์นด์นด์ค ๋ก๊ทธ์ธ
๋ค์ดํฐ๋ธ ์ฑ๊ณผ ์น ํ๊ฒฝ ๋ชจ๋์์ ์นด์นด์ค OAuth ์ธ์ฆ์ ์ง์ํ๋ค.
| ํ๊ฒฝ | ๋ฐฉ์ |
|---|---|
| ๋ชจ๋ฐ์ผ (iOS/Android) | ์นด์นด์คํก ์ฑ ์ฐ๋ ๋ค์ดํฐ๋ธ OAuth |
| ์น | ์นด์นด์ค ์น OAuth ๋ฆฌ๋ค์ด๋ ํธ |
์นด์นด์ค ํ ํฐ์ ์๋ฒ ์ธก์์ ๊ฒ์ฆํ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ๋ฏผ๊ฐ ํ ํฐ์ ๋ ธ์ถํ์ง ์๋๋ค.
์นด์นด์ค ์๋ฆผํก
์นด์นด์ค ๋น์ฆ๋ฉ์์ง ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์์๊ฒ ์๋ ์๋ฆผ์ ๋ฐ์กํ๋ค.
| ์๋ฆผ ์ ํ | ๋ฐ์ก ์์ |
|---|---|
| ์์ฝ ํ์ธ | ์์ฝ ์น์ธ ์๋ฃ ์ |
| ์ทจ์ ์๋ด | ์์ฝ ์ทจ์ ์ฒ๋ฆฌ ์ |
| ์ด์ ์๋ฆผ | ์ฒดํฌ์ธ ๋ฆฌ๋ง์ธ๋, ์ฌ๋กฏ ๋ณ๊ฒฝ ๋ฑ ์ด์ ์ด๋ฒคํธ ๋ฐ์ ์ |
Expo Push Notification
์ฑ ๋ด ํธ์ ์๋ฆผ์ Expo Push Notification ์๋น์ค๋ก ์ ์กํ๋ค. ์นด์นด์ค ์๋ฆผํก๊ณผ ๋ณํํ์ฌ ์ฑ ์ค์น ์ฌ์ฉ์์๊ฒ๋ ์ธ์ฑ ์๋ฆผ๋ ๋์์ ์ ๋ฌ๋๋ค.
Neon PostgreSQL + Drizzle ORM
Neon PostgreSQL์ ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ์ ์ต์ ํ๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, Vercel Serverless ํจ์์์ ์ฝ๋ ์คํํธ ์์ด ์ฐ๊ฒฐํ๋ค. Drizzle ORM์ผ๋ก ํ์ ์์ ํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ฉฐ, ๋ง์ด๊ทธ๋ ์ด์ ์ Drizzle Kit์ผ๋ก ๊ด๋ฆฌํ๋ค.
ํ๋ก์ ํธ ๊ตฌ์กฐ
| ๋๋ ํ ๋ฆฌ | ์ญํ |
|---|---|
apps/mobile/ | Expo ์ฑ (app/ ๋ผ์ฐํธ, src/ ์์ค) |
apps/api/ | Hono API ์๋ฒ (routes โ services โ repositories) |
shared/domain/ | ์์ ๋น์ฆ๋์ค ๊ท์น (ํ๋ ์์ํฌ ์์กด ์์) |
shared/contracts/ | Zod ์คํค๋ง, DTO, enum (ํด๋ผ์ด์ธํธ-์๋ฒ ๊ณต์ ) |
shared/db/ | Drizzle ์คํค๋ง, ๋ง์ด๊ทธ๋ ์ด์ , ์๋ |
shared/constants/ | ๊ณต์ ์์ |
๋ฐฐํฌ
| ๋์ | ํ๋ซํผ | ์ค๋ช |
|---|---|---|
| API ์๋ฒ | Vercel | Hono ๊ธฐ๋ฐ Serverless Functions๋ก ์๋ ๋ฐฐํฌ |
| iOS ์ฑ | App Store | Expo EAS Build โ App Store Connect ์ ์ถ |
| Android ์ฑ | Google Play | Expo EAS Build โ Google Play Console ์ ์ถ |
๋งค๋ด์ผ
- ์ฌ์ฉ์ ๋งค๋ด์ผ โ BJ(๋ฐฉ์ก์ธ)/์ฑ ์ฌ์ฉ์์ฉ
- ์ด์์ ๋งค๋ด์ผ โ ์ฐฝ๊ณ ์ด์์์ฉ (์์ฝ ์น์ธ, ์ฒดํฌ์ธ, ์ถ๊ณ ๊ด๋ฆฌ)
- ๊ด๋ฆฌ์ ๋งค๋ด์ผ โ ์์คํ ๊ด๋ฆฌ์์ฉ