尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证OSORI 개인 가계부 + AI 코칭 (v2 리퀴드 글래스 리뉴얼 이후 버전)
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
OSORI v2 — AI 재무 코칭 가계부 사회초년생을 위한 넛지형 AI 재무 코칭 가계부. AI 재무 코칭을 새로운 차별화 기능으로 추가했습니다. 사후 리포트에 그치지 않는 AI 코칭(소비 이상치 감지 → 맥락 있는 넛지 → 목표 기반 대화형 코칭 → 성장 리포트)을 새로 만들었습니다. 자세한 배경은 docs/PRD.md 참고.查看完整 README ↗
사회초년생을 위한 넛지형 AI 재무 코칭 가계부. AI 재무 코칭을 새로운 차별화 기능으로 추가했습니다.
docs/PRD.md사후 리포트에 그치지 않는 AI 코칭(소비 이상치 감지 → 맥락 있는 넛지 → 목표 기반 대화형 코칭 → 성장 리포트)을 새로 만들었습니다. 자세한 배경은 docs/PRD.md 참고.
app/src/constants/categories.js 공용 상수). 홈 화면의 "카테고리 별 소비 분석" 도넛은 전체 카테고리를 다 보여주되 고정비는 무채색, 변동비는 컬러로 구분하고 "고정비 X원 · 변동비 Y원" 요약을 함께 보여줍니다. AI 코칭의 이상치 탐지·코칭 타겟 계산은 고정지출 자동등록 내역을 제외해, 매달 똑같이 나가는 고정비가 "비정상 소비"로 오탐되지 않도록 합니다.| 프론트엔드 | React 19 (Vite) · Axios · React Router · Chart.js |
| 백엔드 | Spring Boot 3 · Java 17 · MyBatis · PostgreSQL |
| AI 코칭 | Google Gemini API (무료 티어, gemini-2.5-flash) — Mock 폴백 내장 |
| 영수증 OCR | Naver CLOVA OCR (종량제, 기본 비활성화) |
| 환율(외화 입력) | 한국수출입은행 환율 API(무료·과거 영업일 조회) → open.er-api.com 교차환율(키 불필요) → 하드코딩 폴백. (통화,날짜) 영구 캐싱 |
| 배포 | 백엔드: Railway · 프론트엔드: Vercel |
personalPRD/
├─ docs/PRD.md 제품 요구사항
├─ app/ 프론트엔드 (React + Vite)
└─ server/ 백엔드 (Spring Boot)
brew install postgresql@16
brew services start postgresql@16
createdb fincoach
cd server
cp src/main/resources/application.properties.example src/main/resources/application-local.properties
# application-local.properties에 실제 DB 비밀번호/JWT 시크릿/외부 API 키를 채워넣는다
SPRING_PROFILES_ACTIVE=local ./mvnw spring-boot:run # http://localhost:8080/fincoach
application.properties(커밋됨, 안전한 기본값)와 application-local.properties(gitignore, 실제 로컬 시크릿)는 Spring 프로필로 분리되어 있습니다. application-local.properties에 넣은 값이 기본값을 덮어씁니다.
cd app
npm install
npm run dev # http://localhost:5174 (또는 다른 포트, vite가 자동 배정)
app/src/api/axios.jsx, http.js는 VITE_API_BASE_URL이 없으면 /fincoach 상대 경로(Vite 프록시 경유)로 로컬 백엔드를 호출합니다.
railway up -s fincoach-api — 환경변수로 DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSWORD(Railway Postgres 서비스 참조), JWT_SECRET, NAVER_OCR_*, RECEIPT_OCR_ENABLED, COACHING_LLM_ENABLED, GEMINI_API_KEY 등을 주입합니다.MAIL_ENABLED=true, MAIL_USERNAME(발신 Gmail 주소), MAIL_PASSWORD(Gmail 앱 비밀번호 — 2단계 인증 필요)를 주입해야 실제 메일이 발송됩니다. 미설정 시 인증코드는 서버 로그로만 출력되어 회원가입/재설정을 완료할 수 없습니다.FX_ENABLED=true + EXIM_FX_KEY(한국수출입은행 현재환율 API 인증키, 무료·카드 불필요)를 주입하면 과거 영업일까지 정확한 환율을 씁니다. 미설정(FX_ENABLED=false)이면 open.er-api.com(키 불필요) 최신 환율과 하드코딩 폴백으로 동작하며 부정확할 수 있는 값은 "추정"으로 표시됩니다. FX_DAILY_LIMIT로 원격 호출 상한을 둡니다.app/.env.production의 VITE_API_BASE_URL이 배포된 Railway 백엔드 URL을 가리키도록 빌드 시 고정합니다.coaching.llm.enabled=false(기본값)면 미리 정의된 Mock 코칭 문구로 동작합니다. Gemini API 키를 발급받아 true로 바꾸면 실제 LLM 응답으로 전환됩니다. 무료 티어 한도 초과/오류 시에도 자동으로 Mock으로 우아하게 대체됩니다.receipt.ocr.enabled=false(기본값)면 비활성화 메시지와 함께 수동 입력으로 유도합니다. CLOVA OCR은 종량제라 기본적으로 꺼져 있습니다.MYTRANS.ORIGINAL_AMOUNT는 항상 원화 — 차트/예산/코칭은 무영향). 원본 외화금액·적용 환율·기준일을 스냅샷으로 함께 저장하고, 사용자가 환산 원화값을 직접 덮어쓸 수 있습니다(카드 명세서 반영). 외화 고정지출은 매달 결제일 환율로 재환산됩니다. fx.enabled=false여도 폴백 환율로 기능은 동작하며, 이때 값은 "추정"으로 표시됩니다.