1편에서는 노션이 불편했던 이유, Claude Code로 개발을 시작하기까지의 과정을 정리했다.
기획 → 지침서 작성 → 마일스톤 단위 개발이라는 흐름까지 잡아두고 끝냈는데, 이번 글에서는 실제로 어떤 앱이 만들어졌는지 소개하려고 한다.
이름은 DailyDesk로 지었다. 매일 책상에 앉아서 여는 메모장 같은 느낌을 주고 싶었다.
기술 스택은 Electron + React + TypeScript를 기본으로, 에디터는 TipTap, 데이터 저장은 SQLite(better-sqlite3), 상태 관리는 Zustand을 썼다. 빌드 도구는 electron-vite를 사용했다. 이 조합도 처음에 Claude랑 논의하면서 정한 건데, 크로스 플랫폼 데스크탑 앱이니까 Electron이 자연스러웠고, SQLite는 서버 없이 로컬에서 돌리기에 딱이었다.
메모를 만들 때 세 가지 모드를 고를 수 있다. 일반 메모, 회의록, 할 일(TODO). 노션에서 한 페이지 안에 뒤섞여 있던 게 불편했으니까, 아예 모드를 분리해 버렸다. 캘린더에서 날짜별로 어떤 종류의 메모가 몇 개 있는지 뱃지로 바로 보인다. 색상도 다르게 해 놔서 한눈에 구분된다.
에디터는 TipTap 기반이라 볼드, 이탤릭, 코드블록, 이미지 삽입 같은 건 다 된다. 이미지는 드래그 앤 드롭이나 붙여넣기로 넣을 수 있고, 로컬 파일시스템에 저장된다. 자동 저장도 달아놔서 타이핑하다가 앱이 꺼져도 날아가지 않는다.
원래 노션에서도 캘린더 뷰를 메인으로 쓰고 있었기 때문에, 이건 필수였다. 월별 캘린더를 기본 화면으로 띄우고, 날짜를 클릭하면 사이드 패널에 그날의 메모 목록이 뜬다. 노션과 다른 점이 있다면 "바로 여기서 메모를 쓰고 편집할 수 있다"는 것이다. 페이지를 열고 또 열고 하는 단계가 없다.
1편에서 Claude가 제안했다고 언급했던 기능이다. 앱을 켜면 오늘 날짜의 메모와 TODO가 한눈에 보이는 대시보드가 뜬다. 핀 고정한 메모가 위에 오고, TODO 진행률이 프로그레스 바로 표시된다. "노션을 열면 캘린더만 덩그러니 보인다"는 불편함이 이걸로 해결됐다.
할 일 모드로 메모를 만들면 체크박스 기반의 TODO 리스트가 된다. 체크하면 취소선이 그어지고, 완료율이 표시된다. 여기까지는 평범한데, 내가 정말 원했던 건 미완료 TODO 알리미였다. 앱을 시작하면 지난 날짜에 완료하지 못한 TODO가 있는지 자동으로 체크한다. 있으면 모아서 보여주고, 두 가지 선택을 할 수 있다.
"오늘로 이월"을 누르면 오늘 TODO 목록에 복사되고, 필요 없으면 "취소"로 지울 수 있다. 이게 노션에서 해결 못했던 "어제 TODO 뭐였더라?" 문제를 완전히 해결해 줬다.
이건 만들면서 추가한 기능인데, 의외로 가장 많이 쓰고 있다. 메인 창을 숨기고, 작은 포스트잇 같은 플로팅 윈도우만 띄우는 모드다. 항상 위에 떠 있게 할 수 있고, 투명도 조절도 된다. 코드를 보면서 옆에 메모를 띄워놓는 용도로 쓰는데, 이게 생각보다 편하다.
전체 검색은 Cmd+F로 열 수 있다. SQLite의 FTS5를 써서 풀텍스트 검색을 구현했다. 한국어 부분 검색도 되는데, FTS5만으로는 한국어 처리가 좀 애매해서 LIKE 쿼리를 폴백으로 두었다. 검색 결과에서 매칭된 부분이 노란색으로 하이라이트되고, 화살표 키로 탐색할 수 있다.

Cmd+K를 누르면 커맨드 팔레트가 뜬다. 메모 생성, 뷰 전환, 검색 진입 같은 동작을 키보드로 빠르게 실행할 수 있다. VSCode에서 익숙한 그 느낌이다.
앱이 백그라운드에 있어도 동작하는 시스템 전역 단축키도 있다. Ctrl+Shift+Space로 앱을 토글하고, Ctrl+Shift+N으로 빠르게 메모를 캡처하고, Ctrl+Shift+T로 TODO를 바로 추가할 수 있다. 단축키는 설정에서 원하는 키로 바꿀 수 있고, 충돌 감지 기능도 넣어놨다.
시작할 때 기본 뷰를 뭘로 할지, 로그인 시 자동 실행할지, 스티키 노트 투명도와 항상 위 옵션 같은 것들을 설정할 수 있다. 데이터 내보내기는 JSON과 Markdown 두 가지 포맷을 지원한다.
1편에서 설명한 대로 마일스톤 단위로 진행했다. 전체 20개 정도의 마일스톤으로 나눴는데, 대략 이런 순서였다.
마일스톤 하나를 끝낼 때마다 직접 실행해 보고, 이상한 부분이 있으면 Claude Code에 알려주는 방식이다.
대부분의 대화는 이렇게 진행됐다.
마일스톤 4 진행해 줘
Claude Code가 지침서를 읽고 해당 마일스톤의 작업을 진행한다. 끝나면 직접 확인한다.
TODO 완료 처리를 했는데 취소선이 안 그어져. 확인해 줘
이런 식으로 버그를 알려주면 Claude Code가 관련 코드를 찾아서 수정한다. 대부분 한 번에 해결됐다. 가끔은 기획에 없던 아이디어가 떠올라서 즉석에서 추가하기도 했다.
스티키 노트에서 투명도를 슬라이더로 조절할 수 있으면 좋겠어. 실시간으로 반영되게 해 줘.
이런 요청도 지침서 외 작업이지만 문제없이 처리됐다. 지침서가 있으면 전체 맥락을 이해하고 있으니까, 새로운 기능을 끼워 넣을 때도 기존 코드와 자연스럽게 어우러진다.
노션을 대체했나? 솔직히 말하면, 업무용 노션은 여전히 쓰고 있다. 팀 협업, 문서 공유 같은 건 노션이 훨씬 낫다. PC <-> 모바일 연계 기능도 무시할 수 없다.
다만 개인 일일 메모 용도로는 생각보다 잘 쓰고 있다. 앱을 켜면 오늘 할 일이 바로 보이고, 미완료 TODO가 알아서 올라오고, 스티키 노트로 옆에 띄워놓고 쓸 수 있다. 내가 노션에서 불편했던 것들이 해결된 셈이다.
이번에 느낀 건, Claude Code로 개발할 때 가장 중요한 건 무엇을 만들지 명확하게 정리하는 것이라는 점이다.
코드를 짜는 건 Claude Code가 잘 하지만, "이 기능이 왜 필요한지", "사용자 경험이 어때야 하는지"는 내가 판단해야 한다. 결국 기획과 의사결정은 사람의 몫이고, 구현은 도구의 몫이다. 마일스톤 기반으로 쪼개서 개발하는 방식이 특히 효과적이었다. 한 번에 "메모앱 만들어 줘" 했으면 이 퀄리티는 절대 안 나왔을 거다.
메모앱을 만들 시점에는 이렇게 마일스톤을 짜게 하고 구현했는데, 글을 작성하는 현재 시점에는 plan mode도 적극적으로 활용 중이다.
돌이켜 보면, 이 앱을 예전처럼 혼자 처음부터 끝까지 개발했으면 몇 주는 걸렸을 것이다. Claude Code와 함께하니까 핵심 기능 구현까지 체감상 훨씬 빠르게 끝났다. 물론 중간에 직접 수정하거나 방향을 잡아줘야 하는 부분도 있었지만, 전체적인 개발 속도와 경험은 확실히 달랐다. 나에게 딱 맞는 도구를 직접 만들어 쓰는 것. 그게 생각보다 어렵지 않은 시대가 된 것 같다.