GlobalNomadλ νλμ κ³μ μΌλ‘ νλ§€μμ 체νμ μν μ λͺ¨λ μνν μ μλ 체ν κΈ°λ° μμ½ νλ«νΌμ λλ€.
μ¬μ©μκ° μ²΄ν μνμ μ§μ λ±λ‘ν΄ νλ§€μκ° λ μ μμΌλ©°, λμμ λ€λ₯Έ μ¬μ©μμ 체νμ μμ½νλ 체νμλ‘λ νλν μ μμ΅λλ€.
νμκ°μ & λ‘κ·ΈμΈ μ²΄ν λ±λ‘ λ° κ΄λ¦¬ (νλ§€μ) 체ν νμ & μμ½ (체νμ) μμ½ μν κ΄λ¦¬ λ§μ΄νμ΄μ§ 리뷰 & μλ¦Ό
- Next.js 16.0.3 - React κΈ°λ° νμ€ν νλ μμν¬ (App Router, Server Actions)
- React 19.2.0 - μ¬μ©μ μΈν°νμ΄μ€ κ΅¬μΆ (React Compiler μ μ©)
- TypeScript 5 - μ μ νμ κ²μ¬
- Tailwind CSS 4 - μ νΈλ¦¬ν° νΌμ€νΈ CSS νλ μμν¬
- tailwind-variants - νμ μμ ν variant κ΄λ¦¬
- clsx & tailwind-merge - μ‘°κ±΄λΆ ν΄λμ€ λ³ν©
- Pretendard Font - νκ΅μ΄ μ΅μ ν ν°νΈ
- ESLint 9 - μ½λ νμ§ κ΄λ¦¬
- Prettier - μ½λ ν¬λ§·ν
- Husky - Git hooks μλν
- Vercel - μλ λ°°ν¬ νκ²½
- λ°°ν¬ URL: https://global-nomad-alpha.vercel.app/
- ν리뷰 λ°°ν¬ - PR μμ± μ 미리보기 νκ²½ μλ μμ±
| μ΄λ¦ | λ΄λΉ μ 무 |
|---|---|
| κΆνμ± | 체νμμΈ, κ³μ μ€μ , λ²νΌ, λ΄ μ 보 νμ΄μ§ μ 체 λ μ΄μμ |
| μ‘°λν | λ‘κ·ΈμΈ/νμκ°μ , μ μμν, ν€λ/νΈν°, λͺ¨λ¬, μμ½ λ΄μ, μμ½ νν© |
| κΉμ€μ΄ | μΈν, μ¬μ΄λλ©λ΄, λλ‘λ€μ΄, μΊλ¦°λμ , λ±μ§ |
| μ μ±ν | 체ν μΉ΄λ, μμ½ μΉ΄λ, λ΄ μ²΄ν κ΄λ¦¬ μΉ΄λ, κ²μ κΈ°λ₯, λ©μΈ νμ΄μ§ |
GLOBALNOMAD/
βββ src/
β βββ app/
β β βββ (auth)/
β β β βββ activities/
β β β β βββ [activityId]/
β β β β β ββ edit/
β β β β β
β β β β ββ create
β β β β
β β β βββ mypage/
β β β β βββ activities/
β β β β βββ my-profile/
β β β β βββ reservation-status/
β β β β βββ reservations/
β β β β βββ layout
β β β β ββ MypageLayout
β β β β
β β β ββ layout
β β βββ public/
β β β βββ login/
β β β βββ oauth/
β β β β βββ signup/
β β β β β βββ kakao/
β β β βββ signup/
β β β βββ layout
β β βββ activities/
β β β βββ [activityId]/
β β β βββ layout
β β βββ api/
β β β βββ activities/
β β β β βββ [activityId]/
β β β β β βββ reservations/
β β β β βββ image/
β β β βββ login/
β β β βββ logout/
β β β βββ my-activities/
β β β β βββ[activityId]/
β β β βββ my-notifications/
β β β β βββ[notificationId]/
β β β βββ my-reservations/
β β β β βββ [reservationId]/
β β β βββ refresh/
β β β βββ signup/
β β β βββ token/
β β β βββ users/
β β β β βββ me/
β β β β β βββ image/
β β βββ favicon.ico
β β βββ globals.css
β β βββ layout
β β βββ aseets/
β βββ components/
β β βββ Button/
β β βββ Calendar/
β β βββ Card/
β β βββ Dropdown/
β β β βββ base/
β β βββ Header/
β β βββ Footer/
β β βββ Modal/
β β βββ Notification/
β β βββ Pagination/
β β βββ Input/
β β βββ Popover/
β β βββ Reservation/
β β βββ Search/
β β βββ SideMenu/
β βββ features/
β β βββ ActivityCreate
β β β βββ api/
β β β βββ components/
β β β βββ hooks/
β β β βββ types.ts
β β β βββ utils/
β β βββ mainpage/
β β β βββ activities.ts
β β β βββ components/
β β βββ myActivities/
β β β βββ api/
β β β βββ mock/
β β β βββ type.ts
β β βββ mypage
β β β βββ reservation-status/
β β β β βββ hooks/
β β β βββ reservations/
β β β β βββ components/
β β β β βββ hooks/
β β β β βββ mocks/
β β β β βββ utils/
β β β βββ services/
β β βββ notification/
β β β βββ hooks/
β βββ lib/
β β βββ api/
β β βββ hooks/
β β βββ server/
β βββ types/
β βββ styles/
βββ eslint.config.mjs
βββ .prettierrc
βββ package.json
- Node.js 18.0.0 μ΄μ
- pnpm
-
μ μ₯μ ν΄λ‘
git clone cd GlobalNomad -
μμ‘΄μ± μ€μΉ
pnpm install
-
νκ²½ λ³μ μ€μ
νλ‘μ νΈ λ£¨νΈμ
.envνμΌμ μμ±νκ³ λ€μ λ΄μ©μ μΆκ°νμΈμ:
NEXT_PUBLIC_API_URL=https://sp-globalnomad-api.vercel.app/19-7 NEXT_PUBLIC_BASE_URL=http://localhost:3000/
NEXT_PUBLIC_KAKAO_MAP_API_KEY=53bbfc0c7bdd02c4fee2f9d5ddfd301a
4. **κ°λ° μλ² μ€ν**
```bash
pnpm run dev
- λΈλΌμ°μ μμ νμΈ
http://localhost:3000
pnpm run dev # κ°λ° μλ² μ€ν
pnpm run build # νλ‘λμ
λΉλ
pnpm run start # νλ‘λμ
μλ² μ€ν
pnpm run lint # ESLint κ²μ¬
pnpm run lint:fix # ESLint μλ μμ
pnpm run format # Prettier ν¬λ§·ν
pnpm run format:check # Prettier κ²μ¬λ§ μ€ν
pnpm run type-check # TypeScript νμ
κ²μ¬νλ‘μ νΈλ Next.js App Routerμ Route Handlersλ₯Ό μ¬μ©νμ¬ λ°±μλ APIλ₯Ό ꡬνν©λλ€.