Skip to content

Latest commit

ย 

History

History
73 lines (60 loc) ยท 2.4 KB

File metadata and controls

73 lines (60 loc) ยท 2.4 KB

Next.js(App Router) ํ…œํ”Œ๋ฆฟ

  • ๊ฐœ์ธ์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ๋งŒ๋“  ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ
  • Next.js(App Router) + React + TypeScript + Tailwind ๊ธฐ๋ฐ˜ SPA/SSR ํ˜ผํ•ฉ ํ”„๋กœ์ ํŠธ์šฉ

์ข…์†์„ฑ

stacks

- Next.js 16+ (App Router)
- tailwindcss 4.0
- pnpm
- @tanstack/react-query
- react
- typescript
- zod
- zustand
- axios

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

src/
 โ”œโ”€ app/              # Next.js App Router ํŽ˜์ด์ง€ & ๋ ˆ์ด์•„์›ƒ
 โ”‚   โ”œโ”€ layout.tsx    # ์ „์ฒด ๋ ˆ์ด์•„์›ƒ
 โ”‚   โ”œโ”€ page.tsx      # ํ™ˆ ํŽ˜์ด์ง€
 โ”‚   โ””โ”€ (routes)/     # URL ๊ตฌ์กฐ๋ณ„ ๊ทธ๋ฃน ๋ ˆ์ด์•„์›ƒ & ํŽ˜์ด์ง€
 โ”œโ”€ apis/             # API ๊ด€๋ จ ์ฝ”๋“œ (์•„๋ž˜ ์ฐธ๊ณ )
 โ”œโ”€ components/       # ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์ปดํฌ๋„ŒํŠธ
 โ”œโ”€ constants/        # ์ „์—ญ ์ƒ์ˆ˜
 โ”‚   โ”œโ”€ path.ts       # URL ๋ผ์šฐํŒ… ์ƒ์ˆ˜
 โ”‚   โ””โ”€ query-keys.ts # React Query ์ฟผ๋ฆฌ ํ‚ค ๋ชจ์Œ
 โ”œโ”€ hooks/            # ์ปค์Šคํ…€ ํ›…
 โ”œโ”€ layouts/          # ํŽ˜์ด์ง€/์„น์…˜ ๋ ˆ์ด์•„์›ƒ
 โ”œโ”€ lib/              # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜ ๋ชจ์Œ
 โ”œโ”€ stores/           # Zustand ์ „์—ญ ์ƒํƒœ
 โ”œโ”€ styles/           # ์ „์—ญ ์Šคํƒ€์ผ
 โ””โ”€ types/            # ์•ฑ ์ „์—ญ ํƒ€์ž… ์ •์˜

apis/ ๊ทœ์น™

apis/
 โ”œโ”€ auth/          # ๋„๋ฉ”์ธ ๋‹จ์œ„ (ex. ์ธ์ฆ)
 โ”‚  โ”œโ”€ dto/        # API ์š”์ฒญ/์‘๋‹ต ์Šคํ‚ค๋งˆ (zod)
 โ”‚  โ”œโ”€ queries/    # GET ์š”์ฒญ
 โ”‚  โ””โ”€ mutations/  # POST, PUT, DELETE ์š”์ฒญ
 โ””โ”€ instance.ts    # Axios ๊ณตํ†ต ์ธ์Šคํ„ด์Šค (์ธ์ฆ, ์—๋Ÿฌ ํ•ธ๋“ค๋ง, ์žฌ์‹œ๋„ ๋กœ์ง ํฌํ•จ)
  • ๋„๋ฉ”์ธ ๋‹จ์œ„: /auth, /user, /post ์ฒ˜๋Ÿผ ์„œ๋ฒ„ API ๊ธฐ์ค€์œผ๋กœ ํด๋” ๋ถ„๋ฆฌ
  • dto/: ์„œ๋ฒ„์™€ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…/์Šคํ‚ค๋งˆ ์ •์˜
  • queries/ vs mutations/: React Query์˜ ์šฉ๋„์— ๋งž๊ฒŒ API ํ˜ธ์ถœ ๋ถ„๋ฆฌ
  • instance.ts: ์ธ์ฆ ํ—ค๋”, 401 ๋ฆฌํ”„๋ ˆ์‹œ ๋กœ์ง ๋“ฑ ํฌํ•จ

์‹œ์ž‘

pnpm install
pnpm run dev

ํŠน์ง•

  • App Router ๊ธฐ๋ฐ˜์œผ๋กœ ๋ ˆ์ด์•„์›ƒ, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ์šฉ์ด
  • React Query + Axios ์กฐํ•ฉ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ ๊ฐ„ํŽธ
    • Next.js๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ์–ด์„œ React Query์˜ ์‚ฌ์šฉ์€ ์šฐ์„  ํด๋ผ์ด์–ธํŠธ์—๋งŒ ์ง‘์ค‘ํ•  ์˜ˆ์ •
  • TailwindCSS 4.x + TypeScript ์™„์ „ ํ†ตํ•ฉ
  • Zustand๋กœ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ
  • ๋ชจ๋“ˆ ๋‹จ์œ„ ํด๋” ๊ตฌ์กฐ๋กœ ์œ ์ง€๋ณด์ˆ˜ ํŽธ๋ฆฌ
โšก