Files
inkling/inkling.md
altair823 bbbe292fc6 Add vertical slice design spec for Inkling MVP
Initial design document covering the first end-to-end slice of Inkling:
Quick Capture, SQLite storage, Local Ollama AI pipeline (gemma4:9b),
and Inbox with inline editing. Scoped for dogfood on Windows/macOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 19:12:21 +00:00

26 KiB
Raw Blame History

Inkling — 메모 습관 형성 소프트웨어 기획서

프로젝트명: Inkling 작성자: 김태현 작성일: 2026-04-25 문서 버전: v1.4


1. 배경 및 문제 정의

1.1 배경

조직 내 지식 자산의 생산성과 협업 효율은 구성원 개개인의 "기록 습관"에 의존한다. 원격·하이브리드 근무가 보편화되면서 구두로 공유되던 맥락이 사라지고, 문서화된 기록이 곧 팀의 생산성을 결정하는 시대가 되었다. 그럼에도 많은 구성원은 "메모를 해야 한다는 것은 알지만, 몸에 배지 않아서 하지 못한다"는 문제를 반복적으로 겪고 있다.

1.2 관찰된 문제

기록하지 않는 사람은 개인 차원에서 과거의 의사결정 근거를 잊고, 같은 고민을 반복하며, 회고 시 근거 자료를 찾지 못한다. 팀 차원에서는 작업 특이사항이 사내 Confluence에 남지 않아 동료가 동일한 함정에 빠지고, 인수인계가 어려워지며, 온보딩 비용이 증가한다. 기존 메모 도구(Notion, Obsidian, Apple Notes 등)는 강력한 저장·검색 기능을 제공하지만, "기록을 시작하게 만드는 장치"는 부족하다. 즉 대부분의 도구는 이미 기록 습관이 있는 사용자를 전제로 설계되어 있다.

1.3 해결하고자 하는 것

본 프로젝트는 기록 습관이 없는 사용자를 대상으로, ① 기록을 시작하는 데 필요한 마찰을 극단적으로 낮추고, ② AI가 파편화된 입력을 의미 있는 메모로 자동 정리해주며, ③ 반복적 리마인더·스트릭 등 행동과학 기반 장치로 습관을 형성시키고, ④ 사내 Confluence로 쉽게 옮겨 붙여넣을 수 있는 마크다운 출력을 통해 팀 지식으로 연결하는 것을 목표로 한다.


2. 타겟 사용자와 페르소나

2.1 주 타겟

20대 후반~30대 중반의 주니어·미드레벨 지식 근로자 중, 업무에서 기록의 필요성을 최근 자각했으나 습관화에 실패한 사용자를 1차 타겟으로 한다. 특히 회사 업무는 macOS, 개인 작업은 Windows처럼 기기별로 용도가 분리된 하이브리드 사용자를 핵심 상정 사용자로 본다.

2.2 퍼소나 — "기록 고아" 김태현 (29세, IT 기획자)

김태현은 회사에서는 MacBook으로 기획·회의를, 집에서는 Windows PC로 사이드 프로젝트·학습을 한다. 팀 위키(Confluence)와 개인 메모 앱을 모두 잘 사용하지 않는다. 업무를 끝내고 나면 "다음에 정리해야지"라고 미루다가 결국 남기지 못한다. 최근 동료가 그의 과거 작업 이력을 물어봤을 때 제대로 답하지 못해 민망한 경험을 했다. 그는 복잡한 세팅이나 계층 구조, 태그 체계를 만들 의지가 없다. 그가 원하는 것은 "뭔가 기억해둘 가치가 있는 순간에, 3초 안에, 힘 빼지 않고" 던져둘 수 있는 바구니다.

2.3 사용 맥락

업무 기기(macOS)에는 팀·프로젝트 관련 메모가, 개인 기기(Windows)에는 사이드 프로젝트·학습·생활 관련 메모가 쌓인다. 기기별로 자연스럽게 용도가 갈리므로, 별도의 서버 동기화 없이도 각 기기에서 로컬로 완결된 경험이 제공되어야 한다.


3. 제품 비전과 핵심 가치

3.1 비전 문장

"기록할 줄 모르는 사람도, 하루 끝에 돌아보면 쓸 만한 기록이 쌓여 있게 한다."

3.2 핵심 가치 (3대 축)

(1) 습관 형성 (Habit Formation) 행동과학 프레임워크(BJ Fogg의 Tiny Habits, Atomic Habits의 CueCravingResponseReward 루프)에 기반해, 사용자가 의식하지 않아도 기록이 이루어지도록 설계한다. 시간·이벤트 기반 리마인더, 연속 기록 스트릭, 주간 리뷰 리포트를 통해 동기와 피드백을 주기적으로 공급한다.

(2) AI 자동 요약·정리 (Zero-Effort Organization) 사용자가 남긴 날것의 텍스트·음성·스크린샷을 AI가 자동으로 정제하여, 제목·요약·태그·관련 메모 링크를 생성한다. 사용자는 "그냥 던지기만" 해도, 다시 돌아왔을 때 정리된 메모를 마주한다. AI 추론은 로컬·LAN에 설치된 Ollama를 기본으로 사용하여 데이터가 기기 밖으로 나가지 않도록 하며, 사용자가 원할 때만 외부 LLM API로 전환한다.

(3) 마찰 최소화 UX (Frictionless Capture) 전역 단축키 한 번, 트레이 아이콘 한 번의 클릭, 음성 한 마디로 기록이 시작되도록 한다. 폴더·태그·카테고리 선택을 강요하지 않으며, 제목이 없어도 저장을 허용한다. "완벽한 메모보다 존재하는 메모가 낫다"를 원칙으로 한다.


4. 주요 기능

4.1 Quick Capture (순간 포착)

macOS와 Windows 모두 전역 단축키(Cmd/Ctrl + Shift + J)로 어느 화면에서든 즉시 입력창을 띄운다. 텍스트, 음성(마이크 녹음 → 로컬/원격 STT), 스크린샷, 웹 URL, 클립보드 내용이 단일 입력 경로로 처리된다. 모든 입력은 기본적으로 "임시 보관함(Inbox)"으로 들어가며, 분류는 AI와 나중의 사용자에게 위임된다. 안드로이드 보조 앱은 홈 화면 위젯과 공유 시트 기반으로 외출 중 기록을 보완한다.

4.2 AI 자동 정리 (Auto-Organize)

입력된 원문은 저장 직후 비동기로 LLM 파이프라인을 거친다. 파이프라인은 제목 자동 생성, 3줄 요약, 태그 추천(최대 3개), 관련 기존 메모 링크 제시, 프로젝트 자동 분류를 수행한다. 사용자는 결과를 그대로 수락하거나, 한 번의 탭으로 수정할 수 있다. 중요한 원칙은 "AI 결과는 제안일 뿐, 원문은 절대 훼손하지 않고 별도 필드에 보존한다"이다. 이 원칙 덕분에 사용자는 언제든 원본과 AI 결과를 각각 따로 확인·내보내기 할 수 있다(4.7 참조). 추론 엔진은 기본적으로 Ollama를 사용하며, 외부 API로의 전환은 선택 옵션이다(6.5 참조).

4.3 습관 엔진 (Habit Engine)

사용자의 기록 패턴을 학습하여, 기록이 끊기기 전에 개입한다. 기본 루틴은 세 가지다. 첫째, 업무 시작 시점(캘린더 연동 기반)에 "오늘의 주요 작업"을 30초 안에 남기도록 유도하는 모닝 프롬프트. 둘째, 업무 종료 시점에 "오늘의 특이사항·배운 점"을 남기도록 하는 이브닝 프롬프트. 셋째, 금요일 오후에 주간 회고를 생성해주고 사용자는 채워 넣기만 하는 위클리 리뷰. 스트릭, 뱃지, 주간 통계는 과도하지 않은 수준으로 제공해 부담감보다 성취감을 남긴다.

4.4 Confluence용 마크다운 내보내기 (Wiki Export)

본 제품은 팀 위키에 자동 발행하지 않는다. 대신 사용자가 Confluence로 "직접 옮겨 적는" 행위에 필요한 마찰만 제거한다. AI는 개인 메모 중 "팀에 공유할 가치가 있는" 항목을 후보로 추천하며(예: 작업 특이사항·트러블슈팅 기록), 사용자는 한 번의 클릭으로 Confluence 붙여넣기에 최적화된 마크다운 블록을 얻는다. 이 출력은 다음 기준을 만족한다.

  • 기본 템플릿: ## 문제 / ## 원인 / ## 해결 / ## 참고 섹션을 포함한 구조화된 마크다운
  • Confluence 에디터가 마크다운 붙여넣기를 올바르게 해석하도록 검증된 헤더·리스트·코드블록·테이블 문법만 사용
  • 코드블록 언어 태그(예: ```python) 자동 유지, 인라인 코드·링크 포맷 보존
  • 클립보드 복사 버튼과 .md 파일 저장 버튼을 나란히 제공

이 흐름에서 제품의 역할은 "발행 도구"가 아니라 "붙여넣기 직전까지의 정리 도구"이다. 추후 사용자가 원할 경우 Confluence REST API 연동을 선택적 기능으로 추가할 수 있도록 내부 인터페이스를 분리해둔다(6.4 참조).

4.5 맥락 기반 검색 (Contextual Recall)

단순 키워드 검색에 더해, "지난달 A 프로젝트 관련 이슈"처럼 자연어로 묻는 검색을 지원한다. 로컬 벡터 인덱스(예: sqlite-vss 또는 LanceDB 임베디드) 기반으로 의미적 유사도를 활용하며, 검색 결과에는 원문 메모와 함께 당시의 관련 캘린더 이벤트 링크가 함께 노출된다. 모든 인덱스는 로컬 파일로 존재한다.

4.6 프로필 격리와 잠금 (Profiles & Lock)

하나의 기기에서도 용도가 섞일 수 있으므로, 앱은 다중 프로필을 지원한다. 각 프로필은 물리적으로 분리된 로컬 데이터베이스 파일을 가지며, 비밀번호로 잠글 수 있다. 잠긴 프로필은 앱 내에서도 목록에 노출되지 않거나 이름만 노출되며, 열람을 위해서는 비밀번호 인증이 필요하다. SSO나 조직 계정 연동은 하지 않는다. 민감 정보 필터는 기본 활성화되며, AI 처리 시 마스킹 후 전송을 지원한다.

예시 사용 패턴:

  • macOS 기기 → "회사" 프로필 1개만 사용 (비밀번호 잠금)
  • Windows 기기 → "개인" 프로필 + 필요 시 "학습" 프로필로 분리

4.7 프로필 전체 마크다운 내보내기 (Profile Export)

Confluence용 단건 내보내기(4.4)와 별개로, 프로필 단위의 전체 메모를 마크다운 묶음으로 내보내는 기능을 제공한다. 이 기능의 목적은 세 가지다. 첫째, 사용자가 언제든지 자신의 데이터를 다른 도구(Obsidian, Logseq, Git 저장소 등)로 옮길 수 있도록 보장(vendor lock-in 방지). 둘째, 원본과 AI 결과를 모두 자산으로 남기도록 보장. 셋째, 장기 보관·협업을 위한 프리저브 포맷 제공.

내보내기 옵션 사용자는 내보내기 시 다음을 선택한다.

  • 원본만 (Raw): 사용자가 실제로 입력한 날것의 본문만 포함. AI가 생성한 제목·요약·태그는 제외.
  • AI 정리본만 (AI-curated): AI가 생성한 제목·요약·태그·프로젝트 분류가 반영된 정리본.
  • 병합본 (Both, 권장): 한 메모 파일 안에 원본과 AI 결과를 함께 포함. 이후 어느 쪽이든 참조 가능.

출력 구조 내보낸 결과는 profile-name_YYYYMMDD.zip 형태이며, 아래와 같은 디렉터리 구조를 가진다.

profile-name_20260425/
├── README.md                # 프로필 메타데이터, 내보내기 옵션, 생성 일시
├── index.md                 # 전체 메모 목록 (날짜순·태그별 링크)
├── notes/
│   ├── 2026-04-25_회의-A프로젝트-이슈정리.md
│   ├── 2026-04-24_트러블슈팅-timeout.md
│   └── ...
└── media/
    ├── 2026-04-24_screenshot-01.png
    └── ...

개별 메모 파일은 YAML frontmatter(작성일·태그·프로젝트·원본 저장 경로)를 포함하며, 병합본의 경우 본문은 다음과 같은 이중 섹션 구조를 갖는다.

---
date: 2026-04-24T18:32:00
tags: [troubleshooting, api, timeout]
project: A-프로젝트
source: quick-capture
---

## AI 정리본
(AI가 생성한 제목·요약·구조화된 본문)

---

## 원본 (Raw)
(사용자가 실제로 입력한 날것의 텍스트, 편집되지 않은 상태 그대로)

재가져오기 (Re-import) 내보낸 zip은 동일 앱의 다른 기기/프로필에 불러올 수 있다. YAML frontmatter 기반으로 메타데이터를 복원하며, 중복 메모는 해시 기준으로 건너뛴다. 이는 기기 교체·재설치 시 데이터 이전 경로 역할을 한다.

원본 보존 원칙 앞서 4.2에서 명시한 "AI 결과는 원문을 훼손하지 않는다" 원칙과 맞물려, 내부 DB에서도 원본 텍스트는 별도 컬럼에 변경 없이 저장된다. 그래야 본 기능에서 "원본만" 내보내기가 사실 그대로 가능하다.


5. 핵심 사용자 플로우

5.1 최초 온보딩 (3분 이내)

앱 실행 후 사용자는 세 가지 질문만 받는다. 이 기기를 어떤 용도로 쓸 것인가(업무/개인/혼합), 기록이 가장 필요한 순간이 언제인가, 알림을 받을 시간대는 언제인가. 이 답변만으로 기본 프로필과 루틴이 자동 설정되며, 복잡한 구조화 작업은 생략한다. 온보딩 마지막 단계에서 전역 단축키를 직접 눌러보게 하여, 첫 메모를 유도한다. "첫 메모를 남겼다"는 경험이 북극성 지표(Aha Moment)다.

5.2 일상적 사용 플로우 (업무 기기 기준)

(1) 회의 중 기억할 내용 발생 → Cmd+Shift+J → 한 줄 입력 → Esc → 완료. (2) 터미널 트러블슈팅 중 해결한 이슈 → 스크린샷 단축키로 Inkling에 바로 전송 → 완료. (3) 퇴근 직전 이브닝 프롬프트 → 트레이 아이콘 클릭 → 3줄 작성 → 완료. (4) 다음 날 아침, AI가 정리해둔 어제의 메모 중 "Confluence 공유 후보"로 표시된 항목 확인 → "Confluence용 마크다운 복사" 클릭 → 브라우저의 Confluence 페이지에서 붙여넣기 → 직접 다듬어 발행.

5.3 주간 회고 플로우

금요일 오후 5시에 자동 생성된 주간 회고 초안이 푸시된다. 초안은 한 주간의 스트릭, 기록한 메모 개수, 주요 태그, AI가 추출한 "이번 주 배운 점 3가지"를 포함한다. 사용자는 비어 있는 섹션만 채우면 되며, 필요 시 Confluence 마크다운으로 내보낼 수 있다.


6. 기술 스택 및 아키텍처 개요

6.1 1급 지원 플랫폼

데스크톱 Windows와 macOS를 1급 플랫폼으로 한다. 두 OS에서 UI·성능·단축키가 동등하게 동작해야 한다. 모바일 Android는 2급으로, Quick Capture와 임시 보관함 열람만 제공하는 보조 앱 형태로 시작한다. iOS는 현재 범위 외.

6.2 클라이언트 기술

크로스플랫폼 데스크톱은 Tauri(Rust + Web 프론트엔드) 또는 Electron(Node + React) 중 선택한다. 바이너리 크기·메모리 사용량 측면에서 Tauri가 유리하나, 네이티브 모듈 풍성함과 생태계는 Electron이 우위. 초기에는 개발 속도를 위해 Electron + React + TypeScript로 출발하고, 필요 시 Tauri로 이관하는 2단계 전략을 권장한다. 프론트엔드 레이어는 두 대상에서 공유된다.

Android 보조 앱은 Kotlin 네이티브 또는 Flutter로 경량 구현한다.

6.3 데이터 저장 (로컬 전용)

본 제품은 백엔드 서버를 두지 않는다. 모든 데이터는 기기 로컬에 저장되며, 기기 간 동기화는 하지 않는 것을 기본으로 한다. macOS에는 업무 관련 메모, Windows에는 개인 관련 메모가 자연스럽게 격리된다.

로컬 저장 구성은 다음과 같다.

  • 메타데이터·텍스트 본문: SQLite (프로필당 1 파일)
  • 미디어 원본(음성·이미지): 프로필 디렉터리 내 media/ 하위에 파일 저장
  • 벡터 임베딩 인덱스: sqlite-vss 또는 LanceDB 임베디드
  • 설정·API 키: OS 키체인(macOS Keychain, Windows Credential Manager)에 저장

백업은 "프로필 디렉터리 전체를 zip으로 내보내기/불러오기" 수동 기능으로 제공한다. 사용자가 원한다면 Dropbox·iCloud·OneDrive 등의 폴더 안에 프로필 디렉터리를 두어 개인적으로 동기화할 수 있으나, 이는 제품이 공식 지원하는 기능이 아니며 책임도 사용자에게 있다.

Android 앱은 독립된 로컬 DB를 가지며, 데스크톱과 동기화하지 않는다(안드로이드는 외출 중 Quick Capture 보조이며, 추후 수동 내보내기로 옮겨 붙이는 수준만 지원).

6.4 외부 연동 (확장 가능한 인터페이스)

제품은 소수의 연동만 내장하고, 추후 추가할 수 있도록 플러그인 형태의 인터페이스를 정의한다.

캘린더 어댑터 (Calendar Adapter) 습관 엔진이 "업무 시작/종료 시점"을 판단하기 위해 캘린더 정보를 읽는 인터페이스를 정의한다. 어댑터 1차 구현은 Google Calendar (OAuth 2.0, read-only 스코프). 사내 캘린더의 경우 사용자가 API 스펙을 제공하면 해당 어댑터를 추가 구현한다. 어댑터 계약은 listEventsInRange(start, end) → Event[] 수준의 최소 인터페이스로 정의하여, 다른 캘린더도 같은 계약을 구현하면 교체 가능하게 한다.

Confluence 내보내기 기본적으로는 API 연동 없이 마크다운 복사만 제공한다(4.4). 추후 사용자가 원할 경우, Confluence REST API를 통해 특정 Space·부모 페이지 하위에 초안(Draft) 상태로 페이지를 생성하는 선택적 기능을 추가할 수 있도록 별도 모듈로 설계해둔다. 1차 범위에는 포함하지 않는다.

6.5 AI·LLM (로컬 Ollama 우선)

본 제품은 AI 추론을 로컬 또는 LAN 상의 Ollama 서버를 통해 수행하는 것을 기본값으로 한다. 데이터가 기기·사내망을 떠나지 않기 때문에 로컬 전용 저장 원칙(6.3)과 프라이버시 정책(9.3)이 끝까지 일관되게 유지된다. 외부 LLM API는 "사용자가 원할 때만" 쓰는 선택지이며, 기본 상태에서는 호출되지 않는다.

Inference Provider 추상화 내부 코드에서는 모든 AI 호출이 InferenceProvider 인터페이스를 거친다. 이 인터페이스는 generate(prompt, options) → Response 형태의 최소 계약을 가지며, 구현체는 교체 가능하다. 1차 구현체는 두 종류다.

  • Local Ollama Provider (기본): 같은 기기에 설치된 http://localhost:11434에 붙는다.
  • LAN Ollama Provider: 사용자가 지정한 LAN 주소(예: http://192.168.0.20:11434)에 붙는다. 가족·팀 공용 GPU 서버에 Ollama를 띄워 두고 여러 기기에서 공유하는 시나리오를 지원한다.
  • External API Provider (선택): Claude/OpenAI 등 외부 API. BYOK 방식으로 사용자가 본인의 API 키를 앱 설정에 입력하면 OS 키체인(macOS Keychain / Windows Credential Manager)에 저장된다.

기본 모델 정책 — Gemma 4 시리즈, 최대 26B 로컬·LAN Ollama Provider에서 사용하는 기본 모델 계열은 Gemma 4 시리즈로 고정하며, 파라미터 규모는 최대 26B까지로 제한한다. 26B 상한선은 소비자급 GPU(예: 24GB VRAM 클래스)와 애플 실리콘 통합 메모리 환경에서 양자화(예: Q4_K_M, Q5_K_M) 적용 시 실사용 가능한 속도를 보장하기 위한 것이며, 그 이상의 모델은 범위 외로 둔다. 기본 후보 티어는 다음과 같다.

  • 경량 (Light): gemma4:2b 또는 gemma4:4b — 저사양 기기·배터리 모드·빠른 응답 우선 시나리오.
  • 표준 (Standard, 권장 기본값): gemma4:9b — 대부분의 데스크톱에서 속도·품질 균형점.
  • 고품질 (High): gemma4:27b를 양자화하여 26B 상한 내로 들어오는 변형 또는 최상위 공식 체크포인트 중 26B 이하인 것을 사용. 주간 회고 생성 등 품질 우선 작업에 선택적으로 사용.

모델명은 설정 UI의 드롭다운으로 제공되며, 사용자는 기본값(표준)을 그대로 두거나 위 세 티어 사이에서 전환할 수 있다. 공식 Gemma 4 체크포인트가 아닌 커스텀 파인튜닝·외부 모델은 "고급 설정" 토글을 켰을 때만 수동 입력을 허용하고, UI에는 지원 범위 외라는 경고를 함께 표시한다.

설정 UI 설정 화면에는 위 세 가지 Provider 중 어느 것을 기본으로 쓸지, 위 세 티어 중 어떤 Gemma 4 모델을 쓸지, 그리고 "이 메모만 외부 API로 처리" 같은 일회성 오버라이드를 어떻게 노출할지 결정하는 옵션이 제공된다. 기본 Provider가 응답 실패·타임아웃일 때의 폴백 정책(재시도·대체 Provider 사용 여부)도 사용자가 선택한다.

헬스 체크와 자동 진단 앱 구동 시 선택된 Ollama 엔드포인트에 /api/tags 호출을 보내 지정한 Gemma 4 모델이 실제 설치되어 있는지 확인하고, 없으면 ollama pull gemma4:9b와 같은 명령 가이드를 안내한다. 사용자의 VRAM·RAM 상황을 간이 체크하여 26B 모델이 돌아가지 않을 것으로 판단되면 자동으로 한 티어 낮은 모델을 제안한다. LAN 프로바이더의 경우 연결 실패 시 사용자에게 로컬 모드 또는 외부 API로의 전환을 제안한다.

음성 인식 음성은 로컬 Whisper(whisper.cpp 등) 우선, 용량·정확도 이슈 시 외부 STT API로 폴백한다. 이 역시 Provider 추상화를 따른다.

마스킹 레이어 외부 API Provider가 선택된 경우에 한해, 프롬프트 전송 직전 로컬 마스킹 레이어가 이메일·전화번호·API 키 패턴을 치환한다. 로컬·LAN Ollama 사용 시에는 마스킹을 선택 옵션으로 제공한다(기본 비활성).


7. 성공 지표 (KPI)

7.1 Aha Moment 지표

설치 후 7일 이내 "3일 연속 기록 달성" 비율을 핵심 선행 지표로 본다. 목표는 30% 이상. 이 지표에 도달한 사용자는 장기 리텐션이 현저히 높을 것으로 가설한다.

7.2 지속 사용 지표

주간 활성 사용자(WAU) 대비 "해당 주에 3회 이상 기록한 사용자" 비율(Habit WAU/WAU)을 50% 이상으로 목표한다. D28 리텐션 25% 이상을 베이스라인으로 설정한다.

7.3 가치 전달 지표

AI가 추천한 Confluence 후보 중 실제 "마크다운 복사" 버튼이 클릭된 비율 30% 이상, 월간 사용자당 평균 기록 수 40건 이상, 주간 회고 완료율 40% 이상을 2차 지표로 본다.

7.4 정성 지표

사용 한 달 후 "나는 이제 메모하는 사람이다"에 동의하는 비율 50% 이상을 정성 지표로 추적한다.


8. 개발 로드맵

8.1 Phase 1 — MVP (8주)

범위: macOS + Windows 데스크톱, Quick Capture, AI 자동 정리(Local Ollama Provider 기본 + 외부 API BYOK 선택), Inbox, 로컬 SQLite 저장, 단일 프로필, 기본 습관 엔진(모닝·이브닝 프롬프트 + 스트릭). 목표: 본인 포함 10명 내부 사용자에게 배포하여 "마찰 없는 입력"과 "로컬 AI 정리 품질"을 검증. Aha Moment(7일 내 3일 연속) 도달률 측정. 종료 조건: 내부 사용자 중 60% 이상이 2주 연속 일 1회 이상 기록, Local Ollama 추론 레이턴시 p95 목표치 달성.

8.2 Phase 2 — 정식 버전 (12주)

범위: 다중 프로필 + 비밀번호 잠금, LAN Ollama Provider, 맥락 기반 검색(로컬 벡터), Confluence용 마크다운 내보내기, 프로필 전체 마크다운 내보내기·재가져오기(원본/AI정리/병합 옵션), 주간 회고 자동 초안, Google Calendar 어댑터, Android 보조 앱, 프로필 zip 백업/복원. 목표: 외부 사용자 100명 클로즈드 배포 → 퍼블릭 배포. WAU·리텐션 지표 추적 및 습관 엔진 튜닝. 종료 조건: 정식 배포 가능 품질 도달(충돌률·데이터 유실률 목표치 만족) 및 KPI 1·2 기준 충족.


9. 리스크 및 대응 전략

9.1 "또 하나의 메모 앱" 리스크

기존 강자(Notion, Apple Notes, Obsidian 등)와 정면 경쟁은 불리하다. 대응으로, 본 제품은 "메모 앱"이 아니라 "메모 습관 형성 도구"로 포지셔닝하며, 기록의 진입 마찰을 낮추는 것에 집중한다. 아카이브·위키로의 최종 저장은 Confluence 등 기존 도구로 흘려보낸다.

9.2 AI 품질 리스크

AI 자동 정리가 부정확할 경우 사용자는 실망하고 이탈한다. 대응으로, 원문은 절대 훼손하지 않으며 AI 결과는 항상 "제안" 형태로 노출하고, 사용자 피드백(수락·수정·거절)을 프롬프트 개선에 반영한다. 초기에는 보수적인 요약·태그 수를 유지하여 오버엔지니어링을 방지한다.

9.3 프라이버시 리스크

업무 메모에 민감 정보가 포함될 가능성이 높다. 대응은 네 겹이다. 첫째, 로컬 전용 저장으로 서버로 원문이 유출될 경로 자체를 없앤다. 둘째, AI 추론의 기본값을 로컬·LAN Ollama로 두어, 외부 LLM 제공자에게 원문이 전송되는 것을 기본 상태에서는 전혀 허용하지 않는다. 셋째, 사용자가 외부 API Provider를 명시적으로 선택했을 때에 한해 전송 직전 로컬 마스킹 레이어가 이메일·전화번호·API 키 패턴을 치환한다. 넷째, 프로필 단위 비밀번호 잠금을 제공한다.

9.4 습관 형성 장치 남용 리스크

스트릭·알림이 오히려 피로감을 유발할 수 있다. 대응으로, 알림 강도를 사용자가 조절할 수 있게 하고, 스트릭이 끊겼을 때의 메시지를 죄책감 유발형이 아닌 회복 친화형으로 설계한다("3일 쉬었네요. 오늘 한 줄만 다시 시작해볼까요?").

9.5 로컬 전용의 제약

기기 간 동기화가 없는 것은 의도된 설계지만, 기기 교체·분실 시 데이터 손실 위험이 있다. 대응으로, ① 프로필 zip 내보내기/불러오기를 일상적으로 안내(온보딩·월 1회 리마인더), ② 사용자가 선택 시 프로필 디렉터리를 클라우드 폴더(Dropbox 등)에 두는 방법을 FAQ로 제공, ③ 데이터베이스 무결성 점검 루틴을 앱 구동 시 실행한다.


10. 다음 단계

본 기획서 승인 이후, ① 사용자 인터뷰 10명(기록 습관 실패 경험자 대상)을 2주 내 진행하여 퍼소나와 문제를 검증하고, ② 핵심 화면 3종(Quick Capture, Inbox, Confluence 마크다운 내보내기 화면)의 와이어프레임을 작성하며, ③ Local Ollama 기반 AI 파이프라인 프로토타입을 제작해 Gemma 4 시리즈 세 티어(gemma4:2b/4b, gemma4:9b, 26B 상한 내 고품질 변형)의 제목·요약·태그 품질과 응답 레이턴시를 사전 벤치마크하고, ④ Phase 1 MVP 스프린트(macOS·Windows 동시 착수)를 시작한다. 사내 캘린더 API 스펙이 확보되는 시점에 캘린더 어댑터 구현 일정에 추가한다.


본 문서는 사용자 인터뷰와 프로토타입 결과에 따라 개선될 수 있다.