ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿš€ 1. How I Built a Production-Ready AI Chat App in FlutterFlow (With OpenAI + Firebase)
Dev.toDev.to
Backend

Firebase Cloud Functions ๊ธฐ๋ฐ˜ OpenAI API ๋ณด์•ˆ ๋ฐ ๋น„์šฉ ์ œ์–ด ์„ค๊ณ„

๐Ÿš€ 1. How I Built a Production-Ready AI Chat App in FlutterFlow (With OpenAI + Firebase)

Codexlancers2026๋…„ 5์›” 8์ผ1๋ถ„beginner

Context

Low-code ๋„๊ตฌ์ธ FlutterFlow ์‚ฌ์šฉ ์‹œ Frontend ๋‚ด API Key ๋…ธ์ถœ ์œ„ํ—˜ ๋ฐ ๋ฌด๋ถ„๋ณ„ํ•œ ํ† ํฐ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•œ ๋น„์šฉ ์ฆ๊ฐ€ ๋ฌธ์ œ ์ง๋ฉด. ํด๋ผ์ด์–ธํŠธ ์ค‘์‹ฌ ์„ค๊ณ„์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ๊ณผ ์šด์˜ ๋น„์šฉ ๊ด€๋ฆฌ์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜ ๋„์ž… ํ•„์š”์„ฑ ์ œ๊ธฐ.

Technical Solution

  • API Key ์œ ์ถœ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด Frontend ์ง์ ‘ ํ˜ธ์ถœ ๋Œ€์‹  Firebase Cloud Functions๋ฅผ ๊ฒฝ์œ ํ•˜๋Š” Proxy ๊ตฌ์กฐ ์„ค๊ณ„
  • Firestore๋ฅผ ํ™œ์šฉํ•œ ์‚ฌ์šฉ์ž๋ณ„ Chat history ์ €์žฅ ๋ฐ ์‹ค์‹œ๊ฐ„ UI ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜
  • OpenAI API ํ˜ธ์ถœ ๋‹จ๊ณ„์—์„œ ๋ฉ”์‹œ์ง€ ๊ธธ์ด๋ฅผ ์ œํ•œํ•˜๋Š” Token Usage ์ œ์–ด ๋กœ์ง ๊ตฌํ˜„
  • ๋ฌด๋ฃŒ ์‚ฌ์šฉ์ž ๋Œ€์ƒ ์ผ์ผ ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” Quota ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ํ†ตํ•œ ๋น„์šฉ ์ตœ์ ํ™”
  • Firestore์˜ timestamp ๊ธฐ๋ฐ˜ ์ •๋ ฌ์„ ํ†ตํ•œ ๋Œ€ํ™” ๋งฅ๋ฝ ์œ ์ง€ ๋ฐ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ retrieval ๊ตฌ์กฐ ์ฑ„ํƒ

- API Key ๋ณด์•ˆ์„ ์œ„ํ•ด Backend Proxy Layer ๊ตฌ์ถ• ์—ฌ๋ถ€ ๊ฒ€ํ†  - LLM ๋„์ž… ์‹œ Token Usage ๊ธฐ๋ฐ˜์˜ ๋น„์šฉ ์ œ์–ด ๋ฐ ์‚ฌ์šฉ์ž๋ณ„ Rate Limit ์„ค์ • ์ ์šฉ - Low-code ํ™˜๊ฒฝ์—์„œ๋„ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ„๋ฆฌ๋ฅผ ์œ„ํ•ด ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜ ํ™œ์šฉ ๊ณ ๋ ค

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