v0.90.4 | 커피 로스터리 통합 관리 시스템 (데스크톱 앱)
커피 로스터리의 원두 관리, 로스팅 기록, 재고 추적, 원가 계산, 입고 문서 OCR, 글로벌 원두 시세 분석을 하나의 데스크톱 앱으로 통합한 시스템입니다.
| 카테고리 | 기능 |
|---|---|
| 원두 관리 | 생두/원두/블렌드 CRUD, 다국어(한/영), WebP 이미지 최적화, 이미지 크롭/오프셋 |
| 로스팅 | 싱글 오리진/블렌드 로스팅 기록, 손실률 분석, 배치 번호 자동 생성 |
| 재고 | FIFO 기반 재고 추적, 입출고 자동 반영, 재고 조정/복원 |
| 입고 OCR | Gemini AI 명세서 자동 인식, 생두/로스팅 입고 문서 관리, PDF 뷰어 |
| 블렌드 레시피 | 레시피 관리, 블렌드 원가 자동 계산 |
| 분석 | 더문 분석(거래처/재고/원가), 글로벌 원두 시세(GSC/ALMACIELO), 가격 비교 |
| 로스팅 시뮬레이터 | 가상 로스팅 프로파일, 곡선 편집, 점수 평가, 로그 저장 |
| 디자인 설정 | 10+ 테마, 보드 스타일 커스터마이징, 프리셋, 히어로 이미지, 로고 |
| 상담 채팅 | Telegram 봇 연동, 실시간 WebSocket, 파일 전송, 읽음/안읽음 |
| 글로벌 검색 | FTS5 전문 검색, 초성 검색(es-hangul), 8개 테이블 통합 |
| 데스크톱 | Electron 앱, 자동 업데이트, 커스텀 타이틀바, 브라우저 접속 차단 |
┌─────────────────────────────────────────────┐
│ Electron Desktop Shell │
│ ┌───────────────────────────────────────┐ │
│ │ Next.js Frontend (Standalone) │ │
│ │ React 18 + TypeScript + Tailwind │ │
│ │ shadcn/ui + Virtuoso + Recharts │ │
│ └──────────────┬────────────────────────┘ │
│ │ REST + WebSocket │
│ ┌──────────────▼────────────────────────┐ │
│ │ FastAPI Backend (PyInstaller) │ │
│ │ SQLAlchemy + Pydantic + Gemini AI │ │
│ │ Telegram Bot (aiogram) │ │
│ └──────────────┬────────────────────────┘ │
│ │ │
│ ┌──────────────▼────────────────────────┐ │
│ │ SQLite + FTS5 (8 tables, trigram) │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
| 환경 | Frontend | Backend |
|---|---|---|
| 개발 (WSL) | 3500 | 8100 |
| 데스크톱 (Electron) | 15678 | 18765 |
Themoon/
├── .agent/ # 에이전트 설정 및 문서
│ ├── AGENTS.md # 마스터 인덱스
│ ├── CRITICAL_RULES.md # 핵심 규칙
│ └── docs/ # 기술 문서, 컨벤션, 리서치
│
├── backend/ # FastAPI 백엔드
│ └── app/
│ ├── api/v1/endpoints/ # REST API 엔드포인트
│ ├── models/ # SQLAlchemy 모델
│ ├── repositories/ # Repository 패턴
│ ├── services/ # 비즈니스 로직
│ ├── main.py # 앱 엔트리 (개발)
│ └── main_desktop.py # 앱 엔트리 (데스크톱)
│
├── frontend/ # Next.js 프론트엔드
│ ├── app/ # App Router 페이지
│ │ ├── analytics/ # 분석 (더문/글로벌)
│ │ ├── beans/ # 원두 관리
│ │ ├── blends/ # 블렌드 (레시피/로스팅)
│ │ ├── inbound/ # 입고 (생두/로스팅 OCR)
│ │ ├── inventory/ # 재고 현황
│ │ ├── roasting/ # 로스팅 이력
│ │ └── search/ # 글로벌 검색
│ ├── components/ # React 컴포넌트
│ │ ├── board/ # Board V2 (통합 리스트)
│ │ ├── detail-view/ # 상세 뷰 (Compound)
│ │ ├── feedback-chat/ # 상담 채팅 (Telegram)
│ │ ├── layouts/ # AppLayout, Sidebar, TitleBar
│ │ └── providers/ # Context, Guard, Loading
│ ├── lib/ # API 클라이언트, 유틸리티
│ └── types/ # TypeScript 타입 정의
│
├── electron/ # Electron 데스크톱 셸
│ ├── src/
│ │ ├── main.ts # 메인 프로세스
│ │ ├── preload.ts # IPC Bridge (contextBridge)
│ │ ├── process-manager.ts # Backend/Frontend 프로세스 관리
│ │ └── updater.ts # 자동 업데이트 (GitHub Releases)
│ └── build-windows.ps1 # Windows 빌드 스크립트
│
├── dev.sh # 개발 서버 관리 (start/stop/restart)
├── .env # 환경 변수 (backend)
├── .env.local # 환경 변수 (frontend)
└── themoon.db # SQLite 데이터베이스
- WSL2 (Ubuntu) — Windows CMD/PowerShell 실행 금지
- Python 3.12+ — Backend (FastAPI + uvicorn)
- Node.js 20+ — Frontend (Next.js 14)
- SQLite — 기본 내장
# 1. 개발 서버 시작 (Backend + Frontend 동시 실행)
./dev.sh
# 2. 브라우저 접속
# Frontend: http://localhost:3500
# Backend: http://localhost:8100# PowerShell에서 실행 (WSL 소스를 자동 동기화)
.\electron\build-windows.ps1 -SyncWSL| 영역 | 기술 |
|---|---|
| Frontend | Next.js 14 (App Router, Standalone), React 18, TypeScript, Tailwind CSS, shadcn/ui |
| Backend | FastAPI, SQLAlchemy 2.0, Pydantic V2, uvicorn |
| Database | SQLite + FTS5 (전문 검색, 트라이그램) |
| Desktop | Electron 35, electron-updater (GitHub Releases) |
| AI/OCR | Google Gemini (명세서 OCR, 분석) |
| Chat | Telegram Bot API (aiogram), WebSocket, Telethon (MTProto) |
| Build | PyInstaller (Backend), Next.js Standalone (Frontend), electron-builder (Installer) |
Private — The Moon Drip Bar
버전: v0.90.4 최종 업데이트: 2026-02-27