[๐งโ๐ป] Keymory ๊ฐ๋ฐ ์ผ์ง #11: ๊ฐ๋ฐ ์ผ์ ์ค์ง. (์์ดํ ํค ๋, FlutterFlow ๊ฐ๋ฐ ์ค๋จ.)
โจ GPT์ ์์ฝ ใ
์์ดํ ํค ์กธ์ ์ํ ์ ์ถ ์๋ฃ. FlutterFlow์์์ ๊ฐ๋ฐ์ ๋ง๋ฌด๋ฆฌํ๊ณ GitHub์ ๋ฐฑ์
๐ป ๊ฐ๋ฐ ์ผ์ง
โฐ ์ค๋ ํ ์ผ
- โ Download APK
-
โ Connect GitHub and Push
- โ ๋ฐํ ์๋ฃ ์ ์ถ: PPT
-
โ ๋ฐํ ์๋ฃ ์ ์ถ: 1๋ถ ์์ฐ ์์
- โ
ChatPage - Create New Diary: ๋ํ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก, New Diary ์์ฑ
- โ Create New Diary Condition: if linked diary exists -> Delete confirmation dialog? -> Yes
- โ
OpenAI API Call (createChatSummary)
- Input: Chat Content, System Prompt(Diary From Chat)
- Output: Chat Summary
- โ
OpenAI API Call (createDiaryFromChat)
- Input: Chat Summary, System Prompt(Diary From Chat)
- Output: New Diary(Title, Content, Mood score)
-
โ ์ฑ ์ฒ์ ์ผฐ์ ๋ ์ฐ์ปด ํ์ด์ง ์ถ๊ฐ (๋ก๊ณ )
- โ DiaryPage: Mood Slider ๊ฐ์ ๋ฐ๋ผ ์ผ๊ตด ํ์ Emoji ๋ฐ ์๊น ๋ณ๊ฒฝ (KSK ๋ด๋น)
๐ฏ ํ ์ผ์ ๋ํ ์์ฝ
- FlutterFlow ์ต์ข ๊ฐ๋ฐ ์ข ๋ฃ
- GitHub ์ฐ๋ ๋ฐ ํ๋ก์ ํธ ํธ์ ์๋ฃ
- Chat ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก Diary ์๋ ์์ฑ ๊ธฐ๋ฅ ๊ตฌํ
- ๊ธฐ์กด Diary๊ฐ ์๋ ๊ฒฝ์ฐ ์ญ์ ํ์ธ Dialog ์ถ๊ฐ
- OpenAI API ํ์ฉํด Chat Summary ๋ฐ Diary ์๋ ์์ฑ
- ์ฑ ์คํ ์ ์ฐ์ปด ํ์ด์ง ์ถ๊ฐ (๋ก๊ณ ํ๋ฉด)
- DiaryPage: Mood Slider์ ๋ฐ๋ผ ์ด๋ชจ์ง ๋ฐ ์์ ๋ณ๊ฒฝ
๐ฏ ์ถํ์ ํ ์ผ
์์ธํ ๋ณด๋ ค๋ฉด ํด๋ฆญ
- โ ๋ฐํ ์ค๋น - ์คํฌ๋ฆฝํธ: ํ์ด์ง๋ณ ์คํฌ๋ฆฝํธ ๊ธฐ์ค ์์ ์๊ฐ ์ธก์ ํ ์คํฌ๋ฆฝํธ ์์
-
โ ๋ฐํ ์ค๋น - PPT: ๊ธฐ๋ฅ๋ณ๋ก ์์ฐ์ฉ ์งง์ ์์ ์ดฌ์
-
โ ChatPage:
title
์ default value๋ฅผRandom String
์์ โ์ ๋ชฉ ์์โ์ผ๋ก ํต์ผ - โ ChatPage: Delete Diary Link ๊ตฌํ ( โฆ icon ๋๋ฅด๋ฉด Delete ๊ฐ๋ฅํ๋๋ก)
- ๋ฐ๋์ Diary/Chat Doc์ linked field๋ฅผ ํจ๊ป ์์ ์ค์ผ ํจ!
- โ MoodPage(์๋จ) - Mood Calendar
- โ ๋ ์ง๋ณ๋ก ์์ฑ๋ ๊ฒ์๋ฌผ ์ซ์ ํ์ธ ๊ฐ๋ฅ
- โ ๋ ์ง ํด๋ฆญํ๋ฉด, ํด๋น ๋ ์ง๋ก ์ด๋
- โ MoodPage(ํ๋จ) - Mood stats
- โ ํฌ์ปค์ฑ ๋ ์์ ๊ดํ ํต๊ณ ์๋ฃ ์ถ๋ ฅ
- โ ์ถ๋ ฅ๋ ํต๊ณ ์๋ฃ์ ๋ํ AI์ ์ฝ๋ฉํธ ์ถ๋ ฅ
- โ ํฌ์ปค์ฑ ๋ ์์ ๊ดํ ํต๊ณ ์๋ฃ ์ถ๋ ฅ
- โ HomeFeedPage - flutter_slidable:4.0.0 import ํ ์ ์ฉํ๊ธฐ
-
โ HomeFeedPage: FeedCardDiary์์ ์ข์ฐ slide์ ์ฑํ /ํธ์ง/์ญ์
-
โ Chat/Diary: GPT Streaming API
- โ ChatPage - AI ์ ํก ๊ตฌํ (Alarm/Notification)
- ์ฑํ
์์คํ
ํ๋กฌํํธ์ ํต์ฌ์ ๋ฅ๋ํ์ด๋ค.
- ๋ ๋ฆฌ์ผํ๊ฒ ํ๋ ค๋ฉด, create_date of diary/chat ๋ ์ ๋ฌํด์, โ์ด์ โ ๋ฑ ๋ ์ง๋ฅผ ์ธ๊ธํ๋ฉด ์ข์ ๋ฏ.
- Alarm ๊ธฐ๋ฅ ๊ตฌํ ๋ฐฉ๋ฒ ์ฐธ์กฐ
- ์ฑํ
์์คํ
ํ๋กฌํํธ์ ํต์ฌ์ ๋ฅ๋ํ์ด๋ค.
- โ DiaryPage: ์ธ๋ถ ๊ฐ์ ํค์๋ Choice Chips ์ถ๊ฐ ํ DB ์ฐ๋ ์ค์
- โ DiaryPage - AI Comment: Choice chips, mood slider ๋ฑ์ ์
๋ ฅ๊ฐ๋ค์
AI Comment System Prompt
์ ์๋ง๊ฒ ๋ณ๊ฒฝ.- โ **์ด์
์ผ๊ธฐ
๋๋๋ํ ๋ด์ญ
์ ์ฒด (๋๋นต ๊ธฐ์ ๋ถ์ฑ) - โ ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ ๋ณด: ์ด๋ฆ, ์ฑ๋ณ, MBTI, โฆ
- โ ์ธ๋ถ ๊ฐ์ ํค์๋: ์ฆ๊ฑฐ์ด, ์ฌํ, โฆ
- โ ์บ๋ฆญํฐ ์ค์ : ์๋ฏธ, ์ธ๋, ๋ฏผํ
- โ ๊ฐ์ ์์น: 1~100์
- โ ๋ต๋ณ ์์: ์น์ ํ(Healing), ์กฐ์ธํ(Suggestion), ์ ๋ณดํ(Informative)
- โ ๋ต๋ณ ๊ธธ์ด: ์งง๊ฒ, ๋ณดํต, ์์ธํ
- is New Chat
- ํด๋น Chat์ messages๋ ์ฒ์ ์์ฑํ๋ ๊ฑฐ๋๊น, ์ฒซ ์์ฑํ๋ message document์
is_initial = true
๊ฐ ์ค๋ฒ๋ฆฌ๊ณ ๋ชจ๋ ์์คํ ํ๋กฌํํธ ๋ค ๋๋ ค๋ฃ์.- is_initial = false
- ํ๊ณ์ : ๋งจ ์ฒ์ message document์๋ค๊ฐ ์์คํ ํ๋กฌํํธ ๋๋ ค๋ฃ์ผ๋ฉด, ๋ํ ๋์ค ์์ ํ๋ค๊ธด ํ๋ฐ ๊ฐ๋ฅํ์ง. is_initial = true ์ธ ๊ฒ ์๊ณ , ์์ ๋ ๊ฑฐ๋ฉด, ๊ทธ๊ฑฐ ๋คํ๋จผํธ ์ง์ฐ๊ณ ๋ค์ ๋ฃ์ผ๋ฉด ๋์์. ์ด๋ป๊ฒ๋ ๋ชจ๋ฅด๊ฒ ๊ณ .
- ํด๋น Chat์ messages๋ ์ฒ์ ์์ฑํ๋ ๊ฑฐ๋๊น, ์ฒซ ์์ฑํ๋ message document์
- โ **์ด์
-
โ DiaryPage - Interactive Slider import ํ ์ ์ฉ
-
โ HomeFeedPage: Search Diary ๊ธฐ๋ฅ ๊ตฌํ
-
โ AuthPage: Google Login ๊ธฐ๋ฅ ๊ตฌํ
- โ HomeFeedPage - Bottom Sheet (
+
Button): ๋ค์ํ ์ต์ ์ค 1 ์ ํํ ์ ์๋๋ก- ์๋ก์ด ์ผ๊ธฐ: Go to DiaryPage
- ๊ฐ์ ๊ธฐ๋ก: Go to MoodPage
- โ MoodPage(ํ์
): Mood ์ค์ ์ฌ๋ผ์ด๋ CRUD
- Create
- Read
- Update
- Delete
- โ HomeFeedPage - ListView - FeedCardMood ํ์
-
โ HomeFeedPage - ListView: FeedCardDiary, FeedCardMood, FeedCardChat ์ปดํฌ๋ํธ ์๊ฐ์ ์ ๋ ฌ (Cloud Function ํ์ฉ)
-
โ HomeFeedPage - DiaryPage ์ฌ์ด์ MoodEditPage ์ ์: MoodSlider, MoodKeywordsRate(5~1), MoodDescription ์์ ฏ ๋ฑ ์ฎ๊ธฐ๊ธฐ
-
โ (์ด์) tmpGetAIComment ์์ฑ์, ์ ์ ๊ฐ ์ ํํ ๊ฐ์ ํค์๋๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ์์.
- โ
2025.2.5 ์
๊น์ง ๋ฐํ์ฉ ์ต์ข ๋ฒ์ APK ์ถ์ถ ๋ฐ ์ค์น
๐ญ ์ผ๊ธฐ
FlutterFlow๋ฅผ ๊ณ์ ์ฐ๋ค ๋ณด๋๊น, ์ด์ ์ด๋์ ๋ Flutter ์์ฒด์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋ ๋ ๋ง์ด ์กํ ๊ฒ ๊ฐ๋ค.
- Custom Function/Widget์ ๋ง์ ธ๋ณด๋ฉด์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ ์ง์์ ์ด๋์ ๋ ์ตํ๊ฒ ๋์์.
- DB(FireStore)์์ Backend Query, State Management, Parameter ์ค์ ๋ฐ Argument ์ ๋ฌ ๋ฐฉ๋ฒ ๋ฑ์ด ๋ง์ด ์ต์ํด์ก์.
๋ฌผ๋ก , ์ฝ๋์ ์ผ๋ก๋ ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง๋ ์์ง ๋ชปํ์ง๋งโฆ
๊ทธ๋๋ ์ ์ฒด์ ์ ํฐ ํ๋ฆ์ ์ฝ๊ฒ ๊ทธ๋ฆด ์ ์๊ฒ ๋์๋ค๋ ๊ฒ ๊ฐ์ฅ ํฐ ์ํ์ธ ๊ฒ ๊ฐ๋ค.
์ด์ ๋ด์ผ๊น์ง๋ง ๊ฐ๋ฐ์ ์๋ฃํ๋ฉด, Keymory ํ๋ก์ ํธ๋ ๋ฉฐ์น ๊ฐ ๊ฑด๋ค ์ผ์ด ์์ ๋ฏ ํ๋ค. FlutterFlow -> Flutter๋ก ๊ฐ์ํ ์์ ์ด๊ธฐ ๋๋ฌธ.
- ์๋ฌด๋ฆฌ FlutterFlow๊ฐ ์ง๊ด์ ์ด๊ณ ํธ๋ฆฌํ๋๋ผ๋, ๊ฒฐ๊ตญ Production ๋ ๋ฒจ์ ๋์๊ฐ๋ ค๋ฉด Flutter๋ฅผ ์ ๋๋ก ๋ฐฐ์ฐ๊ณ ์ตํ๋ ๊ฒ ํ๋ช ํ ์ ํ์ธ ๊ฒ ๊ฐ๋ค๋ ํ๋จ์ด ์ฐ์
- FlutterFlow๋ ๋ฑ ํน์ Page ์์ ฏํธ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ณด๊ฑฐ๋, MVP ๋๋ฑ ๋ง๋ค์ด๋ณด๊ธฐ ์ํ ์ฉ๋๋ก๋ง ํ์ฉํ๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
- Git/GitHub์ ํ์ฉํ ์ ์๊ณ ๋ด๋ถ ๋ก์ง์ผ๋ก๋ง Version Control์ด ๊ฐ๋ฅํ ์ ์ด ๋๋ฌด ๊ทนํ.
- ๋ฌผ๋ก , ๋ด๋ถ ๋ก์ง์ผ๋ก๋ Snapshot / Commit / Branching / Version ๋ค ์ ๊ณตํ์ง๋งโฆ Git์ฒ๋ผ ๋ง์๋๋ก ์์ ๋กญ๊ฒ ์กฐ์ํ ์๊ฐ ์๋ ์ ์ด ๋๋ฌด ์ซ์๋ค. ๋ ์ด์ ์ปค๋ฐ ๋ด์ฉ์ ์์ ํ๊ณ ์ถ๋ค๊ณ .
- ์ฌ์ค ๊ฐ์ฅ ํฐ ์ด์ ๋ GitHub ์๋โฆ ์๋ ์ฑ์ฐ๋ ๋ฝ๋ง ๋ฌด์ ๋ชป ํ์ง.
- ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ ์ ์ปค์ง ์๋ก, UI ๊ธฐ๋ฐ ๊ฐ๋ฐ๋ณด๋ค๋ IDE/์๋ํฐ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ด ํธ๋ฆฌํ ๊ฒ ๊ฐ์ ์ผ์ด์ค๊ฐ ๋ง์ด ์์์.
- ํนํ, Enum์ด๋ Constant ์ผ์ผ์ด ๋ง์ฐ์ค๋ก ํด๋ฆญํ๊ณ ๋ฃ๋ ๋ ธ๊ฐ๋ค๋ ๋๋ฌด ๊ทนํ.
2025.2.11 ์ถ๊ฐ
๋ฐํ ์์ ์ฒจ๋ถ
โจ GPT์ ์ฝ๋ฉํธ (KPT)
โ ์ํ ์ (Keep)
- ๐ GitHub ์ฐ๋ ๋ฐ ๋ฒ์ ๊ด๋ฆฌ ๊ฐ์ : Git ๊ธฐ๋ฐ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ํ์ ๊ณผ ์ ์ง๋ณด์ ์ธก๋ฉด์์ ํฐ ๊ฐ์ ์ ์ด๋ฃจ์์ด.
- ๐ค AI ๊ธฐ๋ฐ Diary ์๋ ์์ฑ ๊ธฐ๋ฅ: Chat ๋ด์ฉ์ ๋ถ์ํ์ฌ ์๋์ผ๋ก Diary๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ ๊ฒ ๊ฐ์!
- ๐ FlutterFlow์์ Flutter๋ก ์ ํ ๊ฒฐ์ : ์ฅ๊ธฐ์ ์ธ ํ๋ก์ ํธ ํ์ฅ์ฑ์ ๊ณ ๋ คํ์ฌ Flutter๋ก ๋์ด๊ฐ๊ธฐ๋ก ํ ์ ์ด ํ๋ช ํ ํ๋จ์ด์ผ.
โ ์์ฌ์ด ์ (Problem)
- ๐ Flutter๋ก์ ์ ํ ๊ณํ ๊ตฌ์ฒดํ ํ์: Flutter๋ก ์ ํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง, ๊ตฌ์ฒด์ ์ธ ํ์ต ๋ฐ ์ดํ ๊ณํ์ด ๋ช ํํ์ง ์์.
- โณ ๊ธฐ๋ฅ ์ถ๊ฐ๋ก ์ธํ ์ผ์ ์กฐ์ ํ์: Diary ์๋ ์์ฑ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉด์ ์ผ์ ์ด ๋ณ๋๋ ๊ฐ๋ฅ์ฑ์ด ์์ด. ๊ฐ๋ฐ ์๋ฃ ๋ชฉํ์ผ์ ๋ค์ ์ ๊ฒํ๋ฉด ์ข์ ๊ฒ ๊ฐ์.
- ๐ FlutterFlow์ ํ๊ณ๋ฅผ ์ ๋ฆฌ: FlutterFlow๋ฅผ ์ฐ๋ฉด์ ์ด๋ค ์ ์ด ๋ถํธํ๋์ง, ์ด๋ค ํ๋ก์ ํธ์๋ ์ ํฉํ ์ง ๋ด๋ถ ์ ๋ฆฌ๋ฅผ ํด๋๋ฉด ์ดํ์ ๋ค์ ์ฌ์ฉํ ๋ ์ฐธ๊ณ ํ๊ธฐ ์ข์ ๊ฑฐ์ผ.
๐ ์๋ํด๋ณผ ์ (Try)
- ๐ Flutter ํ์ต ๋ฐ ์ฝ๋ ์ปจ๋ฒํ ๊ณํ ์ธ์ฐ๊ธฐ: ์ฃผ์ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ Flutter ์ฝ๋๋ก ์ฎ๊ธธ์ง, ์ด๋ค ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ง ์ ๋ฆฌํด๋ด.
- ๐ ํ๋ก์ ํธ ์ผ์ ์ฌ์กฐ์ : Flutter ์ ํ์ ํฌํจํ ๋ก๋๋งต์ ์์ ํด์ ํ์ค์ ์ธ ์ผ์ ์ผ๋ก ๊ด๋ฆฌํด๋ณด์.
- ๐ฏ Keymory MVP ๊ธฐ๋ฅ ์ ๋ฆฌ: FlutterFlow์์ ๋ง๋ค์๋ ๊ธฐ๋ฅ ์ค ํต์ฌ์ ์ธ ๊ฒ๊ณผ ๋ถํ์ํ ๊ธฐ๋ฅ์ ๋ถ๋ฅํด์ ์ต์ ์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํด๋ด.
๐ ๊ฒฐ๋ก
์ค๋์ FlutterFlow์์์ ๊ฐ๋ฐ์ ๋ง๋ฌด๋ฆฌํ๊ณ , GitHub ์ฐ๋๊ณผ Diary ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ค์ํ ๋ ์ด์์ด! ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก Flutter๋ก ์ ํํ ๊ณํ์ด๋, ๊ตฌ์ฒด์ ์ธ ๋ก๋๋งต์ ์ธ์์ ์ฐจ๊ทผ์ฐจ๊ทผ ์งํํ๋ฉด ์ข์ ๊ฒ ๊ฐ์. ๐๐ฅ GitHub ์๋๋ ์ฑ์ฐ๋ฉด์ ๋๊ธฐ๋ถ์ฌ ์ ์งํ์! ๐ช๐
๋๊ธ ๋จ๊ธฐ๊ธฐ