Skip to content

Kernel360/KFE3-e2e-dibtp

Repository files navigation

μ§€μ—­ 기반 μ€‘κ³ κ±°λž˜ κ²½λ§€ ν”Œλž«νΌ

μ‹€μ‹œκ°„ κ²½λ§€ μ‹œμŠ€ν…œμ„ ν™œμš©ν•œ μ§€μ—­ 기반 쀑고 거래 ν”Œλž«νΌ

Next.js TypeScript Tailwind CSS Supabase

πŸ“‹ ν”„λ‘œμ νŠΈ κ°œμš”

μ‹€μ‹œκ°„ κ²½λ§€ μ‹œμŠ€ν…œμ„ ν™œμš©ν•œ μ§€μ—­ 기반 쀑고 거래 ν”Œλž«νΌμž…λ‹ˆλ‹€. μ‚¬μš©μžμ˜ μœ„μΉ˜λ₯Ό 기반으둜 μ£Όλ³€ μƒν’ˆμ„ μΆ”μ²œν•˜κ³ , μ‹€μ‹œκ°„ μ±„νŒ…μ„ 톡해 μ›ν™œν•œ 거래 μ†Œν†΅μ„ μ§€μ›ν•©λ‹ˆλ‹€.

μ£Όμš” νŠΉμ§•

  • λͺ¨λ°”일 μš°μ„  λ°˜μ‘ν˜• λ””μžμΈ
  • Kakao Map APIλ₯Ό ν™œμš©ν•œ μœ„μΉ˜ 기반 μ„œλΉ„μŠ€
  • Supabaseλ₯Ό ν†΅ν•œ μ•ˆμ •μ μΈ λ°±μ—”λ“œ 인프라

개발 μ§„ν–‰ 단계

  • 1μ°¨ λΆ€νŠΈμ—… (2μ‘°, 7일): κΈ°λ³Έ ν”„λ‘œμ νŠΈ ꡬ쑰, 초기 μ„€μ • 및 μ»΄ν¬λ„ŒνŠΈ κ΅¬ν˜„
  • 2μ°¨ λΆ€νŠΈμ—… (3μ‘°, 3일): κΈ°λ³Έ ν”„λ‘œμ νŠΈ ꡬ쑰 및 μ»΄ν¬λ„ŒνŠΈ κ°œμ„ 
  • E2E ν”„λ‘œμ νŠΈ (5μ‘°, 3μ£Ό): MVP κΈ°λŠ₯ κ΅¬ν˜„ 및 배포

✨ μ£Όμš” κΈ°λŠ₯

πŸ” μ‚¬μš©μž 인증 및 계정 관리

  • Supabase Authλ₯Ό ν†΅ν•œ μ•ˆμ „ν•œ νšŒμ›κ°€μž…/둜그인
  • 이메일 인증 기반 계정 생성
  • μ‚¬μš©μž ν”„λ‘œν•„ 관리 및 μœ„μΉ˜ μ„€μ •

πŸ“ μœ„μΉ˜ 기반 μ„œλΉ„μŠ€

  • Kakao Map APIλ₯Ό ν™œμš©ν•œ μ‹€μ‹œκ°„ 지도 ν‘œμ‹œ
  • 지역별 μƒν’ˆ 필터링 및 μΆ”μ²œ
  • μ£Όμ†Œ 검색 및 μžλ™ μ™„μ„± κΈ°λŠ₯
  • μ‚¬μš©μž μœ„μΉ˜ 기반 거리 계산

πŸ›’ μƒν’ˆ 관리 μ‹œμŠ€ν…œ

  • 직관적인 μƒν’ˆ 등둝 폼 (제λͺ©, μ„€λͺ…, 가격 λ“±)
  • 닀쀑 이미지 μ—…λ‘œλ“œ 및 관리 (Supabase Storage)
  • μƒν’ˆ μΉ΄ν…Œκ³ λ¦¬ 및 νƒœκ·Έ μ‹œμŠ€ν…œ
  • μƒν’ˆ λͺ©λ‘ 쑰회 및 상세 νŽ˜μ΄μ§€
  • μƒν’ˆ 검색 및 필터링 κΈ°λŠ₯

πŸ”¨ μ‹€μ‹œκ°„ κ²½λ§€ μ‹œμŠ€ν…œ

  • ν•˜ν–₯식 κ²½λ§€ μ‹œμŠ€ν…œ
  • 30λΆ„λ§ˆλ‹€ λ‹¨μœ„ κ°€κ²©λ§ŒνΌ μž…μ°°κ°€ μžλ™ ν•˜λ½
  • μž…μ°°κ°€ ν•˜λ½ 타이머 μΉ΄μš΄νŠΈλ‹€μš΄
  • ν˜„μž¬ μž…μ°°κ°€ μ‹€μ‹œκ°„ μ—…λ°μ΄νŠΈ

πŸ’¬ μ‹€μ‹œκ°„ μ±„νŒ…

  • μƒν’ˆλ³„ μ±„νŒ…λ°© μžλ™ 생성
  • μ‹€μ‹œκ°„ λ©”μ‹œμ§€ μ†‘μˆ˜μ‹ 
  • μ±„νŒ… μ°Έμ—¬μž λͺ©λ‘ ν‘œμ‹œ
  • μ±„νŒ… λ‚΄μ—­ μ €μž₯ 및 쑰회

πŸ“± μ‚¬μš©μž κ²½ν—˜

  • λͺ¨λ°”일 μš°μ„  λ°˜μ‘ν˜• λ””μžμΈ
  • 직관적인 λ„€λΉ„κ²Œμ΄μ…˜ μ‹œμŠ€ν…œ
  • λ‘œλ”© μƒνƒœ 및 μŠ€μΌˆλ ˆν†€ UI
  • μ—λŸ¬ 핸듀링 및 μ‚¬μš©μž ν”Όλ“œλ°±

πŸš€ 기술 μŠ€νƒ

Frontend

  • Framework: Next.js v15 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS v4
  • State Management: TanStack Query (React Query)
  • UI Components: Storybook
  • Form Validation: Zod

Backend & Database

  • Database: PostgreSQL (Supabase)
  • ORM: Prisma
  • Authentication: Supabase Auth
  • File Storage: Supabase Storage
  • Server Actions: Next.js Server Actions

Development Tools

  • Monorepo: Turborepo v2
  • Package Manager: pnpm
  • Code Quality: ESLint, Prettier
  • Git Hooks: Lefthook
  • Commit Convention: Commitlint
  • CI/CD: Vercel

External APIs

  • Maps: Kakao Map API
  • Geocoding: Kakao Geocoder API

πŸ—οΈ ν”„λ‘œμ νŠΈ ꡬ쑰

REPO
β”œβ”€ apps/
β”‚  β”œβ”€ docs/                       # Storybook λ¬Έμ„œ
β”‚  └─ web/                        # 메인 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜
β”‚     β”œβ”€ app/                     # Next.js App Router
β”‚     β”‚  β”œβ”€ (auth-pages)/         # 인증 νŽ˜μ΄μ§€ (둜그인/νšŒμ›κ°€μž…)
β”‚     β”‚  β”œβ”€ (home)/               # ν™ˆ νŽ˜μ΄μ§€
β”‚     β”‚  β”œβ”€ (pages)/              # μ£Όμš” κΈ°λŠ₯ νŽ˜μ΄μ§€
β”‚     β”‚  └─ api/                  # API 라우트
β”‚     β”œβ”€ components/              # μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈ
β”‚     β”œβ”€ hooks/                   # μ»€μŠ€ν…€ ν›…
β”‚     β”œβ”€ lib/                     # 라이브러리 μ„€μ •
β”‚     β”œβ”€ services/                # λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
β”‚     └─ types/                   # TypeScript νƒ€μž… μ •μ˜
└─ packages/
   └─ ui/                        # 곡톡 UI μ»΄ν¬λ„ŒνŠΈ 라이브러리

μ‹œμž‘ν•˜κΈ°

1. ν™˜κ²½ μ„€μ •

# μ˜μ‘΄μ„± μ„€μΉ˜
pnpm install

# ν™˜κ²½ λ³€μˆ˜ μ„€μ • (apps/web/.env.local)
# .env.local νŒŒμΌμ— ν•„μš”ν•œ ν™˜κ²½ λ³€μˆ˜ μž…λ ₯

2. 개발 μ„œλ²„ μ‹€ν–‰

# 루트 μœ„μΉ˜μ—μ„œ λͺ¨λ“  μ•± 개발 μ„œλ²„ μ‹€ν–‰
pnpm run dev

# λ˜λŠ” κ°œλ³„ μ•± μ‹€ν–‰
cd apps/web && pnpm dev  # μ›Ή μ•± (포트 3001)

3. μŠ€ν† λ¦¬λΆ μ‹€ν–‰

# λͺ¨λ“  μŠ€ν† λ¦¬λΆ μ‹€ν–‰
pnpm run storybook

# κ°œλ³„ μŠ€ν† λ¦¬λΆ μ‹€ν–‰
pnpm storybook:web  # μ›Ή μ•± μŠ€ν† λ¦¬λΆ (포트 6008)
pnpm storybook:ui   # UI νŒ¨ν‚€μ§€ μŠ€ν† λ¦¬λΆ

πŸ”§ μ£Όμš” λͺ…λ Ήμ–΄

# 개발 μ„œλ²„ μ‹€ν–‰
pnpm run dev

# λΉŒλ“œ
pnpm run build

# μ½”λ“œ ν’ˆμ§ˆ 검사
pnpm run lint
pnpm run check-types

# μŠ€ν† λ¦¬λΆ
pnpm run storybook

πŸ“ˆ 개발 ν˜„ν™© 및 λ‘œλ“œλ§΅

졜근 μ£Όμš” μ—…λ°μ΄νŠΈ

[μ‹€μ‹œκ°„ κ²½λ§€ μ‹œμŠ€ν…œ κ΅¬ν˜„]

  • κ²½λ§€ μƒνƒœλ³„ 타이머 μ œμ–΄ 및 가격 계산 둜직 μ™„μ„±
  • μž…μ°° μ‹œμŠ€ν…œ 및 λ‚™μ°° 처리 κΈ°λŠ₯ κ΅¬ν˜„
  • μ‹€μ‹œκ°„ 가격 변동 및 κ²½λ§€ μ’…λ£Œ UI κ°œμ„ 

[μ„±λŠ₯ μ΅œμ ν™” 및 인증 μ‹œμŠ€ν…œ κ°œμ„ ]

  • μΏ ν‚€ 기반 인증으둜 쀑볡 인증 κ³Όμ • 제거
  • 미듀웨어 μ΅œμ ν™”λ‘œ νŽ˜μ΄μ§€ λ‘œλ”© 속도 ν–₯상
  • 이미지 μ΅œμ ν™” 및 Next.js Image μ»΄ν¬λ„ŒνŠΈ μ „ν™˜

ν–₯ν›„ λ‘œλ“œλ§΅

Phase 1: 핡심 κΈ°λŠ₯ μ™„μ„±

  • μ‚¬μš©μž 인증
  • μœ„μΉ˜ 기반 μƒν’ˆ μΆ”μ²œ κΈ°λŠ₯
  • ν™œλ™ 톡계

Phase 2: 고도화 κΈ°λŠ₯

  • μ‹€μ‹œκ°„ μ•Œλ¦Ό μ‹œμŠ€ν…œ
  • 필터링 고도화
  • μ‚¬μš©μž 리뷰 μ‹œμŠ€ν…œ

Phase 3: μ΅œμ ν™” 및 배포

  • μ„±λŠ₯ μ΅œμ ν™” 및 μ„œλ²„ 캐싱
  • μ‚¬μš©μž ν…ŒμŠ€νŠΈ 및 ν”Όλ“œλ°± μˆ˜μ§‘
  • μƒμš© μ„œλΉ„μŠ€ 배포 μ€€λΉ„

πŸ‘₯ κ°œλ°œνŒ€ (5μ‘°)

μ–‘λͺ…κ·œ μž„λ™κΈ° κΉ€κΈˆλž€
@mgYang53 @Jiiker @goldegg127

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 12