df9c6a6b5089ffb12e1e02a376d25a6f48efdd21
- MemoService(save_memo tool): organize(정리·분류→구조화 JSON) + saveMemo(카테고리 findOrCreate + 노트+태그 적재) 분리 설계. GUI/외부API/향후 MCP 공통 사용. - 분류 체계: PARA(카테고리 경로) + GTD(next-action/waiting/someday/reference 태그) 하이브리드. - NoteController: POST /api/notes/organize (미리보기, save=true면 원샷 저장), POST /api/notes/memo (구조화 필드 저장). - NoteRepository: insertMemo(project 포함), addTag/findTags. - DB: notes.project 컬럼 + note_tags 테이블 (V2 마이그레이션). - 프론트: notes/new 텍스트 모드에 'AI로 정리' → 미리보기(카테고리/제목/태그/ 프로젝트/요약/본문 수정) → 정리본 저장 흐름 추가. - LLM은 OCI GenAI(현재 gpt-5.6-terra) 구조화 JSON 출력 방식(tool-calling 의존 없음). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SUNDOL
Smart Unified Natural Dog-Operated Layer
Personal Knowledge House · AI Assistant · Productivity Hub
Features
- Knowledge Ingestion — YouTube, blog, news, raw text 자동 수집 및 처리
- Semantic Search — Oracle 23ai VECTOR 기반 의미 검색
- AI Chat (RAG) — 지식 기반 대화, 출처 인용
- Study Cards (SRS) — SM-2 간격 반복 학습 카드
- Todos — 작업/하위작업 관리
- Habit Tracker — 습관 추적, 스트릭 관리
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Spring Boot 3, Java 21 |
| Frontend | Next.js 14, TypeScript, Tailwind CSS |
| Database | Oracle 23ai (VECTOR support) |
| AI | OCI Generative AI (Cohere / Llama) |
| Auth | Google SSO + JWT |
| Cache | Redis |
Getting Started
# 1. 환경변수 설정
cp .env.sample .env
# .env 파일에 실제 값 입력
# 2. Docker Compose로 실행
docker-compose up -d
# 3. 개별 실행 (Backend)
cd sundol-backend
mvn spring-boot:run
# 4. 개별 실행 (Frontend)
cd sundol-frontend
npm install && npm run dev
Project Structure
sundol/
├── sundol-backend/ # Spring Boot 3
├── sundol-frontend/ # Next.js 14
├── db/migration/ # Flyway SQL scripts
├── docs/ # Specifications
├── docker-compose.yml
├── .env.sample # Environment variable template
└── README.md
자세한 스펙은 docs/SUNDOL_SPEC.md 참조.
Description
Languages
Java
50.7%
TypeScript
31.7%
JavaScript
13.4%
PLSQL
1.8%
Python
1.4%
Other
0.9%