๋ผํด๋์ค ์์ ๋งค์นญ ์ฑ โ ์์ ํ๊ณ ์ฆ๊ฑฐ์ด ๋์ค ํํธ๋ ๋ฐ ๋ชจ์ ๋งค์นญ
"Shall We?"๋ ๋ผํด๋์ค๋ฅผ ์ฌ๋ํ๋ ์ฌ๋๋ค์ด ์์ ํ๊ณ ์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ์์ ํํธ๋์ ๋ชจ์์ ์ฐพ์ ์ ์๋๋ก ๋์์ฃผ๋ ์์ ๋งค์นญ ํ๋ซํผ์ ๋๋ค.
- ๐๏ธ ๋์ค ๋ชจ์ ์์ฑ ๋ฐ ์ฐธ์ฌ - ์ด์ฌ, ๋ฐ์ฐจํ, ํค์ข๋ฐ ๋ฑ ๋ค์ํ ์ฅ๋ฅด๋ณ ๋ชจ์
- ๐ฅ ๋น ๋ฅธ ํํธ๋ ๋งค์นญ - ๋ ๋ฒจ๊ณผ ์ ํธ๋ ๊ธฐ๋ฐ ์ค์๊ฐ ๋งค์นญ
- ๐ ์ธ์ฆ ์์คํ - ํ์ ์๊ฐ์ฆ, ๋ํธํ ์ธ์ฆ์ผ๋ก ์ ๋ขฐ์ฑ ํ๋ณด
- ๐ ์ฅ์ ๋๋ ํ ๋ฆฌ - ๋ฐ, ํด๋ฝ, ํ์, ์ํฌ์ต ์ฅ์ ์ ๋ณด ์ ๊ณต
- ๐ฌ ์นด์นด์ค ์ฐ๋ - ์คํ์ฑํ ์๋ ์์ฑ ๋ฐ ์ฐ๊ฒฐ
- ๐ก๏ธ ์์ ๊ฐ์ด๋ - ์ ๊ณ /์ฐจ๋จ ์์คํ ๊ณผ ์์ ์ ์ฑ
- โญ ๋ฆฌ๋ทฐ ์์คํ - ์ฐธ๊ฐ์ ๊ฐ ํ๊ธฐ ๋ฐ ํ์ ์ผ๋ก ์ปค๋ฎค๋ํฐ ํ์ง ๊ด๋ฆฌ
- Framework: React Native + Expo
- UI/Styling: NativeWind (Tailwind CSS)
- Navigation: React Navigation 6
- State Management: TBD (Zustand/Redux Toolkit)
- Development: TypeScript + Biome
- Git Hooks: Husky + Commitlint + Commitizen
| ์ญํ | ์ค๋ช | ์ฃผ์ ๊ถํ |
|---|---|---|
| Guest | ์๋น์ค ๋๋ฌ๋ณด๊ธฐ | ๋๋ฉํ์ด์ง, ๋์๋ง ์ด๋ |
| Member | ๊ธฐ๋ณธ ํ์ | ๋ชจ์ ํ์/์ฐธ๊ฐ, ํ๋กํ ๊ด๋ฆฌ |
| Verified Member | ์ธ์ฆ๋ ํ์ | ๋ชจ์ ์์ฑ, ๊ฒ์ ์์ ๋ ธ์ถ |
| Host | ๋ชจ์ ์ฃผ์ต์ | ๋ชจ์ ๊ด๋ฆฌ, ์ฐธ๊ฐ์ ์น์ธ/๊ฑฐ์ |
| Admin/Moderator | ๊ด๋ฆฌ์ | ์ ๊ณ ์ฒ๋ฆฌ, ์ธ์ฆ ๊ฒ์, ์ ์ฌ |
- ํ(ํผ๋) (
/) - ์ถ์ฒ ๋ชจ์/ํํธ๋, ์ค๋์ ์ด๋ฒคํธ - ํ์ (
/discover) - ๋ชจ์/์ด๋ฒคํธ ํํฐ๋ง ๊ฒ์ - ๋น ๋ฅธ ๋งค์นญ (
/match/quick) - ์ฆ์ ํํธ๋/๊ทธ๋ฃน ์ถ์ฒ - ๋ชจ์ ์์ฑ (
/parties/new) - ์๋ก์ด ๋์ค ๋ชจ์ ๊ฐ์ค
- ํ๋กํ (
/profile/:username) - ๋ ๋ฒจ, ์ธ์ฆ, ํ๊ธฐ ํ์ธ - ์ธ์ฆ ์ผํฐ (
/verify) - ํ์/๋ํธํ ์ธ์ฆ ์ ๋ก๋ - ๋ด ๋ชจ์ (
/me/parties) - ์ฐธ๊ฐ/์ฃผ์ตํ ๋ชจ์ ๊ด๋ฆฌ
- ์ฅ์ ๋๋ ํ ๋ฆฌ (
/venues) - ๋ฐ/ํด๋ฝ/ํ์ ์ ๋ณด - ์๋ฆผํจ (
/notifications) - ๋งค์นญ/๋ชจ์ ์๋ฆผ - ํ๊ธฐ ์์ฑ (
/reviews/new) - ์ฐธ๊ฐ ํ ํ๊ฐ
- ์ ๊ณ /์ฐจ๋จ (
/safety/report) - ๋ถ์ ์ ํ ํ๋ ์ ๊ณ - ์ค์ (
/settings) - ๊ณต๊ฐ๋ฒ์, ์๋ฆผ ์ค์
- iOS (React Native)
- Android (React Native)
- Web (PWA ์ง์)
- Node.js 18+
- pnpm
- Expo CLI
- iOS Simulator (macOS) / Android Studio
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/amorfati0310/shall-we.git
cd shall-we
# ์์กด์ฑ ์ค์น
pnpm install
# ๊ฐ๋ฐ ์๋ฒ ์์
pnpm start
# ํ๋ซํผ๋ณ ์คํ
pnpm ios # iOS ์๋ฎฌ๋ ์ดํฐ
pnpm android # Android ์๋ฎฌ๋ ์ดํฐ
pnpm web # ์น ๋ธ๋ผ์ฐ์ ์ด ํ๋ก์ ํธ๋ Conventional Commits ๊ท์น์ ๋ฐ๋ฆ ๋๋ค.
# ๋ํ์ ์ปค๋ฐ (๊ถ์ฅ)
git cz
# ๋๋ ์๋ ์ปค๋ฐ
git commit -m "feat: add user authentication"
git commit -m "fix: resolve login button styling issue"- Linter: Biome
- Formatter: Biome
- Pre-commit: Husky + lint-staged
# ์ฝ๋ ํฌ๋งทํ
pnpm format
# ๋ฆฐํ
pnpm lint
# ์ ์ฒด ์ฒดํฌ
pnpm checkshall-we/
โโโ components/ # ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์ปดํฌ๋ํธ
โโโ screens/ # ํ๋ฉด ์ปดํฌ๋ํธ
โโโ navigation/ # ๋ค๋น๊ฒ์ด์
์ค์
โโโ hooks/ # ์ปค์คํ
ํ
โโโ lib/ # ์ ํธ๋ฆฌํฐ ํจ์
โโโ assets/ # ์ด๋ฏธ์ง, ํฐํธ ๋ฑ
โโโ App.tsx # ๋ฉ์ธ ์ฑ ์ปดํฌ๋ํธ
โโโ global.css # ์ ์ญ ์คํ์ผ
- ๐บ ํผ์ ๊ฐ๊ธฐ์ ์ด์ํ ๋ - ๋ฐ/ํด๋ฝ ํํฐ๋ ์ํฌ์ต์ ํจ๊ป ๊ฐ ์ฌ๋์ด ์์
- ๐ ๋ํธํ ์ผ์ ์ด ๋ง์ง ์์ ๋ - ๋ด ์ค์ผ์ค๊ณผ ๊ธฐ์กด ๋ชจ์ ์๊ฐ์ด ์ ๋ง์
- ๐ค ์๋ก์ด ํํธ๋๋ฅผ ๋ง๋๊ณ ์ถ์ ๋ - ๊ธฐ์กด ๋คํธ์ํฌ์ ์ ํ์ฑ ๊ทน๋ณต
- โก ์ฆํฅ์ ์ผ๋ก ์ถค์ถ๊ณ ์ถ์ ๋ - "์ค๋ ์ ๋ ๊ฐ์ด ์ถค์ถ ์ฌ๋ ์๋?"
| ๊ธฐ์กด ๋ฐฉ์ | ์ฅ์ | ๋จ์ |
|---|---|---|
| ๋ํธํ/ํ์ | ์์ ํ๊ณ ์ ๋ขฐ์ฑ ๋์ | ์ผ์ ์ ํ์ , ๋ฉค๋ฒ ๊ณ ์ |
| ์นด์นด์ค ์คํ์ฑํ | ์ฆ์ ์ ๊ทผ ๊ฐ๋ฅ | ์์ ์ฑ ๋ถ์กฑ, ๋งค์นญ ๋นํจ์จ |
| ์ง์ธ ์๊ฐ | ๋์ ์ ๋ขฐ๋ | ์ ํ์ ๋คํธ์ํฌ, ๋ถ๋ด๊ฐ |
"์์ ํ๋ฉด์๋ ์ฆํฅ์ ์ธ" ๋์ค ํํธ๋ ๋งค์นญ์ ํตํด:
- โ ์ฆ์ ๋งค์นญ - ์ค๋ ์ ๋ ์๋ ํํธ๋ ์ฐพ๊ธฐ ๊ฐ๋ฅ
- โ ์์ ๋ณด์ฅ - ์ธ์ฆ ์์คํ ๊ณผ ํ๊ธฐ๋ก ์ ๋ขฐ์ฑ ํ๋ณด
- โ ์ทจํฅ ๋ง์ถค - ๋ ๋ฒจ, ์ฅ๋ฅด, ์ ํธ๋ ๊ธฐ๋ฐ ์ถ์ฒ
- โ ๋ถ๋ด ์์ - ๊ฐ๋ฒผ์ด ๋์ค ๋ชจ์๋ถํฐ ๊น์ ์น๋ชฉ๊น์ง
- ๋งค์นญ ์ฑ๊ณต๋ฅ : ์ฑ ๋งค์นญ โ ์ค์ ๋ง๋จ ์ ํ์จ
- ์ฌ๋ฐฉ๋ฌธ์จ: ์ฒซ ์ฌ์ฉ ํ ์ผ์ฃผ์ผ ๋ด ์ฌ์ฌ์ฉ
- ๋ง์กฑ๋: ๋ชจ์ ํ๊ธฐ ํ์ 4.0+ ๋น์จ
- ์์ ์ง์: ์ ๊ณ /์ฐจ๋จ ๋น์จ ์ต์ํ
- โ ์์ด๋์ด ๊ฒ์ฆ ๋จ๊ณ: ๋ฐฉ๊ธ ๋ ์ฌ๋ฆฐ ์์ด๋์ด๋ก ๊ฒ์ฆ ์งํ ์ค
- โ ๊ธฐ์ ์คํ ๊ฒฐ์ : React Native + Expo ํ๊ฒฝ ๊ตฌ์ถ ์๋ฃ
- ๐ ์์ฅ ์กฐ์ฌ: ๋ผํด๋์ค ์ปค๋ฎค๋ํฐ ๋ด ๋์ฆ ํ์ธ ํ์
- ๐ MVP ์ค๊ณ: ์นด์นด์คํก ์ฐ๋ ์ค์ฌ์ ๋จ์ ๋งค์นญ ๊ธฐ๋ฅ
| ์ฃผ์ฐจ | ๋ชฉํ | ์์ธ ์์ |
|---|---|---|
| 1์ฃผ | ๊ธฐํ ๋ฐ ๊ฒ์ฆ | ํ๋ฉด ํ๋กํ ํ์ , ๋ํธํ ๋ด ๋์ฆ ํ์ธ |
| 2-3์ฃผ | ์คํ๋ฆฐํธ ๋ฐฑ๋ก๊ทธ ์์ฑ | ์๊ตฌ์ฌํญ ์ ์, ๊ธฐ๋ฅ ๋ช ์ธ, ์ค๊ณ |
| 4-6์ฃผ | MVP ๊ฐ๋ฐ | ํ๋กํ ๊ด๋ฆฌ, ๋ชจ์ ์์ฑ, ์นด์นด์คํก ์ฐ๋ |
์์ธํ ์ผ์ ์ WEEKLY_TODO.md๋ฅผ ์ฐธ๊ณ ํ์ธ์.
- ์์ฅ ๊ฒ์ฆ: "๋ํธํ ๋ง๊ณ ์ฑ์ผ๋ก ํํธ๋ ์ฐพ์ผ๋ฉด ์ด๋จ ๊ฒ ๊ฐ์?"
- ๊ธฐ์ ๊ฒ์ฆ: ์นด์นด์คํก API ์ฐ๋ ๋ฐฉ์ ๋ฆฌ์์น
- ๋น์ฆ๋์ค ๊ฒ์ฆ: ์์ตํ ๋ฐฉ์ ๊ตฌ์ฒดํ
- ๐ค ํ๋กํ ๊ด๋ฆฌ: ๋์ค ๊ฒฝ๋ ฅ, ์ ํธ ์ฅ๋ฅด, ์๊ธฐ์๊ฐ
- ๐ฌ ์นด์นด์คํก ์ฐ๋: ํ๋กํ ์ฐ๊ฒฐ ๋ฐ ์ธ์ฆ
- ๐ ๋ชจ์ ์์ฑ: ๋ ์ง/์๊ฐ/์ฅ์ ์ค์ ์ผ๋ก ๋ชจ์ ๊ฐ์ค
- ๐จ๏ธ ์คํ์ฑํ ๋ฐฉ ์๋ ๊ฐ์ค: ๋งค์นญ ์ฑ์ฌ ์ ์ฆ์ ์ฑํ ๋ฐฉ ์์ฑ
- ๐ฌ ์ค์๊ฐ ์ํต: ์ผ์ ์กฐ์จ, ๋ง๋จ ์ฅ์ ๊ณต์
- ๐ ์ค์ผ์ค ๊ด๋ฆฌ: ๋ง๋จ ์ ํ ์ํต ๋ฐ ํผ๋๋ฐฑ
- Trust First: ์ธ์ฆ๊ณผ ํ๊ธฐ ์์คํ ์ผ๋ก ์ ๋ขฐ ๊ตฌ์ถ
- Instant Gratification: 3๋ถ ๋ด ๋งค์นญ ์๋ฃ
- Community Driven: ์ฌ์ฉ์ ํผ๋๋ฐฑ ๊ธฐ๋ฐ ์ง์ ๊ฐ์
- Safety by Design: ๋ชจ๋ ๊ธฐ๋ฅ์ ์์ ์ฅ์น ๋ด์ฌ
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git cz) - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- GitHub Issues: ๋ฒ๊ทธ ๋ฆฌํฌํธ ๋ฐ ๊ธฐ๋ฅ ์์ฒญ
- Email: lyhy0310@gmail.com
amorfati0310 - GitHub
"๋ผํด๋์ค๋ฅผ ์ถ๊ณ ์ถ์ ๋, ๋๋ ์๋ก์ด ํํธ๋์ ์ด์ธ๋ฆฌ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ์์ ํ๊ฒ ์ฐ๊ฒฐ๋์ด ์ฆ๊ฑฐ์ด ์๊ฐ์ ๋ณด๋ด๊ณ ์ถ๋ค."
"Shall we dance?" - ์ธ์ ๋ ์ง, ๋๊ตฌ๋ ์ง, ์์ ํ๊ฒ ๐๐บ