- TripTalk๋ React Native์ Expo Router ๊ธฐ๋ฐ์ ์ฌํ ๊ณํยท๊ณต์ ๋ชจ๋ฐ์ผ ์ฑ์ ๋๋ค.
- ์ฌ์ฉ์๋ ์ฌํ ๊ณํ ์์ฑ, AI ์ฌํ ํ๋๋, ์ฌํ ๊ธฐ๋ก ๊ด๋ฆฌ, ์น๊ตฌ์์ ์ ๋ณด ๊ณต์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์์ต๋๋ค.
- ํ์๊ฐ์ /๋ก๊ทธ์ธ, ์จ๋ณด๋ฉ
- ํ: ์ถ์ฒ ์ฌํ์ง, ํ ๋ง๋ณ ์ฌํ์ง, ๋ฐฐ๋
- AI ์ฌํ ํ๋๋: 5๋จ๊ณ ๋ง์ถค ์ฌํ ์ผ์ ์์ฑ, AI ์ฑ๋ด
- ์ฌํ ์ ์ฅ์: ์์ /์๋ฃ ์ฌํ ๊ด๋ฆฌ, ์์ธ ์ผ์ ยท๊ฐ๊ฒฉยทํ์ด๋ผ์ดํธ ์ ๊ณต
- ๋ง์ดํ์ด์ง: ํ๋กํ, ์ฌํ ํต๊ณ, ๋ฑ์ง, ๊ณ์ ์ค์
- ์ฌํ ์ ๋ณด ๊ณต์ (๋ฉ์์ง, ๋งํฌ, ์นด์นด์คํก ๋ฑ)
- ํ๋ ์์ํฌ: React Native, Expo
- ๋ผ์ฐํ : Expo Router (ํ์ผ ๊ธฐ๋ฐ)
- ์ธ์ด: TypeScript
- ์ํ ๊ด๋ฆฌ: React Hooks
- UI/UX: SafeAreaView, ์ปค์คํ ํ ๋ง ์ปดํฌ๋ํธ
- ์ด๋ฏธ์ง/์์ด์ฝ: Expo Image, Unsplash API, Expo Vector Icons
- ๊ธฐํ: ์ปค์คํ ํ , ๊ณตํต ์ปดํฌ๋ํธ, TypeScript ํ์ ์๊ฒฉ ์ ์ฉ
์ฌํ ๊ณํ๊ณผ ์ถ์ต์ ๊ณต์ ํ๋ ๋ชจ๋ฐ์ผ ์ฑ
TripTalk๋ React Native์ Expo Router๋ก ๊ฐ๋ฐ๋ ์ฌํ ๊ด๋ฆฌ ๋ฐ ๊ณต์ ํ๋ซํผ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฌํ ๊ณํ์ ์ธ์ฐ๊ณ , ์๋ฃ๋ ์ฌํ์ ๊ด๋ฆฌํ๋ฉฐ, ์น๊ตฌ๋ค๊ณผ ์ฌํ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ ์ข ํฉ ์ฌํ ์ฑ์ ๋๋ค.
- ์์ ํ๋ฉด ๋ฐ ์จ๋ณด๋ฉ ํํ ๋ฆฌ์ผ
- ์ด๋ฉ์ผ ๊ธฐ๋ฐ ํ์๊ฐ์ (3๋จ๊ณ)
- ๋ก๊ทธ์ธ ๋ฐ ์ฝ๊ด ๋์
- ์ฌํ ์ถ์ฒ ์นด๋ ๋ฐ ๋ฐฐ๋
- ์ธ๊ธฐ ์ฌํ์ง ์๊ฐ (์ ์ฃผ๋, ๋ถ์ฐ, ํ๋ฆฌ, ๋ด์ ๋ฑ)
- ์นดํ ๊ณ ๋ฆฌ๋ณ ์ฌํ ์ํ ํ์
- AI ์ฌํ ํ๋๋ ๋ฐ๋ก๊ฐ๊ธฐ
- 5๋จ๊ณ ์ฌํ ๊ณํ ์ค์ (๋ํ์, ์ถ๋ฐ์ง/๋ชฉ์ ์ง, ๋ ์ง, ์คํ์ผ, ์์ฐ)
- AI ์ฑ๋ด๊ณผ ๋ํํ ์ฌํ ์ผ์ ์์ฑ
- ๋ง์ถคํ ์ฌํ ์ถ์ฒ
- ๊ณํ ์๋ฃ: ์์ ๋ ์ฌํ ๋ชฉ๋ก ๊ด๋ฆฌ
- ์ฌํ ์๋ฃ: ์๋ฃ๋ ์ฌํ ๊ธฐ๋ก ๋ณด๊ด
- ์ฌํ ์นด๋ ํํ์ ์ง๊ด์ ์ธ UI
- ์์ธ๋ณด๊ธฐ๋ฅผ ํตํ ์ผ์ ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด ํ์ธ
- ๋ ์ง๋ณ ์์ธ ์ผ์ ํ์
- ๊ฐ๊ฒฉ ์ ๋ณด (ํญ๊ณต๋ฃ, ์๋ฐ๋น, ์๋น ๋ฑ)
- ์ฌํ ํ์ด๋ผ์ดํธ ๋ฐ ์ถ์ฒ ํฌ์ธํธ
- ์์ ๊ณต์ ๊ธฐ๋ฅ
- ๋ฉ์์ง๋ก ๊ณต์ ํ๊ธฐ
- ๋งํฌ ๊ณต์ ํ๊ธฐ
- ์นด์นด์คํก์ผ๋ก ๊ณต์
- ์ฌํ ์ ๋ณด ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์นด๋
- ์ธ๊ธฐ ๋
ธ์ ์๋ ์กฐํ
- ๊ตญ๋ด: ๊นํฌโ์ ์ฃผ, ๊นํฌโ๋ถ์ฐ
- ์ผ๋ณธ: ์ธ์ฒโ๋์ฟ/์ค์ฌ์นด/ํ์ฟ ์ค์นด ๋ฑ
- ๊ธฐํ: ๋ฐฉ์ฝ, ์ฑ๊ฐํฌ๋ฅด, ํ์ฝฉ, ๋ด์, ํ๋ฆฌ ๋ฑ 20๊ฐ ๋ ธ์
- ์ปค์ ๊ธฐ๋ฐ ๋ฌดํ์คํฌ๋กค (ํ์ด์ง ์ฌ์ด์ฆ 10๊ฐ)
- ์ถ์ฒ ์์ ์กฐํ
- 18๊ฐ ๋์ ร 3๊ฐ ํธํ
- ๋ค์ํ ์ฒดํฌ์ธ/์ฒดํฌ์์ ๋ ์ง
- ์ปค์ ๊ธฐ๋ฐ ๋ฌดํ์คํฌ๋กค
- ํ
๋ง๋ณ ์กฐํ
- NATURE (์์ฐ)
- SEA (๋ฐ๋ค)
- CULTURE (๋ฌธํ)
- HEALING (ํ๋ง)
- HISTORY (์ญ์ฌ)
- ์ปค์ ๊ธฐ๋ฐ ๋ฌดํ์คํฌ๋กค (ํ์ด์ง ์ฌ์ด์ฆ 10๊ฐ)
- ๊ฐ์ธ ํ๋กํ ๊ด๋ฆฌ
- ์ฌํ ํต๊ณ (์๋ฃํ ์ฌํ, ๊ณํ ์ค์ธ ์ฌํ, ์ ๋ฆฝ ํฌ์ธํธ)
- ๋ฑ์ง ์์คํ (์ฒซ ์ฌํ, ์๊ฐ ๋ง๋์, ํ๋ฒ๊ฐ ๋ฑ)
- ๊ณ์ ์ค์ ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ณ๊ฒฝ
- Frontend: React Native
- ๋ผ์ฐํ : Expo Router v6 (ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ )
- ์ธ์ด: TypeScript
- UI/UX: SafeAreaView, Custom Themed Components
- ์ํ ๊ด๋ฆฌ: React Hooks (useState)
- ์ด๋ฏธ์ง: Expo Image, Unsplash API
- ์์ด์ฝ: Expo Vector Icons (Material Icons)
TripTalk/
โโโ app/ # ์ฑ ๋ผ์ฐํ
๋ฐ ํ๋ฉด
โ โโโ _layout.tsx # ๋ฃจํธ ๋ ์ด์์
โ โโโ index.tsx # ์ฑ ์ง์
์ (โ auth/start ๋ฆฌ๋ค์ด๋ ํธ)
โ โโโ modal.tsx # ๋ชจ๋ฌ ํ๋ฉด
โ โ
โ โโโ auth/ # ๐ ๋ก๊ทธ์ธ/ํ์๊ฐ์
โ โ โโโ _layout.tsx
โ โ โโโ start.tsx # ์์ ํ๋ฉด
โ โ โโโ onboarding1.tsx # ์จ๋ณด๋ฉ
โ โ โโโ login.tsx # ๋ก๊ทธ์ธ
โ โ โโโ signup-step1.tsx # ํ์๊ฐ์
1๋จ๊ณ
โ โ โโโ signup-step2.tsx # ํ์๊ฐ์
2๋จ๊ณ
โ โ โโโ signup-step3.tsx # ํ์๊ฐ์
3๋จ๊ณ
โ โ
โ โโโ (tabs)/ # ๐ฑ ํญ ๋ค๋น๊ฒ์ด์
โ โ โโโ _layout.tsx # ํญ ๋ ์ด์์
โ โ โโโ index.tsx # ํ ํ๋ฉด
โ โ โโโ explore.tsx # ์ ์ฅ์ ํ๋ฉด
โ โ โโโ Mypage.tsx # ๋ง์ดํ์ด์ง ํ๋ฉด
โ โ
โ โโโ home/ # ๐ ํ ๊ด๋ จ ์๋ธํ๋ฉด
โ โ โโโ _layout.tsx
โ โ โโโ destinations.tsx # ์ฌํ์ง ๋ชฉ๋ก
โ โ โโโ accommodation.tsx # ํญ๊ณต & ์๋ฐ
โ โ
โ โโโ ai-chat/ # ๐ค AI ์ฌํ ํ๋๋
โ โ โโโ _layout.tsx
โ โ โโโ plan-trip.tsx # ์ฌํ ๊ณํ 1๋จ๊ณ
โ โ โโโ plan-trip-step2.tsx # ์ฌํ ๊ณํ 2๋จ๊ณ
โ โ โโโ plan-trip-step3.tsx # ์ฌํ ๊ณํ 3๋จ๊ณ
โ โ โโโ plan-trip-step4.tsx # ์ฌํ ๊ณํ 4๋จ๊ณ
โ โ โโโ plan-trip-step5.tsx # ์ฌํ ๊ณํ 5๋จ๊ณ
โ โ โโโ chat.tsx # AI ์ฑํ
ํ๋ฉด
โ โ
โ โโโ repository/ # ๐ ์ ์ฅ์ ๊ด๋ จ (ํ์ฅ์ฉ)
โ โ โโโ _layout.tsx
โ โ
โ โโโ mypage/ # ๐ค ๋ง์ดํ์ด์ง ๊ด๋ จ (ํ์ฅ์ฉ)
โ โ โโโ _layout.tsx
โ โ
โ โโโ travel/ # โ๏ธ ์ฌํ ์์ธ
โ โโโ [id].tsx # ๋์ ์ฌํ ์์ธ ํ๋ฉด
โ
โโโ components/ # ์ฌ์ฌ์ฉ ์ปดํฌ๋ํธ
โ โโโ home/ # ํ ๊ด๋ จ ์ปดํฌ๋ํธ
โ โ โโโ AccommodationCard.tsx
โ โ โโโ AIBanner.tsx
โ โ โโโ DestinationCard.tsx
โ โ โโโ DestinationListCard.tsx
โ โ โโโ SectionHeader.tsx
โ โ โโโ TabSelector.tsx
โ โโโ repository/ # ์ ์ฅ์ ๊ด๋ จ ์ปดํฌ๋ํธ
โ โ โโโ TabSelector.tsx # ํญ ์ ํ๊ธฐ
โ โ โโโ TravelCard.tsx # ์ฌํ ์นด๋
โ โ โโโ TravelDetailHeader.tsx # ์์ธ ํค๋
โ โ โโโ DaySchedule.tsx # ์ผ์ ์ปดํฌ๋ํธ
โ โ โโโ PriceInfo.tsx # ๊ฐ๊ฒฉ ์ ๋ณด
โ โ โโโ ShareModal.tsx # ๊ณต์ ๋ชจ๋ฌ
โ โโโ shared/ # ๊ณตํต ์ปดํฌ๋ํธ
โ โโโ CollapsibleTheme.tsx # ์ ์ด์ ํ
๋ง ์ ํ
โ โโโ themed-text.tsx # ํ
๋ง ํ
์คํธ
โ โโโ themed-view.tsx # ํ
๋ง ๋ทฐ
โ โโโ ui/ # UI ์ปดํฌ๋ํธ
โ
โโโ constants/ # ์์ ์ ์
โ โโโ theme.ts # ํ
๋ง ์์
โโโ hooks/ # ์ปค์คํ
ํ
โ โโโ use-color-scheme.ts
โ โโโ use-theme-color.ts
โโโ assets/ # ์ด๋ฏธ์ง ๋ฐ ์ ์ ํ์ผ
โโโ images/
git clone https://github.com/TripTalk/FE.git
cd TripTalknpm installnpx expo start์คํ ํ ๋ค์ ์ต์ ๋ค์ ์ ํํ ์ ์์ต๋๋ค:
- i: iOS ์๋ฎฌ๋ ์ดํฐ์์ ์ด๊ธฐ
- a: Android ์๋ฎฌ๋ ์ดํฐ์์ ์ด๊ธฐ
- w: ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๊ธฐ
- r: ์ฑ ์๋ก๊ณ ์นจ
- m: ๊ฐ๋ฐ์ ๋ฉ๋ด ํ ๊ธ
# ๊ฐ๋ฐ ์๋ฒ ์์
npm start
# ์บ์ ํด๋ฆฌ์ด ํ ์์
npx expo start --clear
# TypeScript ํ์
์ฒดํฌ
npx tsc --noEmit
# ํ๋ก์ ํธ ๋ฆฌ์
(์ด๊ธฐ ์ํ๋ก)
npm run reset-project- Primary: #4ECDC4 (ํฐ์ฝ์ด์ฆ)
- Background: #F8F9FA (๋ผ์ดํธ ๊ทธ๋ ์ด)
- Text Primary: #333333
- Text Secondary: #666666
- Card Background: #FFFFFF
- Border Radius: 12px (์นด๋), 16px (๋ฐฐ๋)
- Shadow: elevation 3-4, shadowOpacity 0.1
- Typography: ์์คํ ํฐํธ, 14-24px ๋ฒ์
app/ํด๋์ ์ ํ์ผ ์์ฑ- Expo Router์ ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ ํ์ฉ
SafeAreaView๋ก ์์ ์์ญ ์ฒ๋ฆฌ
- ์ ์ ํ
components/ํ์ ํด๋์ ์์ฑ - TypeScript ์ธํฐํ์ด์ค ์ ์
ThemedText,ThemedViewํ์ฉ ๊ถ์ฅ
// ์ธ์ฆ ๊ด๋ จ
router.push('/auth/start');
router.push('/auth/login');
router.push('/auth/signup-step1');
// ํญ ๋ค๋น๊ฒ์ด์
router.push('/(tabs)'); // ํ
router.push('/(tabs)/explore'); // ์ ์ฅ์
router.push('/(tabs)/Mypage'); // ๋ง์ดํ์ด์ง
// ํ ์๋ธํ๋ฉด
router.push('/home/destinations');
router.push('/home/accommodation');
// AI ์ฌํ ํ๋๋
router.push('/ai-chat/plan-trip');
router.push('/ai-chat/chat');
// ์ฌํ ์์ธ
router.push('/travel/123');
// ๋ชจ๋ฌ
router.push('/modal');npx expo start --clearrm -rf node_modules
npm install
npx expo start --clear- Xcode๊ฐ ์ต์ ๋ฒ์ ์ธ์ง ํ์ธ
- iOS ์๋ฎฌ๋ ์ดํฐ๊ฐ ์คํ ์ค์ธ์ง ํ์ธ
- ํฐ๋ฏธ๋์์
iํค ๋ค์ ์ ๋ ฅ
- iOS: 13.0 ์ด์
- Android: API 21 (Android 5.0) ์ด์
- Web: ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ง์
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ผ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ ๊ด๋ จ ๋ฌธ์์ฌํญ์ด ์์ผ์๋ฉด GitHub Issues๋ฅผ ํตํด ์ฐ๋ฝํด์ฃผ์ธ์.
TripTalk - ์ฌํ์ ์์๋ถํฐ ๋๊น์ง, ํจ๊ปํ๋ ์ฌํ ๋๋ฐ์ ๐