ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toAI/ML
์๋ฌธ ์ฝ๊ธฐ
MeDo ํ๋ซํผ ๊ธฐ๋ฐ์ LLM ์ํฌํ๋ก์ฐ ์ค๊ณ๋ฅผ ํตํ 1์ผ ์์ฑ AI ์ฑ ๊ตฌํ
I Built an AI App That Keeps You Consistent (Not Just Motivated) ๐
AI ์์ฝ
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์ ์กฐํฉํ์ฌ ์ง์ฐ ์๊ฐ์ ์ต์ํํ ์ค์๊ฐ ์๋ต ๊ตฌ์กฐ ๊ฒํ