AI Note 저장소는 npm workspaces 기반 모노레포로 정리되어 있으며, 현재는 데스크톱 앱이 먼저 연결되어 있습니다.
- Electron
- React
- TypeScript
- Vite
- electron-builder
npm install
npm run dev루트 명령은 현재 apps/desktop 워크스페이스로 위임됩니다. 따라서 최소 검증 명령인 npm run build:renderer도 계속 루트에서 그대로 실행할 수 있습니다.
AI 기능은 Electron main process에서 Gemini API를 직접 호출합니다. 실행 환경에 API_KEY를 설정하면 기본 API provider가 메모 정리, 문맥 검색, 메모 조합에 사용됩니다.
API_KEY=your_api_key npm run dev기본 모델은 gemini-2.5-flash이며, 필요하면 AI_NOTE_AI_MODEL로 바꿀 수 있습니다.
API_KEY=your_api_key AI_NOTE_AI_MODEL=gemini-2.5-pro npm run dev네트워크 호출 없이 로컬 정리 provider만 확인하려면 AI_NOTE_ORGANIZE_PROVIDER=local을 함께 설정할 수 있습니다.
이 브랜치는 한국어 UI 미리보기 버전입니다.
- 메모 작성/수정/삭제
- AI 정리: 문장 다듬기, 공손한 문체 변환
- 문맥 검색: 자연어 질의로 관련 메모 목록 표시
npm testnpm run dist:mac
npm run dist:winWindows 설치 파일은 보통 Windows 러너가 있는 CI에서 만드는 편이 더 안정적입니다.
Playwright 기반 Electron E2E, visual snapshot, Allure 리포트 기본 설정이 포함되어 있습니다.
npm run test:e2e
npm run test:e2e:smoke
npm run test:e2e:visual
npm run test:e2e:update
npm run test:e2e:reportAllure 리포트 생성 및 열기:
npm run allure:generate
npm run allure:open참고:
- E2E는
npm run build:renderer후 dist 기반 Electron 앱을 직접 실행합니다. - 실제 앱 실행 시 메모는 Electron main process의 로컬 SQLite(
userData/memos.db)에 저장되어 앱 재시작 후에도 유지됩니다. - 기존
memos.json또는 레거시notes.json데이터가 있으면 첫 실행 시 SQLite로 자동 마이그레이션됩니다. - visual snapshot baseline은 OS별로 관리되며, 현재 OS의 baseline이 없으면 visual spec은 자동으로 skip 됩니다.
- 현재 OS baseline을 만들거나 갱신할 때는
npm run test:e2e:update를 사용합니다. - Electron E2E는 GUI가 가능한 로컬 데스크톱 환경에서 실행하는 편이 안전합니다.
- Allure HTML 생성은 로컬 Java 런타임이 필요할 수 있습니다.
apps/desktop/: Electron main/preload, React renderer, Playwright E2E를 포함한 현재 실행 앱apps/server/: 이후 서버/API 이슈를 위한 워크스페이스 자리packages/shared/: 공용 타입/계약/유틸리티 수용 자리- 루트
package.json: workspace 선언과 공통 명령 위임
docs/mvp-requirements.md: 현재 프로젝트의 MVP 요구사항, 범위, acceptance criteria, 구현 순서docs/github-task-backlog.md: GitHub 이슈로 쪼개기 위한 초기 백로그와 워크트리 분할 기준docs/engineering-workflow.md: develop 중심 브랜치 전략, 모노레포/worktree 운영 규칙, PR 기준docs/issue-driven-development-rules.md: 이슈 생성부터 브랜치/커밋/PR까지의 이슈 기반 개발 기본 운영 규칙docs/sprint-1-acceptance-smoke.md: Sprint 1 수용 기준과 데스크톱 smoke 시나리오