📝 한줄 요약
매일 계획만 세우고 못 지키는 미룸보를 위해, AI 스탠드업 앱에 "왜 못 했는지"까지 기록하고 통계로 보여주는 핑계 추적 기능을 하루만에 추가한 이야기.
바쁘시면 이것만 읽어도 돼요:
기존 AI 스탠드업 앱에 핑계 추적 + 통계 대시보드를 하루만에 추가
"핑계 기능 넣고 싶어"라고 말했더니 기획 → 설계 → 구현 → 검증까지 알아서 진행
저녁 체크인을 텍스트 입력에서 체크리스트 UI로 전면 개편
한 달치 핑계를 차트로 시각화 — 내가 뭘로 가장 많이 미루는지 패턴이 보인다
아침에 포키가 어제 핑계를 언급해줘서, 같은 핑계를 또 대기 어려워진다
버그 잡는 과정도 현실적으로 기록 — 스크린샷 디버깅, 눈에 안 보이는 DB 저장 버그
😫 문제 상황 (Before)
지난 글에서는 매일 아침/저녁 AI 돼지 캐릭터 "포키"와 스탠드업을 하는 앱을 다 루었다. 아침에 오늘 할 일을 정하고, 저녁에 뭘 했는지 체크하는 구조.
근데 쓰다 보니 아쉬운 게 생겼다. 저녁 체크인이 "했다/안 했다"로 끝나버리는 거다. 매일 계획을 세우고 매일 절반은 못 하는데, 왜 못 했는지는 아무 기록도 없었다.
미룸보로서 궁금했다 — 나를 멈추는 게 대체 뭘까? 시간이 부족한 건지, 의욕이 없는 건지, 우선순위가 바뀐 건지... 그걸 알아야 다음에 계획을 더 현실적으로 세울 수 있을 텐데.
그래서 "못 한 일에 핑계를 달고, 한 달치를 모아보면 패턴이 보이지 않을까?" 라고 생각했다.
🛠️ 사용한 도구
AI 코딩: Claude Code
AI 대화 모델: Groq (llama-3.3-70b)
DB: Supabase (PostgreSQL)
차트: recharts
🔧 작업 과정
체크리스트 UI 전환 — "채팅 입력은 불편해"
핑계 기능을 붙이기 전에, 먼저 저녁 체크인 자체를 손봐야 했다. 기존에는 포키가 "뭐 끝냈어?" 하고 물으면 채팅창에 직접 텍스트로 타이핑하는 방식이었다. 아침에 이미 계획을 세워놨는데 다시 수동으로 적는 건 번거롭잖아.
저녁 체크인에서 완료한 일 체크 등을 챗에 직접 입력하는 형태가 아니라, 체크리스트에 체크해서 확인 버튼 누르는 식으로 수정하고 싶어그랬더니 아침에 세운 계획을 체크박스로 보여주고, 체크해서 확인 버튼만 누르면 되는 UI를 만들어줬다. 끝낸 일 체크 → 미룰 일 체크, 2단계로 깔끔하게.
근데 여기서 버그가 터졌다. 체크리스트의 턴이 하나씩 밀리는 거다. 포키가 "끝낸 거 체크해줘"라고 말하는데, 아래에는 "미룰 거 체크해줘" 체크리스트가 떠있고. 스크린샷을 찍어서 보내면서 한참 디버깅했다.
여기서는 체크리스트가 안 떠. Turn이 하나씩 밀리는 것 같아.원인은 메시지 개수로 턴을 판별하는 로직이 세션 복원 시 꼬이는 거였다. 결국 "지금 어떤 단계야?"를 명시적으로 추적하는 상태 머신으로 바꿔서 해결했다.
한국 데이트 앱 - 스크린샷
핑계 기능 추가 — "아이디어 하나 던졌을 뿐인데"
이제 본론. 핑계 기능을 추가하고 싶다고 말했다.
한 가지 기능을 더 추가하고 싶 어.
'내일로 미룰 일'을 물어보고, 그 핑계나 이유를 댈 수 있으면 좋겠어.
문제: 매일 계획을 세우지만 다 못 해내고, 각각에 나름의 이유(핑계)가 있음
솔루션: 못 한 계획에 핑계까지 기록.
핵심 기능:
1. 저녁 체크인에서 '내일로 미룰 일' 확인
2. 못 한 항목에 핑계 달기
3. 한 달 뒤 핑계 통계 보기먼저 bkit의 plan-plus를 통해 브레인스토밍을 시작했다. "핑계를 어떤 방식으로 입력받을까?" "프리셋 선택 vs 자유 입력?" "통계는 어디서 볼까?" 같은 질문을 하나씩 던지면서 설계를 구체화했다. 내가 "프리셋 선택 + 커스텀 입력"이라고 답하면, "그러면 항목별 드롭다운이 좋겠다"며 UI까지 제안했다.
설계가 끝나자 바로 구현에 들어갔다.
만들어진 것들:
핑계 프리셋 5가지: 시간 부족, 의욕 없음, 우선순위 변경, 컨디션 안 좋음, 직접 입력
항목별 드롭다운 UI — 미룬 일 하나하나에 핑계를 달 수 있다
통계 대시보드 — 막대 차트(가장 많이 쓴 핑계 순위)와 도넛 차트(카테고리 비율)
아침 스탠드업에서 포키가 어제 핑계를 언급 — "어제 시간 부족이었다며, 오늘은 좀 여유 두고 계획하자!"
통계 대시보드 — 핑계의 패턴이 보인다
원형 차트가 있는 한국 앱의 스크린샷
통계 페이지가 특히 마음에 들었다. 월별로 내가 댄 핑계를 차트로 보여주는 건데, 한 달만 써도 "아, 나는 시간 부족을 핑계로 가장 많이 대는구나" 같은 패턴이 보일 거다.
연속으로 미룬 태스크도 추적해준다. "이 일을 3일 연속 미뤘다"는 것 자체가 "이건 진짜 안 할 일이구나" 혹은 "잘게 쪼개야 하는 일이구나"를 알려주는 신호가 된다.
눈에 안 보이는 버그들 — DB가 비어있었다
기능은 다 만들어졌는데, 정작 Supabase 대시보드를 열어보니 테이블이 텅 비어있었다. 데이터가 저장이 안 되고 있었던 거다.
핑계 통계에도 그렇고, 스탠드업 및 체크인 기록도 제대로 쌓이고 있는 건가? supabase db 셋업을 검토해봐야 할 것 같아.AI가 코드를 검토하더니 문제를 줄줄이 찾아냈다.
테이블은 만들었는데 보안 정책(RLS)이 없어서 데이터 접근이 차단되고 있었다
저장하는 코드에서 로그인 유저 정보를 체크하는 타이밍이 어긋나 있었다
데이터를 읽을 때 "결과가 정확히 1개여야 한다"고 설정해놔서, 데이터가 없으면 에러가 나고 있었다
하나씩 고치고 나서야 테이블에 row가 생기기 시작했다. 이런 종류의 버그가 제일 무섭다 — 화면에는 아무 에러도 안 뜨는데, 뒤에서 조용히 데이터를 잃고 있으니까.
핑계 UI가 안 뜨는 버그 — AI가 대본을 안 지켰다
또 하나 재밌는 버그가 있었다. 미룰 일을 체크한 다음에 핑계 입력 화면이 떠야 하는데, 안 뜨고 바로 대화가 끝나버리는 거였다.
'내일로 미룰 일'을 답했는데, 핑계를 물어보지 않네원인이 뭐였냐면 — AI 캐릭터 포키가 대본을 안 지킨 거다. 프롬프트에는 "미룬 일이 있으면 핑계를 물어봐"라고 적어놨는데, AI가 가끔 대화 완료 신호를 너무 빨리 보 내버렸다. 그 신호를 받으면 앱이 "대화 끝났네!" 하고 핑계 화면을 건너뛰고 종료해버린 것.
AI가 만든 앱에서 AI가 대본을 안 지켜서 버그가 생기는, 묘한 상황이었다.
✅ 결과 (After)
Before vs After
저녁 체크인: 텍스트로 직접 입력 → 체크리스트 체크 + 확인 버튼
못 한 일 기록: "안 했어"로 끝 → 항목별 핑계 선택 (5가지 프리셋)
자기 분석: 없음 → 월별 핑계 통계 차트
다음날 연결: 없음 → 포키가 어제 핑계 언급하며 응원
DB 저장: 조용히 실패하고 있었음 → RLS + 타이밍 수정으로 정상 저장
저녁 체크인 플로우 (새로운 흐름)
포키: "오늘 뭐 끝냈어?" → 체크리스트에서 체크
포키: "내일로 미룰 건?" → 나머지 중 체크
포키: "핑계 대줘!" → 항목별 드롭다운으로 핑계 선택
포키: 공감 + 마무리 → 통계에 자동 저장
🚀 앞으로의 계획
우선 배포에 집중할 예정이다. 혼자서라도 매일 쓸 수 있게 만들고, Google Calendar에 매일 아침 정해진 시간에 미팅 일정을 추가해서 실제로 루틴화할 계획이다.
포키와 매일 아침저녁 스탠드업을 하고, 한 달 뒤에 핑계 통계를 열어보는 게 기대된다. "나는 시간 부족을 핑계로 가장 많이 대는구나" 같은 자기 인식이, 다음 달 계획을 더 현실적으로 만들어줄 거라고 생각한다.
🌍 다른 업무에 적용해본다면...
업무 회고 도구: 매주 못 한 업무에 이유를 태깅하고, 분기별로 "우리 팀이 일을 미루는 가장 큰 이유" 분석
습관 트래커: 운동, 공부 등 매일 하기로 한 것을 못 했을 때 핑계를 기록하면, 어떤 조건에서 습관이 깨지는지 파악 가능
다이어트 앱: 포키처럼 식단 목표를 세우고, 못 지켰을 때 이유를 기록하는 구조 (포키도 다이어트 중이니까)