ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
I Built an AI App That Keeps You Consistent (Not Just Motivated) ๐Ÿš€
Dev.toDev.to
AI/ML

MeDo ํ”Œ๋žซํผ ๊ธฐ๋ฐ˜์˜ LLM ์›Œํฌํ”Œ๋กœ์šฐ ์„ค๊ณ„๋ฅผ ํ†ตํ•œ 1์ผ ์™„์„ฑ AI ์•ฑ ๊ตฌํ˜„

I Built an AI App That Keeps You Consistent (Not Just Motivated) ๐Ÿš€

Parth Bisht2026๋…„ 5์›” 19์ผ5๋ถ„beginner

Context

๊ฐœ์ธํ™”๋œ ๋ชฉํ‘œ ๋‹ฌ์„ฑ ๋ฐ ์ผ๊ด€์„ฑ ์œ ์ง€๋ฅผ ์œ„ํ•œ Goal Execution Companion ์‹œ์Šคํ…œ ๊ตฌ์ถ• ํ•„์š”์„ฑ ์ œ๊ธฐ. ๊ธฐ์กด์˜ ๋‹จ์ˆœ ๊ณ„ํš ๋„๊ตฌ์™€ ๋‹ฌ๋ฆฌ ์‚ฌ์šฉ์ž ์‹ฌ๋ฆฌ ์ƒํƒœ์™€ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์—ฐ๋™ํ•˜๋Š” ๋™์  ๋กœ๋“œ๋งต ์ƒ์„ฑ ๊ตฌ์กฐ๋ฅผ ๋ชฉํ‘œ๋กœ ํ•จ.

Technical Solution

  • ๋‹จ๊ณ„์  ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„๋ฅผ ํ†ตํ•œ Skeleton-First ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ UI ๊ตฌ์กฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ฒฐํ•ฉ๋„ ๋ถ„๋ฆฌ
  • Supabase Edge Function๊ณผ Gemini 2.5 Flash๋ฅผ ์—ฐ๋™ํ•œ Serverless ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜์˜ ๋™์  ๋ชฉํ‘œ ๋ถ„ํ•ด(Goal Decomposition) ๋กœ์ง ๊ตฌํ˜„
  • ์‚ฌ์šฉ์ž Mood State๋ฅผ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ Sprint Mode ๋ฐ Build-in-Public ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐœ์ธํ™”ํ•˜๋Š” Context-Aware ์ƒ์„ฑ ์—”์ง„ ์„ค๊ณ„
  • localStorage ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ์ „๋žต์„ ํ†ตํ•œ ์ธ์ฆ ์ ˆ์ฐจ ์ œ๊ฑฐ ๋ฐ ์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ ๋งˆ์ฐฐ ์ตœ์†Œํ™”
  • ๋‹ค๋‹จ๊ณ„ ํ”„๋กฌํ”„ํŒ…(Multi-phase Prompting) ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ ์ „์ฒด ์•ฑ ์žฌ์ƒ์„ฑ ์—†์ด ํŠน์ • ๊ธฐ๋Šฅ(์• ๋‹ˆ๋ฉ”์ด์…˜, ์Šค์ฝ”์–ด ๋กœ์ง)๋งŒ ์ •๋ฐ€ํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ˜๋ณต์  ๊ฐœ์„  ํ”„๋กœ์„ธ์Šค ์ ์šฉ

- LLM ๊ธฐ๋ฐ˜ ์•ฑ ๊ฐœ๋ฐœ ์‹œ ๊ฑฐ๋Œ€ ํ”„๋กฌํ”„ํŠธ ํ•˜๋‚˜๋ณด๋‹ค ๊ธฐ๋Šฅ๋ณ„ ๋‹จ๊ณ„์ (Phase-by-phase) ๋นŒ๋“œ ์ „๋žต ์ˆ˜๋ฆฝ - ์ดˆ๊ธฐ ๊ฒ€์ฆ ๋‹จ๊ณ„์—์„œ๋Š” Auth ์‹œ์Šคํ…œ ๋Œ€์‹  localStorage๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ดํƒˆ ๋ฐฉ์ง€ ๋ฐ ๊ฐœ๋ฐœ ์†๋„ ํ™•๋ณด - Gemini

2.5 Flash์™€ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ LLM๊ณผ Edge Function์„ ์กฐํ•ฉํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•œ ์‹ค์‹œ๊ฐ„ ์‘๋‹ต ๊ตฌ์กฐ ๊ฒ€ํ† 

์›๋ฌธ ์ฝ๊ธฐ