Skip to content

Latest commit

Β 

History

History
49 lines (45 loc) Β· 4.09 KB

File metadata and controls

49 lines (45 loc) Β· 4.09 KB

1. Tech Stack & Environment (Default)

  • Frontend: React (Functional Components, Hooks 쀑심. ν•¨μˆ˜ μ„ μ–Έ μŠ€νƒ€μΌμ€ Coding Standards의 ν•¨μˆ˜ μ„ μ–Έ μŠ€νƒ€μΌ κ·œμΉ™μ„ λ”°λ₯Έλ‹€.)
  • Style: Tailwind CSS + Shadcn UI (Maintain Design Consistency)
  • Language: TypeScript (Strict mode, No any)
  • Routing: React Router v7
  • State: Zustand (UI State), TanStack Query (Server State)
  • Networking: Axios (with Interceptors), MSW (Mocking Sync required)

2. Coding Standards (Quality & Readability)

  • "읽기 μ‰¬μš΄ μ½”λ“œ" μ΅œμš°μ„ : λ³€μˆ˜λͺ…은 μ§κ΄€μ μœΌλ‘œ, λ‘œμ§μ€ λ‹¨μˆœν•˜κ²Œ μž‘μ„±ν•  것.
  • 주석 μž‘μ„± 원칙:
    • 주석은 μ½”λ“œκ°€ "무엇을 ν•˜λŠ”μ§€"보닀 "μ™œ μ΄λ ‡κ²Œ μ²˜λ¦¬ν•˜λŠ”μ§€"λ₯Ό μ„€λͺ…ν•œλ‹€.
    • μ½”λ“œλ§ŒμœΌλ‘œ μ˜λ„κ°€ λΆ„λͺ…ν•œ λ‹¨μˆœ λ‘œμ§μ—λŠ” 주석을 달지 μ•ŠλŠ”λ‹€.
    • ν™”λ©΄, ν›…, mock, API처럼 흐름이 κΈ΄ νŒŒμΌμ€ κΈ°μ‘΄ μ½”λ“œμ²˜λŸΌ λ²ˆν˜Έλ‚˜ 짧은 제λͺ©μœΌλ‘œ κ΅¬νšμ„ λ‚˜λˆˆλ‹€.
      • 예: // 1. 데이터 κ°€μ Έμ˜€κΈ° 및 κΆŒν•œ 확인, {/* μ°Έμ—¬μž λͺ…단 μ„Ήμ…˜ */}
    • μ œν’ˆ μ •μ±…, μ„œλ²„ 응닡 보완, μΊμ‹œ 동기화, μ˜ˆμ™Έ 처리, mock이 μ‹€μ œ λ°±μ—”λ“œ 정책을 흉내 λ‚΄λŠ” λΆ€λΆ„μ—λŠ” 짧은 ν•œκ΅­μ–΄ 주석을 남긴닀.
    • 주석은 기본적으둜 1~2μ€„λ‘œ μž‘μ„±ν•˜κ³ , κΈ΄ μ„€λͺ…은 Plan λ¬Έμ„œλ‚˜ 별도 λ¬Έμ„œμ— 남긴닀.
    • 였래된 주석, 주석 처리된 λ―Έμ‚¬μš© μ½”λ“œ, μ½”λ“œμ™€ λ§žμ§€ μ•ŠλŠ” μ„€λͺ…은 μˆ˜μ • κ³Όμ •μ—μ„œ ν•¨κ»˜ μ •λ¦¬ν•œλ‹€.
  • λͺ¨λ“ˆν™”: ν•˜λ‚˜μ˜ 파일이 λ„ˆλ¬΄ κΈΈμ–΄μ§€μ§€ μ•Šκ²Œ κΈ°λŠ₯λ³„λ‘œ 뢄리할 것.
  • μ—λŸ¬ 처리: μ˜ˆμ™Έ 상황(Error Handling)을 항상 κ³ λ €ν•˜μ—¬ μ½”λ“œλ₯Ό μž‘μ„±ν•  것.
  • Strict Typing: any μ‚¬μš©μ„ μ—„κ²©νžˆ κΈˆμ§€ν•˜λ©°, λͺ¨λ“  API 응닡과 Props에 λŒ€ν•΄ ꡬ체적인 interface/type을 μ •μ˜ν•  것.
  • 데이터 관리 원칙: μ„œλ²„ 데이터(Server State)λŠ” TanStack Queryλ₯Ό, 순수 UI μƒνƒœλ‚˜ μ „μ—­ 캐싱(Client State)은 Zustandλ₯Ό μ‚¬μš©ν•˜μ—¬ 역할을 μ—„κ²©νžˆ 뢄리할 것.
  • MSW Sync: μƒˆλ‘œμš΄ API μ—°λ™μ΄λ‚˜ μˆ˜μ • μ‹œ, λ°˜λ“œμ‹œ src/mocks λ‚΄μ˜ λͺ¨ν‚Ή ν•Έλ“€λŸ¬μ™€ 데이터도 μ„ΈνŠΈλ‘œ μ—…λ°μ΄νŠΈν•  것.
  • μ½”λ“œ κ²€ν†  및 ν’ˆμ§ˆ 관리:
    • μ½”λ“œ κ²€ν† (νƒ€μž… 체크, ν¬λ§€νŒ… 검사 λ“±)κ°€ ν•„μš”ν•  λ•ŒλŠ” yarn check-all λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  것.
    • μ½”λ“œ ν¬λ§€νŒ…μ΄ ν•„μš”ν•œ 경우 yarn fix λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  것.
  • ν•¨μˆ˜ μ„ μ–Έ μŠ€νƒ€μΌ:
    • React μ»΄ν¬λ„ŒνŠΈλŠ” function ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•œλ‹€.
      • 예: export default function EventMain() { ... }
    • μ»€μŠ€ν…€ 훅은 κΈ°μ‘΄ μ½”λ“œλ² μ΄μŠ€ νŒ¨ν„΄μ— 맞좰 function ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•œλ‹€.
      • 예: export default function useEventDetail(...) { ... }
    • μ»΄ν¬λ„ŒνŠΈ/ν›… λ‚΄λΆ€μ˜ 이벀트 ν•Έλ“€λŸ¬, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œ μž‘μ„±ν•œλ‹€.
      • 예: const handleSubmit = async () => { ... }
    • μ»΄ν¬λ„ŒνŠΈκ°€ μ•„λ‹Œ export μœ ν‹Έλ¦¬ν‹°λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œ μž‘μ„±ν•œλ‹€.
      • 예: export const formatDate = (...) => { ... }

3. Work Process (Mandatory File-based Planning)

  • Step-by-Step Approach: μ½”λ“œλ₯Ό μˆ˜μ •ν•˜κΈ° μ „, λ°˜λ“œμ‹œ λ‹€μŒ 두 νŒŒμΌμ„ 생성/μ—…λ°μ΄νŠΈν•˜μ—¬ μ œμ‹œν•œλ‹€.
    1. [Implementation Plan]: ꡬ체적인 μˆ˜μ • λ²”μœ„μ™€ λ‘œμ§μ„ ν•œκ΅­μ–΄λ‘œ κΈ°μˆ ν•œ λ¬Έμ„œ.
    2. [Task]: μ²΄ν¬λ°•μŠ€(- [ ]) ν˜•νƒœμ˜ μ„ΈλΆ€ μž‘μ—… 리슀트 파일.
  • Permission Required: μœ„ 두 파일이 μƒμ„±λ˜κ³ , μ‚¬μš©μžμ˜ **승인(Confirmation)**을 받은 ν›„μ—λ§Œ μ‹€μ œ μ½”λ“œ μˆ˜μ •μ„ μ‹œμž‘ν•œλ‹€.
  • Progress Tracking: μž‘μ—…μ΄ 진행됨에 따라 [Task] 파일의 μ²΄ν¬λ°•μŠ€λ₯Ό μ—…λ°μ΄νŠΈν•˜μ—¬ μ§„ν–‰ 상황을 κ³΅μœ ν•œλ‹€.

οΌ”. Communication & Persona

  • μ–Έμ–΄: λͺ¨λ“  μ„€λͺ…κ³Ό 주석, μž‘μ—… κ³„νš(Plan)은 **'ν•œκ΅­μ–΄'**둜 μž‘μ„±.
  • μ„€λͺ… 방식: μ΄ˆλ³΄μžλ„ 이해할 수 있게 μ‰½κ²Œ μ„€λͺ…ν•˜λ˜, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 ꡬ쑰λ₯Ό λͺ…ν™•νžˆ μ§šμ–΄μ€„ 것.
  • νƒœλ„: λ‹¨μˆœνžˆ μ½”λ“œλ§Œ μ§œμ§€ 말고, λ‚΄ μš”μ²­μ— 잠재된 '리슀크'λ‚˜ 더 쒋은 'λŒ€μ•ˆ'이 μžˆλ‹€λ©΄ λ¨Όμ € μ œμ•ˆν•΄μ£ΌλŠ” νŒŒνŠΈλ„ˆκ°€ 될 것.
  • λ‹΅λ³€ ν˜•μ‹: [κ²°λ‘ /ν•΄κ²°μ±…] -> [μ½”λ“œ] -> [상세 μ„€λͺ…] μˆœμ„œλ‘œ λ‘κ΄„μ‹μœΌλ‘œ λ‹΅λ³€ν•  것.