Skip to content

UIverse-Team/UIverse-FE

Repository files navigation

πŸ’« [TEAM] UIverse / Fast Campus Devcamp Final Project


νŒ€ μ†Œκ°œ

μ•ˆλ…•ν•˜μ„Έμš” μ €ν¬λŠ” νŒ€ UIVerseμž…λ‹ˆλ‹€. UIverseλž€ 개발과 λ””μžμΈμ΄ μ‘°ν™”λ‘œμš΄ μš°μ£ΌλΌλŠ” 의미λ₯Ό λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€.

UIVerseλŠ” λͺ¨λ“  μ‚¬λžŒλ“€μ˜ κ°œμΈν™”λœ μ‡Όν•‘ κ²½ν—˜μ„ λ§Œλ“€μ–΄ λ‚˜κ°€κΈ° μœ„ν•΄ λ…Έλ ₯ν•©λ‹ˆλ‹€.


νŒ€μ›

Frontend Frontend Frontend
λ°•μ§„ν˜„ μ–‘λͺ…κ·œ μ΅œμ˜μ• 
Backend Backend Backend Backend Backend
κ³½μ§„ν˜Έ μ§€ν•œμ–Ό μž₯병쀑 λ°•μ†Œμœ€ λ°•μ˜μ—°
UXUI UXUI
λ‚˜μ†Œλ‚˜ ν•œμ€μ„œ

ν”„λ‘œμ νŠΈ μ†Œκ°œ

Ora μ˜€λŠ˜λ„, 내일도, 였라

OraλŠ” μ΄νƒˆλ¦¬μ•„μ–΄λ‘œ "μ§€κΈˆ"을 λœ»ν•©λ‹ˆλ‹€.

νŽΈλ¦¬ν•˜κ³  λΉ λ₯΄κ²Œ μ‡Όν•‘ν•˜κ³ μž ν•˜λŠ” μ†ŒλΉ„μžλ“€μ—κ²Œ μ˜€λΌλŠ” μ–Έμ œλ‚˜ μ—΄λ €μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

μ˜€λΌλŠ” 고객 데이터 μˆ˜μ§‘κ³Ό 뢄석을 톡해 μ‚¬μš©μž λ§žμΆ€ν˜• μ‡Όν•‘ κ²½ν—˜μ„ μ œκ³΅ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜λŠ” μ‡Όν•‘ ν”Œλž«νΌμž…λ‹ˆλ‹€.


μ—­ν•  λΆ„λ‹΄

πŸ§‘β€πŸ’»λ°•μ§„ν˜„ @rondido

  • Storybook chromatic 배포λ₯Ό ν†΅ν•œ λ””μžμ΄λ„ˆ ν˜‘μ—… κ°•ν™”ν™”

  • 메인 νŽ˜μ΄μ§€

    • 였늘의 νŠΉκ°€, 인기순, μ‹€μ‹œκ°„ 검색 ν‚€μ›Œλ“œ, 리뷰 순 κΈ°λŠ₯ κ΅¬ν˜„
  • μƒν’ˆ

    • μƒν’ˆ 상세 νŽ˜μ΄μ§€
  • μž₯λ°”κ΅¬λ‹ˆ κΈ°λŠ₯ κ΅¬ν˜„

    • λΉ„νšŒμ›, νšŒμ› μž₯λ°”κ΅¬λ‹ˆ κΈ°λŠ₯ κ΅¬ν˜„
  • μ£Όλ¬Έ

    • λΉ„νšŒμ› μ£Όλ¬Έ, νšŒμ› μ£Όλ¬Έ, μž₯λ°”κ΅¬λ‹ˆμ—μ„œ μ£Όλ¬Έ κΈ°λŠ₯ κ΅¬ν˜„

πŸ§‘β€πŸ’»μ–‘λͺ…κ·œ @mgYang53

  • λ””μžμΈ μ‹œμŠ€ν…œ

    • Tailwindcss 곡톡 μ„€μ • (λ ˆμ΄μ•„μ›ƒ, breakpoints, μœ ν‹Έλ¦¬ν‹° 클래슀)
    • νƒ€μ΄ν¬κ·Έλž˜ν”Ό 및 색상 μ‹œμŠ€ν…œ μ„€μ •
    • svgr ν”ŒλŸ¬κ·ΈμΈ μ„€μ • 및 μ•„μ΄μ½˜ μ»΄ν¬λ„ŒνŠΈ 생성
    • λͺ¨λ°”일 Viewport λΉ„μœ¨ μžλ™μ‘°μ ˆ κΈ°λŠ₯ 개발
  • UI μ»΄ν¬λ„ŒνŠΈ 개발

    • Atom λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ 개발 (Button, Radio, Checkbox, Tag λ“±)
    • Molecule λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ 개발 (Tab, Snackbar λ“±)
    • Organism λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ 개발 (Header, Footer λ“±)
    • Storybook에 μ»΄ν¬λ„ŒνŠΈ μŠ€ν† λ¦¬ μΆ”κ°€
  • κΈ°λŠ₯ 개발

    • 곡톡 κΈ°λŠ₯
      • Data Fetching μ „λž΅ μ œμ•ˆ
        • Tanstack Query μ„€μ •
        • 쿼리킀 κ΄€λ¦¬ν•˜λŠ” μƒμˆ˜ 객체 μ„€μ •
        • μ„œλ²„ μ»΄ν¬λ„ŒνŠΈμ—μ„œμ˜ 데이터 Prefetching 곡톡 μ»΄ν¬λ„ŒνŠΈ 개발(PrefetchedQueryHydrationBoundary)
        • ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈμ—μ„œμ˜ 데이터 처리 μ»€μŠ€ν…€ ν›… 개발(useFetchData & useDataMutation)
        • μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈμ—μ„œμ˜ 효율적인 데이터 페칭 μ „λž΅ μ œμ‹œ
      • 비동기 처리 곡톡 μ„€μ •
        • μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μš© ꡬ뢄에 λ”°λ₯Έ Axios μΈμŠ€ν„΄μŠ€ 및 인터셉터 μ„€μ •
        • Next.js API Route에 catch-all 동적 μ„Έκ·Έλ¨ΌνŠΈ μ„€μ •ν•˜μ—¬ κΈ°λ³Έ API μš”μ²­ 둜직 μ΅œμ†Œν™”
    • 도메인별 κΈ°λŠ₯
      • μƒν’ˆ 검색 κ²°κ³Ό κ΅¬ν˜„
      • μƒν’ˆ μ°œν•˜κΈ° κΈ°λŠ₯ κ΅¬ν˜„
      • 이메일/νœ΄λŒ€ν° 인증 κΈ°λŠ₯ κ΅¬ν˜„
      • 아이디/λΉ„λ°€λ²ˆν˜Έ μ°ΎκΈ° κΈ°λŠ₯ κ΅¬ν˜„

πŸ§‘β€πŸ’»μ΅œμ˜μ•  @choiyoungae

  • UI μ»΄ν¬λ„ŒνŠΈ 개발

    • Atom λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ 개발 (Input, Label, HelperLabel)
    • Molecules λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ 개발 (Modal, Select)
  • 인증인가

    • νšŒμ›κ°€μž…, 둜컬/μ†Œμ…œ 둜그인, λ‘œκ·Έμ•„μ›ƒ ν™”λ©΄ λ§ˆν¬μ—… 및 κΈ°λŠ₯ κ΅¬ν˜„
    • zustand persist, cookieλ₯Ό ν™œμš©ν•œ μƒνƒœ 관리 및 미듀웨어 μ„€μ •
  • λ§ˆμ΄νŽ˜μ΄μ§€

    • ν™ˆ 및 λ ˆμ΄μ•„μ›ƒ ꡬ성
  • μ£Όλ¬Έ

    • μ£Όλ¬Έ λͺ©λ‘/상세 νŽ˜μ΄μ§€ λ§ˆν¬μ—… 및 κΈ°λŠ₯ κ΅¬ν˜„
    • λΉ„νšŒμ› 주문쑰회 λ§ˆν¬μ—… 및 κΈ°λŠ₯ κ΅¬ν˜„

Demo

ν”„λ‘œμ νŠΈ 도메인 첨뢀

https://uiverse.shop/


ν”„λ‘œμ νŠΈ μ‹€ν–‰

λΈŒλΌμš°μ €μ—μ„œ http://localhost:3000에 접속 ν˜Ήμ€ https://uiverse.shop/μ—μ„œμ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

Yarn Version 1.22.22

Yarn λͺ…λ Ήμ–΄

yarn run dev

Environment Variables

이 ν”„λ‘œμ νŠΈλ₯Ό μ‹€ν–‰ν•˜λ €λ©΄, environment variablesκ°€ μžˆλŠ” .env 파일이 ν•„μš”ν•©λ‹ˆλ‹€.

νŽ˜μ΄μ§€ ν•˜λ‹¨ νŒ€μ› μ—°λ½μ²˜λ‘œ μ—°λ½λ°”λžλ‹ˆλ‹€.


ν”„λ‘œμ νŠΈ ꡬ쑰

β”œβ”€β”€ πŸ“‚ public/                      # 정적 파일 (이미지, 폰트 λ“±)
β”‚   β”œβ”€β”€ πŸ“‚ icons/                   # ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” μ•„μ΄μ½˜ 이미지
β”œβ”€β”€ πŸ“‚ src/                         # μ†ŒμŠ€ μ½”λ“œ
β”‚   β”œβ”€β”€ πŸ“‚ app/                     # Next.js App Router (νŽ˜μ΄μ§€ 및 API 라우트)
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ (auth)/              # 인증 κ΄€λ ¨ κ·Έλ£Ή 라우트 (예: 둜그인, νšŒμ›κ°€μž… λ“±)
β”‚   β”‚   β”‚   └── πŸ“‚ login/           # 둜그인 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ guest/               # λΉ„νšŒμ› 주문쑰회 νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   └── πŸ“‚ [orderNumber]/     # 주문번호λ₯Ό URL νŒŒλΌλ―Έν„°λ‘œ λ°›λŠ” 동적 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ api/                 # API Route (μ„œλ²„μ‚¬μ΄λ“œ API 핸듀링)
β”‚   β”‚   β”‚   └── πŸ“‚ [...path]/       # 동적 경둜 API (catch-all 라우트)
β”‚   β”œβ”€β”€ πŸ“‚ components/              # μž¬μ‚¬μš© κ°€λŠ₯ν•œ UI μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ common/              # ν”„λ‘œμ νŠΈ λ‹¨μœ„ 곡톡 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Button/          # λ²„νŠΌ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   └── πŸ“‚ Label/           # 라벨 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ layout/              # λ ˆμ΄μ•„μ›ƒ κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Header/          # 헀더 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Main/            # 메인 μ½˜ν…μΈ  μ˜μ—­ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   └── πŸ“‚ Container/       # νŽ˜μ΄μ§€ μ»¨ν…Œμ΄λ„ˆ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ order/               # μ£Όλ¬Έ κ΄€λ ¨ UI μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ πŸ“‚ constants/               # ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” μƒμˆ˜ λͺ¨μŒ
β”‚   β”œβ”€β”€ πŸ“‚ hooks/                   # μ»€μŠ€ν…€ ν›… (예: 데이터 페칭, μƒνƒœ 관리 λ“±)
β”‚   β”œβ”€β”€ πŸ“‚ lib/                     # μ™ΈλΆ€ μœ ν‹Έλ¦¬ν‹° 및 라이브러리 μ„€μ •
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ axios/               # Axios μ„€μ • 및 μΈμŠ€ν„΄μŠ€ 관리
β”‚   β”‚   └── πŸ“‚ tanstackQuery/       # TanStack Query μ„€μ • 및 API κ΄€λ ¨ μœ ν‹Έλ¦¬ν‹°
β”‚   β”œβ”€β”€ πŸ“‚ utils/                   # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜ (예: λ‚ μ§œ 포맷 λ³€ν™˜, 데이터 처리 λ“±)
β”‚   β”œβ”€β”€ πŸ“‚ stores/                  # Zustand μƒνƒœ 관리 μŠ€ν† μ–΄
β”‚   β”œβ”€β”€ πŸ“‚ stories/                 # μŠ€ν† λ¦¬λΆ (UI μ»΄ν¬λ„ŒνŠΈ ν…ŒμŠ€νŠΈ 및 λ¬Έμ„œν™”)
β”‚   β”œβ”€β”€ πŸ“‚ services/                # μ„œλΉ„μŠ€ ν•¨μˆ˜ (λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 처리)
β”‚   β”œβ”€β”€ πŸ“‚ serverActions/           # μ„œλ²„ μ•‘μ…˜ ν•¨μˆ˜ (Next.js μ„œλ²„ μ•‘μ…˜ API)
β”‚   β”œβ”€β”€ πŸ“‚ providers/               # ν”„λ‘œλ°”μ΄λ”
β”‚   β”œβ”€β”€ πŸ“‚ styles/                  # κΈ€λ‘œλ²Œ 및 μ»΄ν¬λ„ŒνŠΈ μŠ€νƒ€μΌ 파일
β”‚   └── πŸ“‚ types/                   # TypeScript νƒ€μž… μ •μ˜
β”‚       β”œβ”€β”€ πŸ“‚ login/               # 둜그인 κ΄€λ ¨ νƒ€μž… μ •μ˜
β”‚       └── πŸ“‚ category/            # μΉ΄ν…Œκ³ λ¦¬ κ΄€λ ¨ νƒ€μž… μ •μ˜
β”œβ”€β”€ πŸ“„ .gitignore                   # Git λ¬΄μ‹œ 파일 λͺ©λ‘
β”œβ”€β”€ πŸ“„ README.md                    # ν”„λ‘œμ νŠΈ κ°œμš” 및 κ°€μ΄λ“œ λ¬Έμ„œ
β”œβ”€β”€ πŸ“„ package.json                 # ν”„λ‘œμ νŠΈ 쒅속성 및 슀크립트
β”œβ”€β”€ πŸ“„ tsconfig.json                # TypeScript μ„€μ • 파일
β”œβ”€β”€ πŸ“„ next.config.js               # Next.js μ„€μ • 파일
└── πŸ“„ yarn.lock                    # 쒅속성 버전 관리 파일


κΈ°μˆ μŠ€νƒ


회고 및 μ•žμœΌλ‘œμ˜ κ³„νš

πŸ§‘β€πŸ’»λ°•μ§„ν˜„ @rondido

  • 배운 점
    • Figmaλ₯Ό 톡해 λ””μ§€μ΄λ„ˆμ™€ ν˜‘μ—…, λ‹€μ–‘ν•œ 직ꡰ듀과 ν˜‘μ—…μ„ 톡해 μ†Œν†΅μ— μ€‘μš”μ„±μ— λŒ€ν•΄ μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    • λ¬΄λΆ„λ³„ν•œ μƒνƒœ 관리λ₯Ό ν†΅ν•œ μ½”λ“œ λ³΅μž‘μ„± μ¦κ°€λ‘œ μΈν•œ μœ μ§€ λ³΄μˆ˜μ„± μ €ν•˜
    • Next.js ssr와 csr에 λŒ€ν•΄ μ•Œκ²Œ λ˜μ—ˆκ³ , srrλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” μ΄μœ μ— λŒ€ν•΄ μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    • srrμ—μ„œλŠ” tanstackQuery 쿼리 μ‚¬μš©μ΄ csrκ³Ό λ‹€λ₯΄κ²Œ 적용 ν•˜λŠ” 것에 λŒ€ν•΄ μ•Œκ²Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • μ–΄λ €μ› λ˜ 점
    • μƒν’ˆ κ΄€λ ¨ κΈ°λŠ₯ κ΅¬ν˜„ 쀑 μƒν’ˆ κ°œκ°œμΈμ— λ§žλŠ” μˆ˜λŸ‰ 관리
    • μž₯λ°”κ΅¬λ‹ˆμ—μ„œ μˆ˜λŸ‰μ„ λ³€κ²½ν•˜κ³  λ³€κ²½ 된 μˆ˜λŸ‰μ— λ§žλŠ” μ‹€μ‹œκ°„ κΈˆμ•‘ 계산
    • 이λ₯Ό 톡해 보닀 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ΄ 높은 λ°©μ‹μœΌλ‘œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 방법에 λŒ€ν•œ κ³ λ―Ό
    • ssr의 μ‚¬μš© ꡬ쑰 흐름 νŒŒμ•…
    • server component와 client componentλ₯Ό μ •ν•˜λŠ” κΈ°μ€€
  • κ°œμ„ ν•˜κ³  싢은 점
    • μž₯λ°”κ΅¬λ‹ˆμ™€ μ£Όλ¬Έμ—μ„œ μ‚¬μš©λ˜λŠ” μƒν’ˆ κ΄€λ ¨ μƒνƒœλ₯Ό 둜직 κ°œμ„ 
    • LCP,FCP 츑정을 ν†΅ν•œ λ Œλ”λ§ 속도 κ°œμ„ 
    • Next js에 μ‚¬μš©λ˜λŠ” prefetching,ssgλ₯Ό ν†΅ν•œ λ Œλ”λ§ 속도 κ°œμ„ 
  • μ•žμœΌλ‘œμ˜ κ³„νš
    • λ‹€μ–‘ν•œ ν…ŒμŠ€νŠΈ 방식을 ν™œμš©ν•œ ν…ŒμŠ€ν¬ μ½”λ“œ λ„μž…
    • λΆˆν•„μš”ν•œ μ½”λ“œ 제거 및 μ»΄ν¬λ„ŒνŠΈ 뢄리
    • 결제, 재고, μƒν’ˆ μ˜΅μ…˜ κ΄€λ ¨ κΈ°λŠ₯ λ„μž…
    • λ Œλ”λ§ 속도 νŠΉμ • 및 λ©”λͺ¨λ¦¬ μ‚¬μš© κ΄€λ ¨ μ΅œμ ν™”

πŸ§‘β€πŸ’»μ–‘λͺ…κ·œ @mgYang53

  • 배운 점
    • Tailwind CSSλ₯Ό ν™œμš©ν•œ λ””μžμΈ μ‹œμŠ€ν…œ ꡬ좕 κ³Όμ •μ—μ„œ μž¬μ‚¬μš© κ°€λŠ₯ν•œ μœ ν‹Έλ¦¬ν‹° 클래슀의 νš¨μœ¨μ„±κ³Ό ν™•μž₯성을 κ²½ν—˜ν–ˆμŠ΅λ‹ˆλ‹€.
    • Atomic Design 방법둠을 μ μš©ν•΄ μ»΄ν¬λ„ŒνŠΈλ₯Ό μ²΄κ³„μ μœΌλ‘œ μ„€κ³„ν•˜λŠ” 방법을 μŠ΅λ“ν–ˆμŠ΅λ‹ˆλ‹€.
    • Next.js의 μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈλ₯Ό 효과적으둜 κ΅¬λΆ„ν•˜μ—¬ 데이터 페칭 μ „λž΅μ„ μ΅œμ ν™”ν•˜λŠ” 방법을 μ΅ν˜”μŠ΅λ‹ˆλ‹€.
    • Tanstack Queryλ₯Ό ν™œμš©ν•œ μƒνƒœ 관리와 μ„œλ²„ μƒνƒœ λ™κΈ°ν™”μ˜ 효율적인 νŒ¨ν„΄μ„ ν•™μŠ΅ν–ˆμŠ΅λ‹ˆλ‹€.
  • μ–΄λ €μ› λ˜ 점
    • μ„œλ²„ μ»΄ν¬λ„ŒνŠΈμ™€ ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν¬λ„ŒνŠΈ κ°„μ˜ 데이터 전달 및 hydration κ³Όμ •μ—μ„œ μ˜ˆμƒμΉ˜ λͺ»ν•œ λ¬Έμ œλ“€μ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
    • Prefetching μ „λž΅μ„ κ΅¬ν˜„ν•˜λ©΄μ„œ SSRκ³Ό CSR의 κ²½κ³„μ—μ„œ λ°œμƒν•˜λŠ” μ„±λŠ₯ 이슈λ₯Ό ν•΄κ²°ν•˜λŠ” 데 어렀움이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
    • μ—¬λŸ¬ 도메인별 κΈ°λŠ₯ 개발 μ‹œ μΌκ΄€λœ μ—λŸ¬ 처리 방식을 μ •λ¦½ν•˜λŠ” 데 μ‹œκ°„μ΄ 많이 μ†Œμš”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    • λ””μžμΈ μ‹œμŠ€ν…œμ˜ 일관성을 μœ μ§€ν•˜λ©΄μ„œλ„ 각 νŽ˜μ΄μ§€λ³„ νŠΉμ„±μ„ λ°˜μ˜ν•˜λŠ” μœ μ—°ν•œ μ»΄ν¬λ„ŒνŠΈ 섀계에 어렀움이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
  • κ°œμ„ ν•˜κ³  싢은 점
    • μ»΄ν¬λ„ŒνŠΈλ³„ ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±μ΄ λΆ€μ‘±ν–ˆλ˜ 점을 κ°œμ„ ν•˜μ—¬ μ•ˆμ •μ μΈ UIλ₯Ό κ΅¬μΆ•ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
    • λ””μžμΈ 토큰 관리 체계λ₯Ό 더 μ„ΈλΆ„ν™”ν•˜μ—¬ ν…Œλ§ˆ λ³€κ²½μ΄λ‚˜ μŠ€νƒ€μΌ μˆ˜μ • μ‹œ μœ μ§€λ³΄μˆ˜ νš¨μœ¨μ„ 높이고 μ‹ΆμŠ΅λ‹ˆλ‹€.
    • Storybook λ¬Έμ„œν™”κ°€ μ»΄ν¬λ„ŒνŠΈ 개발 속도에 λΉ„ν•΄ λ’€μ²˜μ§„ 뢀뢄을 κ°œμ„ ν•˜μ—¬ νŒ€ λ‚΄ μ»΄ν¬λ„ŒνŠΈ ν™œμš©λ„λ₯Ό 높이고 μ‹ΆμŠ΅λ‹ˆλ‹€.
    • API μš”μ²­ 둜직과 μ—λŸ¬ 핸듀링 νŒ¨ν„΄μ„ 더 μ²΄κ³„μ μœΌλ‘œ μ •λ¦½ν•˜μ—¬ μ½”λ“œ 쀑볡을 쀄이고 μ‹ΆμŠ΅λ‹ˆλ‹€.
    • μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§ 및 μ΅œμ ν™” μ „λž΅μ΄ λΆ€μ‘±ν–ˆλ˜ 점을 λ³΄μ™„ν•˜μ—¬ μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
  • μ•žμœΌλ‘œμ˜ κ³„νš
    • μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„ ν…ŒμŠ€νŠΈμ™€ E2E ν…ŒμŠ€νŠΈλ₯Ό λ„μž…ν•˜μ—¬ UI ν’ˆμ§ˆμ„ 보μž₯ν•˜λŠ” μ‹œμŠ€ν…œμ„ ꡬ좕할 μ˜ˆμ •μž…λ‹ˆλ‹€.
    • μ„±λŠ₯ μΈ‘μ • λ©”νŠΈλ¦­μ„ μ •μ˜ν•˜κ³  지속적인 λͺ¨λ‹ˆν„°λ§ 체계λ₯Ό κ΅¬μΆ•ν•˜μ—¬ μ›Ή μ„±λŠ₯을 μ΅œμ ν™”ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.
    • Tanstack Query의 κ³ κΈ‰ κΈ°λŠ₯(Invalidation, Optimistic Updates)을 ν™œμš©ν•œ μ‚¬μš©μž κ²½ν—˜ ν–₯상 μ „λž΅μ„ μ μš©ν•  κ³„νšμž…λ‹ˆλ‹€.
    • μ»΄ν¬λ„ŒνŠΈ λ²ˆλ“€ μ‚¬μ΄μ¦ˆ 뢄석 및 μ΅œμ ν™”λ₯Ό 톡해 초기 λ‘œλ”© 속도λ₯Ό κ°œμ„ ν•  κ³„νšμž…λ‹ˆλ‹€.

πŸ§‘β€πŸ’»μ΅œμ˜μ•  @choiyoungae

  • 배운 점
    • Nextjsλ₯Ό κ²½ν—˜ν•΄λ³Ό 수 μžˆμ—ˆκ³  zustand persist κΈ°λŠ₯κ³Ό 미듀웨어 섀정을 ν™œμš©ν•œ 인증 흐름을 μž‘μ—…ν•˜λ©΄μ„œ 많이 λ°°μ› μŠ΅λ‹ˆλ‹€.
  • μ–΄λ €μ› λ˜ 점
    • 인증 κ΄€λ ¨ 둜직 μ²˜λ¦¬μ— 정말 ν’ˆμ„ 많이 λ“€μ˜€μŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ 그만큼 배운 점이 λ§Žμ•˜λ˜ 것 κ°™μŠ΅λ‹ˆλ‹€.
  • κ°œμ„ ν•˜κ³  싢은 점
    • νšŒμ›κ°€μž…μ—μ„œ useStateλ₯Ό λ„ˆλ¬΄ 많이 μ“΄ 것 κ°™μ•„ react-hook-form을 ν™œμš©ν•΄λ³΄κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
  • μ•žμœΌλ‘œμ˜ κ³„νš
    • μ½”λ“œ λ¦¬νŒ©ν† λ§κ³Ό νšŒμ› 정보 μˆ˜μ • λ“± μΆ”κ°€ κΈ°λŠ₯을 κ΅¬ν˜„ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.

Roadmap

  • [μƒν’ˆ] 검색 ν•„ν„° κΈ°λŠ₯ μΆ”κ°€
  • [μƒν’ˆ] μΉ΄ν…Œκ³ λ¦¬λ³„ μƒν’ˆ νŽ˜μ΄μ§€
  • [결제] μƒν’ˆ 결제 및 결제 μ™„λ£Œ νŽ˜μ΄μ§€
  • [μ‡Όν•‘λͺ°] 상세 νŽ˜μ΄μ§€ κ΅¬ν˜„
  • [둜그] νŽ˜μ΄μ§€ λ°©λ¬Έ, μƒν’ˆ 클릭, 리뷰 쑰회 둜그 μˆ˜μ§‘
  • [λ§ˆμ΄νŽ˜μ΄μ§€] νšŒμ›μ •λ³΄μˆ˜μ •, λ§žμΆ€μ •λ³΄μ„€μ •, λ‚΄ μ†ŒλΉ„ 리포트
  • [λ§ˆμ΄νŽ˜μ΄μ§€] 결제 μ·¨μ†Œ 상세 νŽ˜μ΄μ§€
  • [λ§ˆμ΄νŽ˜μ΄μ§€] 졜근 λ³Έ μƒν’ˆ, μ°œν•œ μƒν’ˆ/μŠ€ν† μ–΄, λ‚˜μ˜ 리뷰, μž¬μž…κ³ μ•Œλ¦Ό
  • [λ§ˆμ΄νŽ˜μ΄μ§€] 곡지사항, λ¬Έμ˜μ‚¬ν•­, FAQ
  • [μ»΄ν¬λ„ŒνŠΈ 관리 및 ν…ŒμŠ€νŠΈ] Storybook 보완 및 λ‹¨μœ„/E2E ν…ŒμŠ€νŠΈ λ„μž…
  • [μ΅œμ ν™”] μ„±λŠ₯ μΈ‘μ • 및 μ΅œμ ν™”

νŒ€μ› μ—°λ½μ²˜

λ°•μ§„ν˜„: rppr001@naver.com
μ–‘λͺ…κ·œ: mg960503@gmail.com
μ΅œμ˜μ• : choiaeyoung@gmail.com


μ—°κ΄€ ν”„λ‘œμ νŠΈ

UIverse-BE

About

UIverse-FE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •