# 🏒 μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ 및 폴더 ꡬ쑰 (v1.5) λ³Έ λ¬Έμ„œλŠ” `λ‡Œμ‚¬λ£Œ` ν”„λ‘œμ νŠΈμ˜ 물리적 파일 ꡬ쑰와 논리적 섀계 μ•„ν‚€ν…μ²˜λ₯Ό μƒμ„Ένžˆ κΈ°μˆ ν•©λ‹ˆλ‹€. ## πŸ“ 1. 폴더 ꡬ쑰 (Folder Structure) | 경둜 | μ—­ν•  | 상세 μ„€λͺ… | | :--- | :--- | :--- | | `/app` | **Backend Core** | Flask μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 핡심 둜직 및 라우트 | | `/app/routes` | **Modular Routes** | κΈ°λŠ₯λ³„λ‘œ λΆ„λ¦¬λœ API μ—”λ“œν¬μΈνŠΈ νŒ¨ν‚€μ§€ | | `/data` | **Database Box** | SQLite3 DB 파일 (`memos.db`) μ €μž₯ μœ„μΉ˜ | | `/docs` | **Documentation** | μ‹œμŠ€ν…œ 기술 λ¬Έμ„œ 및 κ°€μ΄λ“œ | | `/logs` | **Log Box** | μ‹œμŠ€ν…œ μž‘λ™ 및 μ ‘κ·Ό 둜그 (`app.log`) | | `/static` | **Static Assets** | CSS, 이미지 및 ν”„λ‘ νŠΈμ—”λ“œ λ¦¬μ†ŒμŠ€ | | `/static/js/components` | **UI Components** | D3.js μ‹œκ°ν™” λͺ¨λ“ˆ 및 UI 핡심 둜직 | | `/templates` | **HTML Templates** | Jinja2 기반 λ ˆμ΄μ•„μ›ƒ 및 νŽ˜μ΄μ§€ | --- ## πŸ—οΈ 2. 섀계 μ•„ν‚€ν…μ²˜ (Design Architecture) ### 2.1 Backend: Blueprint-based Modular Flask - **νŒ¨ν‚€μ§€ ꡬ쑰**: `app/__init__.py`μ—μ„œ 쀑앙 μ§‘μ€‘μ‹μœΌλ‘œ 앱을 μƒμ„±ν•˜κ³ , `routes/` μ•„λž˜μ˜ 각 κΈ°λŠ₯을 Blueprint둜 λ“±λ‘ν•©λ‹ˆλ‹€. - **λ‹€κ΅­μ–΄ μ—”μ§„ (v1.5)**: μ„œλ²„ μ‚¬μ΄λ“œμ—μ„œλ„ `i18n.py`λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈ μ–Έμ–΄ ν™˜κ²½μ— λ§žμΆ€ν™”λœ 응닡(μ—λŸ¬ λ©”μ‹œμ§€ λ“±)을 μ œκ³΅ν•©λ‹ˆλ‹€. ### 2.2 Frontend: State-Driven UI - **μ»΄ν¬λ„ŒνŠΈ 쀑심 섀계**: `HeatmapManager.js`, `CalendarManager.js`, `ComposerCategoryUI.js` λ“±μœΌλ‘œ λ…λ¦½λœ λͺ¨λ“ˆ ꡬ쑰λ₯Ό μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€. - **State Management**: `AppService.js`λ₯Ό 톡해 μ „μ—­ μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜λ©°, μ„€μ • λ³€κ²½(μ–Έμ–΄, ν…Œλ§ˆ) μ‹œ `ThemeManager.js`κ°€ μ‹œμŠ€ν…œ μ „λ°˜μ˜ 정합성을 λ™κΈ°ν™”ν•©λ‹ˆλ‹€. ### 2.3 Data Policy: English Constant Policy (v1.5 μ •μ±…) - **데이터 μ •ν•©μ„±**: λ‹€κ΅­μ–΄ ν™˜κ²½μ—μ„œ κ·Έλ£Ή 필터링 등이 μ˜€μž‘λ™ν•˜λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•΄, λ°μ΄ν„°λ² μ΄μŠ€μ˜ `group_name` ν•„λ“œμ—λŠ” **영문 μƒμˆ˜**(`default`, `files`, `done` λ“±)λ₯Ό μ €μž₯ν•˜λŠ” 것을 μ›μΉ™μœΌλ‘œ ν•©λ‹ˆλ‹€. - **λ§€ν•‘ 방식**: 화면에 λ…ΈμΆœλ˜λŠ” ν…μŠ€νŠΈλŠ” ν”„λ‘ νŠΈμ—”λ“œ i18n λ§€λ‹ˆμ €λ₯Ό 톡해 μ‚¬μš©μžμ˜ ν˜„μž¬ μ–Έμ–΄ 섀정에 맞좰 λ™μ μœΌλ‘œ λ²ˆμ—­λ˜μ–΄ ν‘œκΈ°λ©λ‹ˆλ‹€. ### 2.4 Ops & Reliability - **Surgical Cleanup**: 배포 μ‹œ 운영 데이터(DB, Uploads)λŠ” λ³΄μ‘΄ν•˜κ³  μ½”λ“œ μ˜μ—­λ§Œ μ •λ°€ν•˜κ²Œ κ΅μ²΄ν•˜λŠ” 방식을 μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€. - **Disaster Recovery**: `backup.py`λ₯Ό 톡해 핡심 μžμ‚°(.env, DB, Uploads)을 증뢄 λ°±μ—…ν•˜μ—¬ μ–Έμ œλ“  μ¦‰μ‹œ 볡ꡬ가 κ°€λŠ₯ν•©λ‹ˆλ‹€.