2025.02.05 (์ˆ˜)

โœจ GPT์˜ ์š”์•ฝ ใ€€

Diary to Chat ๊ตฌํ˜„ ๋ฐ ์ƒ์„ฑ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , AI ์ฝ”๋ฉ˜ํŠธ ์‹œ์Šคํ…œ์˜ ๊ฐ์ • ์ˆ˜์น˜ ๋ฐ ์บ๋ฆญํ„ฐ ์„ค์ • ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•จ.

๐Ÿ’ป ๊ฐœ๋ฐœ ์ผ์ง€

โฐ ์˜ค๋Š˜ ํ•  ์ผ

  • โœ… Custom Function - systemPromptTemplate ์ œ์ž‘ ๋•๊ธฐ (๋ฉ”์ธ ์ž‘์—…์ž: KSK)
    • โœ… ์ถ”๊ฐ€ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ ํ•จ์ˆ˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ ๋ฆฌ๋ทฐ
  • โœ… Custom Function - getAIComment๊ฐ€ ์‹ค์ œ๋กœ ์ ์šฉ ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ธฐ
    • โœ… ์ž…๋ ฅ๊ฐ’์ด ์ž˜ ๋ฐ˜์˜๋˜๋Š”์ง€ ํ™•์ธ
    • โœ… ์ถœ๋ ฅ๊ฐ’์ด String์œผ๋กœ ์ž˜ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ™•์ธ
  • โœ… Chat Page - Create New Chat: ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ์ ์šฉํ•˜๊ธฐ (๋ฉ”์ธ ์ž‘์—…์ž: KSK)
    • โœ… OpenAI API Call (createChatCompletion)
      • Input: System Prompt(Chat)
      • Output: New Chat Message by AI($.choices[0].message.content)
      • Additional Actions: Create New Chat, Create New Message
  • โœ… DiaryPage - Create New Chat by Diary: ์ผ๊ธฐ์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, New Chat ์ƒ์„ฑ (๋ฉ”์ธ ์ž‘์—…์ž: KSK)
    • โœ… OpenAI API Call (createDiaryComment)
      • Input: Diary Content, System Prompt(AI Comment)
      • Output: AI Comment($.choices[0].message.content)
    • โœ… OpenAI API Call (createDiarySummary)
      • Input: Diary Content, AI Comment, System Prompt(Diary Summary)
      • Output: Diary Summary($.choices[0].message.content)
    • โœ… OpenAI API Call (createChatFromDiary)
      • Input: Diary Summary, System Prompt(Chat From Diary)
      • Output: New Chat Message by AI($.choices[0].message.content)
      • Additional Actions: Create New Chat, Create New Message
  • โœ… (์ด์Šˆ) Create New Chat by Diary: ์ผ๊ธฐ๋งŒ Save ํ•ด์„œ ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ„ ์ดํ›„, ๋‹ค์‹œ ์ผ๊ธฐ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€์„œ New Chat ํ•ด์•ผ๋งŒ ์ž‘๋™ํ•จ.
    • ์ด์Šˆ ์›์ธ
      • ๋‹ค๋ฅธ ์•ก์…˜ ์ฒด์ธ์˜ Output ๋ณ€์ˆ˜๋ฅผ ๋Œ์–ด๋‹ค ์“ฐ๊ณ  ์žˆ์—ˆ์Œ
      • Unexpected Null Value ๋ฐฉ์ง€๊ฐ€ ์•ˆ ๋˜์–ด ์žˆ์—ˆ์Œ
      • JSON Path๊ฐ€ ์ œ๋Œ€๋กœ ์ง€์ •๋˜์ง€ ์•Š์•˜์Œ
      • Page State๋กœ tmpDiariesDocForNewChat๋ฅผ ์ •์˜๋‚ด๋ฆฌ๊ณ , ๊ฑฐ๊ธฐ์— diary Document๋ฅผ ํ• ๋‹นํ–ˆ์—ˆ์Œ.
        • ์ •ํ™•ํžˆ๋Š”,
          • Page Paramater๋กœ ์ „๋‹ฌ๋œ diariesDoc์„ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜,
          • Save ๋ฒ„ํŠผ ๋ˆŒ๋ €์„ ๋•Œ ์ƒ์„ฑ๋œ newDiariesDoc์„ ํ• ๋‹นํ•˜๋„๋ก ํ•ด๋†จ์—ˆ์Œ.
        • ํ•˜์ง€๋งŒ ๊ณ„์† Save Diary and Chat with AI ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์•ฑ์ด ๋ฉˆ์ท„์Œ.
          • F12 ๋ˆŒ๋Ÿฌ์„œ ์‚ดํŽด๋ณด๋‹ˆ, Unexpected Null Value ์—๋Ÿฌ๋กœ Exception ๊ฑธ๋ฆผ.
          • Debug Pannel ์‚ดํŽด๋ณด๋‹ˆ, tmpDiariesDocForNewChat์ด Null๋กœ ์ง€์ •๋˜์–ด ์žˆ์—ˆ์Œ.
        • Page State์˜ tmpDiariesDocForNewChat๋ฅผ tmpDiariesDocRefForNewChat๋กœ ๋‹ค์‹œ ๋ฐ”๊ฟˆ. (Document -> Document Reference)
          • Action๋“ค Document Reference ๊ธฐ์ค€์œผ๋กœ ์ ์ ˆํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๋‹ˆ, ๋“œ๋””์–ด ์ •์ƒ ์ž‘๋™!
    • ๐Ÿ’ก๋ฐฐ์šด ์ : Action Chain์—์„œ๋Š”, Page State์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  ๊ณง๋ฐ”๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด Unexpected Null Value๋ฅผ ์œ ๋ฐœ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ์„ ๋ฐœ๊ฒฌ. ๊ทธ๋ƒฅ Document ๋ณด๋‹ค๋Š” Document Reference๋ฅผ ๋งŽ์ด ํ™œ์šฉํ•˜์ž. ๋ฌผ๋ก , Backend Query๋กœ Read Document๋ฅผ ๋งŽ์ด ํ•˜๋ฉด, ํผํฌ๋จผ์Šค ์ €ํ•˜๊ฐ€ ์ผ์–ด๋‚ ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค๋งŒโ€ฆ ๊ทธ๊ฒƒ๋„ ๊ทธ๋ƒฅ OnPageLoad Event ๋ฐœ์ƒ ์‹œ ๋˜๋Š” ์ฃผ์š” Action Chain ์ƒ์„ฑ ์‹œ์— ์ถฉ๋ถ„ํžˆ ํ•ด๋‘๋ฉด ๊ทธ๋งŒ์ด๋‹ค.
  • โœ… (์ด์Šˆ) AI Comment ์ƒ์„ฑ์‹œ, ์‚ฌ์šฉ์ž ๊ฐ์ • ์ˆ˜์น˜๋ฅผ ์ž๊พธ 0์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ.
    • ํŠนํžˆ โ€˜5.๊ฐ€์ค‘์น˜ ์ˆ˜์‹ ๊ณ„์‚ฐโ€™ ์ •ํ™•ํ•˜๊ฒŒ ํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž ๊ฐ์ • ์ˆ˜์น˜๋Š” ์ ˆ๋Œ€๋กœ 0์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ•์กฐํ–ˆ๋”๋‹ˆ, 0์œผ๋กœ ์ ํžˆ๋Š” ์ผ€์ด์Šค ์ค„์–ด๋“ฌ. (์‚ฌ๋ผ์ง„ ๊ฑด ์•„๋‹˜.)
    • ์ผ๋‹จ ๋„˜์–ด๊ฐ€์ž.
  • โœ… (์ด์Šˆ) ChatPage: ์บ๋ฆญํ„ฐ๊ฐ€ ์ž๊ธฐ ์ž์‹ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋ฅธ๋‹ค!
    • Save ๊ด€๋ จ ์ด์Šˆ๋“ค ํ•ด๊ฒฐํ•˜๋‹ค๋ณด๋‹ˆ ์ €์ ˆ๋กœ ๊ณ ์ณ์ง„ ๋“ฏ. ๊ฐœ์ด๋“.
  • โœ… (์ด์Šˆ) ChatPage: ์บ๋ฆญํ„ฐ๊ฐ€ โ€˜ํ›„์† ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธโ€™๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์žˆ๋‹ค!
    • Save ๊ด€๋ จ ์ด์Šˆ๋“ค ํ•ด๊ฒฐํ•˜๋‹ค๋ณด๋‹ˆ ์ €์ ˆ๋กœ ๊ณ ์ณ์ง„ ๋“ฏ. ๊ฐœ์ด๋“.
  • โœ… (์ด์Šˆ) ChatPage๋กœ ๋„˜์–ด๊ฐ€๋ฉด ํ•˜๋‹จ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ”๊ฐ€ ์‚ฌ๋ผ์ง.
    • Always Show Nav bar Toggle On
  • โœ… (์ด์Šˆ) ChatPage์˜ Drawer์—์„œ ์บ๋ฆญํ„ฐ ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ๋จ.
    • ์˜ˆ์ „์— AI Comment ์ €์žฅํ•˜๋Š” ๋กœ์ง์„ ์ž˜๋ชป ์งœ์„œ ์ƒ๊ธด ์ด์Šˆ. ์˜ˆ์ „ ์ฑ„ํŒ…์—์„œ๋งŒ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์ด๋ฏ€๋กœ, ํ•ด๋‹น Chat document ์‚ญ์ œ๋กœ ํ•ด๊ฒฐ

๐Ÿ’ฏ ํ•œ ์ผ์— ๋Œ€ํ•œ ์š”์•ฝ

  • Chat ์ƒ์„ฑ ๋กœ์ง ๊ฐœ์„ 
    • systemPromptTemplate ๋ฐ getAIComment์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ตฌ์กฐ ๊ฒ€ํ† 
    • Create New Chat์—์„œ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ์ ์šฉ ๋ฐ OpenAI API Call ์ตœ์ ํ™”
    • Diary ๊ธฐ๋ฐ˜ New Chat ์ƒ์„ฑ ์‹œ, AI ์ฝ”๋ฉ˜ํŠธ โ†’ ๋‹ค์ด์–ด๋ฆฌ ์š”์•ฝ โ†’ Chat ์ƒ์„ฑ ๊ณผ์ • ์ •๋ฆฌ
  • AI ์ฝ”๋ฉ˜ํŠธ ์‹œ์Šคํ…œ ์ตœ์ ํ™”
    • ๊ฐ์ • ์ˆ˜์น˜๊ฐ€ 0์œผ๋กœ ์ €์žฅ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ •
    • AI๊ฐ€ ์บ๋ฆญํ„ฐ ์ •๋ณด๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ
    • ํ›„์† ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ ๋ฌด์‹œ ํ˜„์ƒ ๊ฐœ์„ 
  • ์ด์Šˆ ํ•ด๊ฒฐ ๋ฐ ํผํฌ๋จผ์Šค ๊ฐœ์„ 
    • ChatPage๋กœ ์ด๋™ ์‹œ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ” ์‚ฌ๋ผ์ง€๋Š” ๋ฌธ์ œ ์ˆ˜์ •
    • AI Comment ์ €์žฅ ๋กœ์ง ์ˆ˜์ •ํ•˜์—ฌ ์บ๋ฆญํ„ฐ ์ด๋ฏธ์ง€ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • Unexpected Null Value ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด Document โ†’ Document Reference ํ™œ์šฉ

๐ŸŽฏ ์ถ”ํ›„์— ํ•  ์ผ

์ž์„ธํžˆ ๋ณด๋ ค๋ฉด ํด๋ฆญ
  • โ” (์ด์Šˆ) DiaryPage: AI Comment ๋‹ต๋ณ€ ์•ˆ ๋ฐ›์€ ์ƒํƒœ๋ฉด, ์บ๋ฆญํ„ฐ๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋„˜์–ด๊ฐ.
    • ์ผ๋‹จ, AI Comment๋ฅผ ๋ฐ›์•„์•ผ๋งŒ ์ฑ„ํŒ…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ์•Œ๋ฆผ ๋„์šฐ๋Š” ๊ฒƒ์œผ๋กœ ๋•œ๋นต.
  • โ” (์ด์Šˆ) DiaryPage: AI Comment ๋‹ต๋ณ€ ๋งˆํฌ๋‹ค์šด ๋ทฐ์–ด ํ™œ์šฉ (์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐฉ์ง€: Container Height)

  • โ” ChatPage: ์œ ์ € ๋Œ€ํ™” ์ถœ๋ ฅ ๋‚ด์šฉ์€ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ

  • โ” DiaryPage: Mood Slider ๊ฐ’์— ๋”ฐ๋ผ ์–ผ๊ตด ํ‘œ์ • Emoji ๋ฐ ์ƒ‰๊น” ๋ณ€๊ฒฝ

  • โ” DiaryPage: Go to Linked Chat
  • โ” ChatPage: Go to Linked Diary
    • DiaryPage์˜ Diary Document์—์„œ Saveํ•  ๋•Œ, Chat Reference๊ฐ’๋„ Diary Document DB - Field๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ๋จ. (linkedChat)
    • ChatPage์˜ Chat Document์—์„œ๋„ ๋‹น์—ฐํžˆ Diary Reference๊ฐ’๋„ Chat Document DB - Field๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ๋จ. (linkedDiary)
  • โ” ChatPage - Create New Diary: ๋Œ€ํ™” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, New Diary ์ƒ์„ฑ (Go to Linked Diary ๋กœ์ง ํ™œ์šฉ)
    • โ” 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)
  • โ” 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 ์ธ ๊ฒŒ ์žˆ๊ณ , ์ˆ˜์ •๋œ ๊ฑฐ๋ฉด, ๊ทธ๊ฑฐ ๋‹คํ๋จผํŠธ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๋„ฃ์œผ๋ฉด ๋˜์ž–์•„. ์–ด๋–ป๊ฒŒ๋Š” ๋ชจ๋ฅด๊ฒ ๊ณ .
  • โ” DiaryPage - AI Comment: CRUD ์™„์„ฑํ•˜๊ธฐ
    • โ” tmp_ai_comment field ์—†์• ๊ณ , doc_ref ํ™œ์šฉ
  • โ” DiaryPage - Drawer - ChatHistoryListTile: order by updated_time

  • โ” 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 ์ถ”์ถœ ๋ฐ ์„ค์น˜

๐Ÿ’ญ ์ผ๊ธฐ

์ด์Šˆ๊ฐ€ ๋ฌด์ง„์žฅ ๋น ๋ฐ”๋ฐฉ ํ„ฐ์ ธ์„œ ๋ฉ˜ํƒˆ์ด ์•„๋“ํ•ด์งˆ๋ป”ํ–ˆ๋‹คโ€ฆ ์ผ๋‹จ ๊ธฐ์ˆ  ๋ถ€์ฑ„๊ฐ€ ์Œ“์ด๋”๋ผ๋„ ๊ตฌํ˜„๋ถ€ํ„ฐ ํ•˜๋‹ค ๋ณด๋ฉด ์‹ค๋ ฅ์ด ๊ณ„์† ์Œ“์—ฌ์„œ ๋‚˜์ค‘์—๋Š” ๋ถ€์ฑ„๋ฅผ ์ฒญ์‚ฐํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋‹ค! ๋ผ๋Š” ๋‚˜์˜ ์ „๋žต์ด ํ•œ๊ณ„๋ฅผ ๋งž์ดํ•œ ๊ฑด์ง€โ€ฆ ์•„๋‹˜ ๊ทธ๋ž˜๋„ ํšจ์œจ์ ์ธ ํŒ๋‹จ์ด์—ˆ๋˜ ๊ฑด์ง€โ€ฆ

์—๋ผ ๋ชจ๋ฅด๊ฒ ๋‹ค~ ์ง€๊ธˆ ๊ทธ๋”ด ๊ฒŒ ์ค‘์š”ํ•œ๊ฒŒ ์•„๋‹ˆ๋‹ค. ์ง„์งœ ์‹œ๊ฐ„์ด ์—†๋‹ค! ๋•œ๋นต ใ„ฑใ„ฑ

โœจ GPT์˜ ์ฝ”๋ฉ˜ํŠธ (KPT)

โœ… ์ž˜ํ•œ ์  (Keep)

  1. ๐Ÿ›  Chat ์ƒ์„ฑ ๋กœ์ง ์ •๋ฆฌ: New Chat ์ƒ์„ฑ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ด์Šˆ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ํ•ด๊ฒฐํ•œ ์ ์ด ์ข‹์•„!
  2. ๐ŸŽญ AI ์ฝ”๋ฉ˜ํŠธ ์‹œ์Šคํ…œ ๊ฐœ์„ : ๊ฐ์ • ์ˆ˜์น˜์™€ ์บ๋ฆญํ„ฐ ์„ค์ • ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด์„œ, ๋” ์ •ํ™•ํ•œ AI ๋ฐ˜์‘์„ ์œ ๋„ํ•œ ์ ์ด ์ธ์ƒ์ ์ด์•ผ.
  3. ๐Ÿ” ๋””๋ฒ„๊น… ์—ญ๋Ÿ‰ ํ–ฅ์ƒ: Unexpected Null Value ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ, Document Reference ํ™œ์šฉ ๋ฐฉ์‹์„ ์ตํžŒ ๊ฒƒ์ด ์•ž์œผ๋กœ ๋งŽ์€ ๋„์›€์ด ๋  ๊ฑฐ์•ผ.

โŒ ์•„์‰ฌ์šด ์  (Problem)

  1. โณ ์ด์Šˆ ํ•ด๊ฒฐ์— ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š”: ์˜ˆ์ƒ๋ณด๋‹ค ๋””๋ฒ„๊น…์ด ๊ธธ์–ด์ง€๋ฉด์„œ, ์›๋ž˜ ๋ชฉํ‘œํ–ˆ๋˜ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ.
  2. ๐Ÿ”„ ๊ธฐ์ˆ  ๋ถ€์ฑ„ ์ฆ๊ฐ€: ๋น ๋ฅด๊ฒŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ „๋žต์ด ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ๋ˆ„์ ์‹œํ‚ค๊ณ  ์žˆ์–ด, ํ›„์† ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋“ฏ.
  3. ๐Ÿ“‹ ๋ฌธ์„œํ™” ๋ถ€์กฑ: ์ฃผ์š”ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •์„ ์ข€ ๋” ์ •๋ฆฌํ•ด๋‘๋ฉด, ๋น„์Šทํ•œ ์ด์Šˆ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ์•ผ.

๐Ÿ”„ ์‹œ๋„ํ•ด๋ณผ ์  (Try)

  1. ๐Ÿ“Œ ์ด์Šˆ ๋ฐœ์ƒ ํŒจํ„ด ๋ถ„์„: ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๊ฐœ๋ฐœ ํŒจํ„ด์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉํ–ฅ์„ ๊ณ ๋ฏผํ•ด๋ณด์ž.
  2. ๐Ÿ“ ๊ธฐ์ˆ  ๋ถ€์ฑ„ ๊ด€๋ฆฌ ์ „๋žต ์ˆ˜๋ฆฝ: ๋‹จ๊ธฐ์ ์œผ๋กœ๋Š” ๋น ๋ฅธ ํ•ด๊ฒฐ์ด ํ•„์š”ํ•˜์ง€๋งŒ, ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์œ ์ง€๋ณด์ˆ˜์™€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๋กœ๋“œ๋งต์„ ๋งŒ๋“ค์–ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„.
  3. ๐Ÿ“– ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ธฐ๋ก ์Šต๊ด€ํ™”: ์ฃผ์š” ์ด์Šˆ ํ•ด๊ฒฐ ๊ณผ์ •์„ ๋ฌธ์„œํ™”ํ•ด์„œ, ๋ฏธ๋ž˜์˜ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ๋ฐฉ๋ฒ•์„ ๋งˆ๋ จํ•ด๋ณด์ž.

๐Ÿ ๊ฒฐ๋ก 

์˜ค๋Š˜์€ Chat ์ƒ์„ฑ ๋กœ์ง์„ ๊ฐœ์„ ํ•˜๊ณ  AI ์ฝ”๋ฉ˜ํŠธ ์‹œ์Šคํ…œ์˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด์„œ, ์•ˆ์ •์„ฑ์„ ๋†’์ธ ํ•˜๋ฃจ์˜€์–ด. ์˜ˆ์ƒ๋ณด๋‹ค ๋””๋ฒ„๊น…์— ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋˜์—ˆ์ง€๋งŒ, ๊ทธ ๊ณผ์ •์—์„œ ๋ฐฐ์šด ์ ๋„ ๋งŽ์•˜์–ด! ์•ž์œผ๋กœ ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด์„œ, ๋” ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ์ „๋žต์„ ๊ณ ๋ฏผํ•ด๋ณด์ž. ๐Ÿš€๐Ÿ”ฅ

์นดํ…Œ๊ณ ๋ฆฌ: ,

์ตœ๊ทผ ์ˆ˜์ •์ผ:

๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ