# πŸš€ μ„œλ²„ μ •μ±… (Server Policy) **μ„œλ²„ ꡬ동 μ‹œ λ°˜λ“œμ‹œ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•œλ‹€:** ```bash uvicorn server:app --host 0.0.0.0 --port 8000 --reload ``` - **Host**: `0.0.0.0` (μ™ΈλΆ€ 접속 ν—ˆμš©) - **Port**: `8000` - **Reload**: μ½”λ“œ μˆ˜μ • μ‹œ μžλ™ μž¬μ‹œμž‘ ν™œμ„±ν™” --- # πŸ€– λ©”μΌμ‹œμŠ€ν…œ AIνŒλ‹¨κ°€μ΄λ“œ (AI Reasoning Guide) AIλŠ” νŒŒμΌμ„ λΆ„λ₯˜ν•  λ•Œ λ‹¨μˆœν•œ ν‚€μ›Œλ“œ 맀칭이 μ•„λ‹Œ, μ•„λž˜μ˜ **5단계 톡합 μΆ”λ‘  λͺ¨λΈ**을 μ‚¬μš©ν•˜μ—¬ 'μ‹€λ¬΄μžμ²˜λŸΌ' μƒκ°ν•˜κ³  νŒλ‹¨ν•œλ‹€. ### 1단계: μ „μˆ˜ 데이터 μˆ˜μ§‘ (Holistic Reading) - **λ¬΄μ œν•œ μŠ€μΊ”**: νŽ˜μ΄μ§€ μˆ˜μ— 관계없이 λ¬Έμ„œ 전체λ₯Ό μ „μˆ˜ μ‘°μ‚¬ν•œλ‹€. - **무쑰건적 OCR**: λ””μ§€ν„Έ ν…μŠ€νŠΈ μœ λ¬΄μ™€ 상관없이 λͺ¨λ“  νŽ˜μ΄μ§€μ— 고해상도(300 DPI) OCR을 μ‹€ν–‰ν•˜μ—¬ 이미지 속 도μž₯, 수기, ν‘œ λ°μ΄ν„°κΉŒμ§€ μ™„λ²½νžˆ μˆ˜μ§‘ν•œλ‹€. ### 2단계: 파일λͺ… κ°€μ€‘μΉ˜ 적용 (Title Steering) - **파일λͺ… = 보관 μ˜λ„**: μ‚¬μš©μžκ°€ 지은 파일λͺ…은 λΆ„λ₯˜μ˜ κ°€μž₯ κ°•λ ₯ν•œ 'λ°©ν–₯타'이닀. - **μ΅œμ’… 쑰율**: 본문의 데이터가 λ‹€λ₯Έ 도메인에 쏠렀 μžˆλ”λΌλ„, 파일λͺ…에 λͺ…ν™•ν•œ 업무 μš©μ–΄(`싀정보고`, `ν•˜λ„κΈ‰` λ“±)κ°€ μžˆλ‹€λ©΄ 이λ₯Ό μ΅œμ’… λΆ„λ₯˜μ˜ κ°€μž₯ 큰 λ¬΄κ²ŒμΆ”λ‘œ μ‚ΌλŠ”λ‹€. ### 3단계: λ¬Έμ„œμ˜ 물리적 ν‹€(Format) 뢄석 - **곡문 골격 확인**: λ¬Έμ„œμ˜ μ‹œμž‘(`μˆ˜μ‹ /λ°œμ‹ `)κ³Ό 끝(`직인/끝.`)의 ꡬ쑰λ₯Ό ν™•μΈν•œλ‹€. - **껍데기 vs μ•Œλ§Ήμ΄**: - **곡문 본체**: 골격이 μ™„λ²½ν•˜κ³  λ’€λ”°λ₯΄λŠ” 기술 데이터가 적은 경우 β†’ **[곡사관리 > 곡문]** - **첨뢀 본체**: 곡문 뒀에 λŒ€λŸ‰μ˜ μ‚°μΆœμ„œ, κ³„μ•½μ„œ, 도면이 λΆ™μ–΄ μžˆλŠ” 경우 β†’ **[ν•΄λ‹Ή 기술 μΉ΄ν…Œκ³ λ¦¬]** (곡문은 전달 μˆ˜λ‹¨μœΌλ‘œλ§Œ κ°„μ£Ό) ### 4단계: λΉ„μ¦ˆλ‹ˆμŠ€ 도메인 상식 κ²°ν•© (Common Sense) - **μ§€λͺ… ꡐ차 검증**: 파일λͺ…κ³Ό 본문의 μ§€λͺ…(μ–΄μ²œ, 곡주, λŒ€μˆ , μ •μ•ˆ λ“±)을 λŒ€μ‘°ν•˜μ—¬ μ •ν™•ν•œ ν”„λ‘œμ νŠΈλ₯Ό μ„ νƒν•œλ‹€. (μž„μ˜ κΈ°λ³Έκ°’ μ§€μ • κΈˆμ§€) - **싀무 λ§₯락 λ§€μΉ­**: 'μž„λŒ€λ£Œ/μ—°μž₯'은 사업비 μ„±κ²©μ˜ '기타'둜, '비계'λŠ” 'ꡬ쑰물'둜 μ—°κ²°ν•˜λŠ” λ“± 건섀 싀무 상식을 좔둠에 λ°˜μ˜ν•œλ‹€. ### 5단계: μ΅œμ’… 지도 λ§€μΉ­ (Hierarchy Mapping) - μˆ˜μ§‘λœ λͺ¨λ“  정보λ₯Ό μ’…ν•©ν•˜μ—¬ μ‚¬μš©μžκ°€ μ •μ˜ν•œ **ν‘œμ€€ λΆ„λ₯˜ 체계(Tab > Category > Sub)** 지도 μœ„μ—μ„œ κ°€μž₯ 논리적이고 싀무적인 μœ„μΉ˜λ₯Ό μ΅œμ’… ν™•μ •ν•œλ‹€. --- # πŸ› οΈ 개발 및 관리 κ·œμΉ™ (Strict Development Rules) 1. **μ–Έμ–΄ μ„€μ •**: μ˜μ–΄λ‘œ μƒκ°ν•˜λ˜, λͺ¨λ“  닡변은 **ν•œκ΅­μ–΄**둜 μž‘μ„±ν•œλ‹€. 2. **μž„μ˜ μˆ˜μ • μ ˆλŒ€ κΈˆμ§€ (Zero-Arbitrary Change)**: - μ‚¬μš©μžκ°€ λͺ…μ‹œμ μœΌλ‘œ μ§€μ‹œν•œ λΆ€λΆ„ μ™Έμ—λŠ” **단 ν•œ μ€„μ˜ μ½”λ“œλ„, κ·Έ μ–΄λ–€ νŒŒμΌλ„ μž„μ˜λ‘œ μˆ˜μ •, 정리, λ¦¬νŒ©ν† λ§ν•˜μ§€ μ•ŠλŠ”λ‹€.** - μ§€μ‹œλ°›μ§€ μ•Šμ€ λ‹€λ₯Έ 파트의 μ½”λ“œλŠ” μ ˆλŒ€ κ±΄λ“œλ¦¬μ§€ μ•ŠμœΌλ©°, 영ν–₯ λ²”μœ„κ°€ μš”μ²­ λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜μ§€ μ•Šλ„λ‘ 'μ™Έκ³Ό μˆ˜μˆ μ‹(Surgical) μˆ˜μ •'을 μ›μΉ™μœΌλ‘œ ν•œλ‹€. 3. **κ°œμ„  μž‘μ—… 절차 (Test-First Approach)**: - μ‚¬μš©μžκ°€ κ°œμ„ (Refactoring, Optimization λ“±)을 μ§€μ‹œν•œ 경우, **μˆ˜μ • μ „ ν˜„μž¬ μ‹œμŠ€ν…œμ΄ μ •μƒμ μœΌλ‘œ 잘 μž‘λ™ν•˜λŠ”μ§€ λ¨Όμ € μ „μˆ˜ 확인**ν•œλ‹€. - κΈ°μ‘΄ λ™μž‘ 방식과 μ„±λŠ₯을 κΈ°μ€€(Baseline)으둜 μ‚Όκ³ , μˆ˜μ • 후에도 **기쑴의 λͺ¨λ“  κΈ°λŠ₯이 λ¬΄κ²°ν•˜κ²Œ μœ μ§€λ˜λŠ”μ§€ λ°˜λ“œμ‹œ ν…ŒμŠ€νŠΈν•˜μ—¬ μž…μ¦**ν•œλ‹€. - 검증 κ²°κ³Όλ₯Ό λ°”νƒ•μœΌλ‘œ "무엇을, μ™œ, μ–΄λ–»κ²Œ" λ°”κΏ€μ§€ 상세 보고 ν›„, μ‚¬μš©μžλ‘œλΆ€ν„° **'μ§„ν–‰μ‹œμΌœ'** μŠΉμΈμ„ 얻은 λ’€μ—λ§Œ μ§‘ν–‰ν•œλ‹€. 4. **선보고 ν›„μŠΉμΈ**: λͺ¨λ“  κΈ°λŠ₯ μˆ˜μ • 및 μ½”λ“œ λ³€κ²½ μ „μ—λŠ” μ˜ˆμƒ λ°©μ•ˆμ„ λ¨Όμ € λ³΄κ³ ν•˜κ³  승인 절차λ₯Ό κ±°μΉœλ‹€. 5. **둜그 기둝 μ² μ €**: μ§„ν–‰ 상황(둜그인, μˆ˜μ§‘, 였λ₯˜ λ“±)을 μ‹€μ‹œκ°„ λ‘œκ·Έμ— μƒμ„Ένžˆ ν‘œμ‹œν•˜μ—¬ 투λͺ…성을 ν™•λ³΄ν•œλ‹€. --- ## 🎨 λ””μžμΈ κ°€μ΄λ“œ (Design System) 이 ν”„λ‘œμ νŠΈλŠ” `tokens.json`에 μ •μ˜λœ λ””μžμΈ μ‹œμŠ€ν…œμ„ μ€€μˆ˜ν•©λ‹ˆλ‹€. ### 1. 컬러 μ‹œμŠ€ν…œ (Colors) - **Primary**: `#1E5149` (primary-lv-6) - λΈŒλžœλ“œ 핡심 컬러 - **Background**: `#FFFFFF` (Light Default) / `#F9FAFB` (Light Muted) - **Point Colors**: - Blue: `#0D8DF2` (Info) - Green: `#4DB251` (Success) - Red: `#F21D0D` (Error) - Yellow: `#FFBF00` (Warning) - **Special**: `ai_color` (Purple-Blue Gradient) - AI κ΄€λ ¨ μš”μ†Œ μ „μš© ### 2. νƒ€μ΄ν¬κ·Έλž˜ν”Ό (Typography) - **Font Family**: `Pretendard`, `sans-serif` - **Scale**: - **H1**: 20px / ExtraBold (pretendard-0) - **H2**: 16px / SemiBold (pretendard-1) - **H3/H4**: 14px / SemiBold or Regular - **Body/P**: 12px / Regular (pretendard-2) ### 3. λ ˆμ΄μ•„μ›ƒ 및 간격 (Dimensions) - **Spacing Unit**: Base 4px (xs: 4px, sm: 8px, md: 16px, lg: 32px, xl: 64px) - **Border Radius**: sm: 4px, lg: 8px, xl: 16px - **Shadow**: `0 8px 24px rgba(0,0,0,0.16)` (box__drop-shadow) ### 4. μ»΄ν¬λ„ŒνŠΈ κ·œμΉ™ - **Buttons**: `borderRadius.lg (8px)` 적용, Primary 배경색 μ‚¬μš© - **Cards**: `borderRadius.lg (8px)` 적용, Subtle Shadow ν™œμš© - **Topbar**: Height 36px, `headercolor` κ·ΈλΌλ°μ΄μ…˜ 적용 κ°€λŠ₯