์๋ฌ ๋ํก์ค ์ ์ ๊ฐ๋ฐ ํ๊ณ - ํ๋กํ ํ์ 2์ผ, ํ ๋ฌ ๋ง์ ๋ฐฐํฌ
๋ค์ด๊ฐ๋ฉฐ
์๋ฌ ๋ํก์ค ์ ์์ ๋ง๋ค๊ณ ๋ฐฐํฌ๊น์ง ๋๋๋ค. ์ฒ์์ ๋ฐฐํฌ ์ค์ ๊ฒช์ ๋ฌธ์ ๋ค๋ง ์ ๋ฆฌํ๋ ค ํ๋๋ฐ, ๋ค์ ๋ณด๋ ์ด ํ๋ก์ ํธ๋ ์ดํ ๋ง์ ๋ผ๋๋ฅผ ์ธ์ฐ๊ณ ํ ๋ฌ์ Google AI studio์์ ์์ ํ๊ณ , ๋ํ ๋ง์ ๋ชฐ์์ ์์ฑํ, ๊ฝค ํน์ดํ ๋ฆฌ๋ฌ์ผ๋ก ์งํ๋๋ค. ๊ทธ๋์ ํธ๋ฌ๋ธ์ํ ๋์ด๋ณด๋ค๋ ํ๋ก์ ํธ ํ๋๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ๋์ง๋ ํ๊ณ ๋ก ๋จ๊ธฐ๊ธฐ๋ก ํ๋ค.
1. ํ๋ก์ ํธ ๊ธฐ๊ฐ๊ณผ ์งํ ๋ฆฌ๋ฌ
๊ฐ๋ฐ ๊ธฐ๊ฐ์ 2026๋ 7์ 15์ผ๋ถํฐ 8์ 19์ผ๊น์ง, ๋ฌ๋ ฅ์ผ๋ก๋ ํ ๋ฌ์ด ๋๋๋ค. ๊ทผ๋ฐ ์ค์ ๋ก ์ปค๋ฐ์ ๋จ๊ธด ๋ ์ ๊ทธ์ค ์ฟ์๋ฟ์ด๋ค.
1์ฐจ - 7์ 15์ผ~16์ผ (์ดํ): ์ฒซ ์ปค๋ฐ์ผ๋ก ์ ์ ๋ผ๋๋ฅผ ์ธ์ฐ๊ณ , README์ ๋ณด์ ํค๋, ๋ช ์ ํ์ด๋จธ๊น์ง ๋ถ์ฌ ํ๋กํ ํ์ ์ ๋๋๋ค.
2์ฐจ - 7์ 17์ผ~8์ 15์ผ (ํ ๋ฌ): ํธ๋ํฐ๊ณผ ์ปดํจํฐ๋ก Google AI ์คํ๋์ค์์ ์์ ์ ํ๋ค.
3์ฐจ - 8์ 16์ผ~19์ผ (๋ํ): ์ ์ ๊ด์ฅ ์ปค๋ฎค๋ํฐ์ ๋ฐค ํ ๋ง๋ฅผ ์ถ๊ฐํ๊ณ ๋ฐฐํฌ๋ฅผ ์ค๋นํ๋ค. Google AI Studio๋ฅผ ๋ฒ์ด๋์ ๋ฐฐํฌํ์๋ง์ ๋ก๊ทธ์ธ, API, ์ธ์ ๋ฌธ์ ๊ฐ ์ฐ๋ฌ์ ํฐ์ ธ์ ๊ทธ๋ ์ ๋ ๋ด๋ด ๊ณ ์ณค๊ณ , ๋ค์๋ ์ ์ ํธ๋ฆฌํฐ ํด๋์ค ์ ๋ฆฌ์ ์ ๊ทผ์ฑ ๊ฐ์ ์ผ๋ก ๋ง๋ฌด๋ฆฌํ๋ค.
๋ค์ ์ด์์ ๋ ๊ฐ์ฅ ๋จผ์ ํ ๊ฑด ๋ด๊ฐ ๋ญ ๋ง๋ค๋ค ๋ฉ์ท๋์ง ์ฒ์๋ถํฐ ๋ค์ ์ฝ๋ ๊ฒ์ด์๋ค. ์ดํ ๋ง์ ๋ง๋ ์ฝ๋์๋๋ฐ๋ ํ ๋ฌ์ด ์ง๋๋ ๋จ์ ์ฝ๋์ฒ๋ผ ๋ฏ์ค์๋ค.
2. ๋ญ ๋ง๋ค์๋ - ์๋ฌ๋ฅผ ์๋ฌผ๋ก ์ ํํ๋ ์ ์
์ปจ์ ์ ๋จ์ํ๋ค. ์๋ฌ ๋ก๊ทธ์ ๊ทธ๋ ๊ฐ์ ์ ์ ์ด ๋ด๋ฉด, Gemini๊ฐ ๋ถ์ํด์ ์์ธ·๋ด์ฉ·ํด๊ฒฐ์ฑ ์์ฝ ์นด๋๋ฅผ ๋จผ์ ๋ณด์ฌ์ฃผ๊ณ , ์ด์ด์ ์๋ฌผ ์ํ์ ๋น๋ ์๋ก์ ๋๋ฒ๊น ์กฐ์ธ์ ๊ฑด๋จ๋ค.
์๋ฌ ์ข ๋ฅ์ ๋ฐ๋ผ ์ ํํ๋ ์๋ฌผ์ด ๋ค๋ฅด๋ค.
| ์๋ฌ ์ ํ | ์๋ฌผ | ์์ |
|---|---|---|
| ๋น๋๊ธฐ/๋์์ฑ/์ค๋ ๋ | ์ ์นผ๋ฆฝํฌ์ค | ์ฐจ๋ถํ ์๋น ์, ํ๋ฆ์ ์กฐ์จํ๋ ํ |
| ์ธํ๋ผ/๋คํธ์ํฌ/๋ฐฐํฌ | ๋๋๋ฌด | ํ์ด์ ธ๋ ๋ถ๋ฌ์ง์ง ์๋ ์ ์ฐํจ |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค/์ ์ฒด | ๋ชฌ์คํ ๋ผ | ๋์ ์์ผ๋ก ๋ณ๋ชฉ์ ๊ทธ๋์ง๊ฒ |
| ๋ ๊ฑฐ์/์คํ๊ฒํฐ ์ฝ๋ | ์์ด๋น | ์์ผ๋ ๋๊ธฐ์ง ์๋ ์๋ช ๋ ฅ |
์๋ฌ ๋ก๊ทธ์ ๊ฐ์ ์ ์ ์ผ๋ฉด Gemini๊ฐ ์ด๋ ๊ฒ ์ ํํด์ค๋ค.

์๋ฌ ๋ก๊ทธ๋ฅผ ๋ถ์ฌ๋ฃ๊ณ ๋ชฌ์คํ ๋ผ๋ฅผ ๊ณ ๋ฅด๋ฉด, ์ด๋ ๊ฒ ์์ฝ ์นด๋๋ถํฐ ๋ณด์ฌ์ค๋ค.

์ ํํ ๊ธฐ๋ก์ด ์์ด๋ฉด ์ ์ ํ ๋ผ๋ฆฌ์ ๋ ๋ฒจ์ด ์ค๋ฅด๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ ํ ๊ธฐ๋ก์ ์์์ ๋จ๊ธฐ๋ ์ ์ ๊ด์ฅ๋ ์๋ค. Web Audio API๋ก ๋ฐ๋·๋น·์์๋ฆฌ๋ฅผ ๊ทธ ์๋ฆฌ์์ ํฉ์ฑํด์ ํ์ผ ๋ก๋ฉ ์์ด ๋ฐฐ๊ฒฝ์๋ ์ผค ์ ์๋ค.
๋ฉ์ธ ์ผํฐ์ ์ฌ์ด๋ ๋ฏน์, ์ ์ ๊ด์ฅ, ํ ๋ผ๋ฆฌ์ ๋ณด๊ดํจ์ ์ด๋ฐ ๋ชจ์ต์ด๋ค.



๋ฆ์ ๋ฐค ์์ ํ ๋ ๋คํฌ ํ ๋ง๋ก ์ ํํ ์ ์๊ณ ,
์ฒ์ ์จ ์ฌ๋์ ์ํ ์ฌ์ฉ ์ค๋ช ์์ TRIZ·SCAMPER·ERRC ๊ธฐ๋ฒ์๋ ๋ฐ๋ก ๋ง๋ จํด๋๋ค.



์ ์ ๋ง๊ณ ๋ ๋ฒ์งธ ์ถ๋ ์๋ค. TRIZ, SCAMPER, ERRC ๊ฐ์ ์๋น์ค ๊ธฐํ ํ๋ ์์ํฌ๋ก ๋ธ๋ ์ธ์คํ ๋ฐ์ ์ ๋ฆฌํ๋ ์ํฌ์ํธ ๊ธฐ๋ฅ์ธ๋ฐ, ๊ฒฐ๊ณผ๋ฅผ Google Drive์ JSON์ผ๋ก ์ ์ฅํด๋๊ณ ๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
์คํ: React 19 + TypeScript + Vite + Tailwind v4(ํ๋ก ํธ), Express(๋ก์ปฌ ๊ฐ๋ฐ ์๋ฒ), @google/genai(Gemini ์ฐ๋), Firebase Auth + Google Drive API(๋ก๊ทธ์ธ/์ ์ฅ), Vercel(๋ฐฐํฌ).
3. ์์ ๋ด์ฉ ์์ฝ
๋ฐฐํฌ๋ฅผ ์ฌ๊ฐํ ๋ํ ๋์ ๊ฒช์ ๋ฌธ์ ๋ ํฌ๊ฒ ์ธ ๊ฐ์ง์๋ค.
Vercel์ ์ฌ๋ฆฌ์ API๊ฐ ํต์งธ๋ก 404 - ๋ก์ปฌ์ Express(server.ts)๊ฐ /api/gemini/refresh๋ฅผ ์ง์ ์๋นํ๋๋ฐ, Vercel์ vite build ๊ฒฐ๊ณผ๋ฌผ, ์ฆ ์ ์ ํ์ผ๋ง ๋ฐฐํฌํ๊ณ ์์๋ค. Express ์๋ฒ ์์ฒด๊ฐ ์ ์ด์ ์คํ๋์ง ์์ ๊ฒ์ด๋ค. server.ts์ ํ๋กฌํํธ·๊ฒ์ฆ ๋ก์ง์ api/gemini/refresh.ts๋ผ๋ Vercel ์๋ฒ๋ฆฌ์ค ํจ์๋ก ์ฎ๊ธฐ๊ณ ๋์์ผ ํด๊ฒฐ๋๋ค. Vercel์ api/ ๋๋ ํ ๋ฆฌ ์๋ ํ์ผ์ ์๋์ผ๋ก ํจ์๋ก ์ธ์ํด์ ๋ฐฐํฌํด์ค๋ค.
export const config = { maxDuration: 60 }; // Gemini ์๋ต์ด 10์ด ๋๊ฒ ๊ฑธ๋ฆด ๋๊ฐ ์์ด์
์๋ก๊ณ ์นจํ๋ฉด ๋ก๊ทธ์์ - Firebase ๋ก๊ทธ์ธ ์ธ์
(localStorage์ ์ ์ฅ๋ผ ์๊ตฌ์ )๊ณผ Google Drive ์ก์ธ์ค ํ ํฐ(ํญ ๋จ์๋ก๋ง ์ด๊ณ 1์๊ฐ ๋ค ๋ง๋ฃ)์ ๊ฐ์ ๊ฒ์ผ๋ก ์ทจ๊ธํ ๊ฒ ๋ฌธ์ ์๋ค. "์ธ์
์ ์๋๋ฐ Drive ํ ํฐ์ด ์์ผ๋ฉด ๋ก๊ทธ์ธ ์คํจ"๋ก ์ฒ๋ฆฌํ๋ ๋ถ๊ธฐ๋ฅผ ์์ ๊ณ , ๋ก๊ทธ์ธ ์ฌ๋ถ๋ Firebase ์ธ์
์ผ๋ก๋ง ํ๋จํ๋๋ก hasDriveAccess๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํ๊ณ ๋์์ผ ์์ ๋๋ค.
๋ฐฐํฌ ์ ๋ณด์ ์ ๊ฒ - HTTP ๋ณด์ ํค๋, ํ์ด๋ก๋ ํฌ๊ธฐ ์ ํ(DoS ๋ฐฉ์ง), ์ ๋ ฅ ํ์ ·ํ์ดํธ๋ฆฌ์คํธ ๊ฒ์ฆ, ๋ฌธ์์ด ๊ธธ์ด ์ ํ์ ํ ๊ฒน์ฉ ๋๋ ๋ค. ์๋ฌ ๋ก๊ทธ๋ ๊ฒ ์ฌ์ฉ์๊ฐ ์์ ํ ์คํธ๋ก ๋ถ์ฌ๋ฃ๋ ๊ฐ์ด๋ผ, ๊ฒ์ฆ ์์ด ๊ทธ๋๋ก Gemini ํ๋กฌํํธ์ ๊ฝ์ผ๋ฉด ๊ณผ๋ํ ํ์ด๋ก๋๋ ํ๋กฌํํธ ์ธ์ ์ ์ ์ทจ์ฝํด์ง๋ค.
4. ์ ๋ ๊ฒ
์ดํ ๋ง์ ๋ง๋ ํ๋กํ ํ์ ์ด ํ ๋ฌ ๋ค์๋ ๋ค์ ๋ถ์ก์ ์ ์์ ๋งํผ ๋ฉ์ฉกํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ์ํ ์ ํ์ด์๋ค.
- ํ๋กฌํํธ·๊ฒ์ฆ ๋ก์ง์ API ํธ๋ค๋ฌ ํ๋์ ๋ชฐ์๋ ๊ตฌ์กฐ ๋๋ถ์, ๋์ค์ Vercel ์๋ฒ๋ฆฌ์ค ํจ์๋ก ์ฎ๊ธธ ๋ ๋ก์ง์ ๊ฑฐ์ ๊ทธ๋๋ก ์ฌ์ฌ์ฉํ ์ ์์๋ค.
- ๋ก๊ทธ์ธ ์ฌ๋ถ์ Drive ์ ๊ทผ ๊ถํ์ ๋ถ๋ฆฌํ ์ค๊ณ๋, ์ ์ ๊ธฐ๋ฅ์ฒ๋ผ Drive๊ฐ ํ์ ์๋ ํ๋ฉด์์ ๋ถํ์ํ ์ฌ๋ก๊ทธ์ธ ์๊ตฌ๋ฅผ ์์ ์คฌ๋ค.
- ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ(ํค๋, DoS ๋ฐฉ์ด, ์ ๋ ฅ ๊ฒ์ฆ)๋ฅผ ์ด๊ธฐ ํ๋กํ ํ์ ๋จ๊ณ์์ ๋ฏธ๋ฆฌ ๋ฃ์ด๋ ๋๋ถ์, ๋ฐฐํฌ ์ง์ ์ ๊ธํ๊ฒ ์๋ ๊ฒ ์ ์๋ค.
5. ์์ฌ์ ๋ ๊ฒ
- ๋ฐฐํฌ ํ๋ซํผ(Vercel)์ API ๋ผ์ฐํ ๋ฐฉ์์ ๋ฏธ๋ฆฌ ํ์ธํ์ง ์๊ณ ๋ก์ปฌ Express ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ ์ฑ ๋ฐฐํฌ๋ถํฐ ํด๋ฒ๋ ธ๋ค. ๊ทธ ๋ฐ๋์ ๋ฐฐํฌ ๋น์ผ API๊ฐ ํต์งธ๋ก ์ฃฝ์ด์๋ ๊ฑธ ๋ค๋ฆ๊ฒ ๋ฐ๊ฒฌํ๋ค.
- ํ ๋ฌ์ ๊ณต๋ฐฑ ๋์ ๋ฌด์์ ๋ง๋ค๋ค ๋ฉ์ท๋์ง ๊ธฐ๋ก์ ๋จ๊ฒจ๋์ง ์์์, ๋ค์ ์ด์์ ๋ ์ฝ๋๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ์ฝ์ด์ผ ํ๋ค. Git ์ปค๋ฐ ๋ฉ์์ง๋ง์ผ๋ก๋ "์" ๊ทธ๋ ๊ฒ ์งฐ๋์ง๊ฐ ์ ์ ๋ณด์๋ค.
- ๋ฆฌํ๋ ์ ํ ํฐ๊น์ง๋ ์์ง ์ ๋ถ์ฌ์, Drive ํ ํฐ์ด 55๋ถ๋ง๋ค ๋๊ธฐ๋ ๋ฌธ์ ๋ ๊ทผ๋ณธ์ ์ผ๋ก ํด๊ฒฐํ์ง ๋ชปํ๋ค.
6. ๋ค์์ ๋น์ทํ ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ฉด
- ๋ก์ปฌ ๊ฐ๋ฐ ์๋ฒ์ ๋ฐฐํฌ ํ๋ซํผ์ ๋ผ์ฐํ ๋ฐฉ์์ด ๋ค๋ฅผ ์ ์๋ค๋ ๊ฑธ ์ ์ ๋ก, ๋ฐฐํฌ ํ๋ซํผ๋ถํฐ ๋จผ์ ์ ํ๊ณ ๊ทธ์ ๋ง๋ ๊ตฌ์กฐ๋ก ์์ํ ๊ฒ ๊ฐ๋ค.
- ๋ฉฐ์น ์ด์ ํ๋ก์ ํธ๋ฅผ ์ฌ๊ฒ ๋ ๊ฑธ ์๋ฉด, ๋ฉ์ถ๊ธฐ ์ง์ ์ "์ ์ด๋ ๊ฒ ์งฐ๋์ง" ํ ์ค์ด๋ผ๋ ๋จ๊ฒจ๋๋ ์ต๊ด์ ๋ค์ด๊ณ ์ถ๋ค.
- ์ธ์ ์ ์ค๊ณํ ๋๋ "์ด ์ ๋ณด๊ฐ ์ธ์ ๋ง๋ฃ๋๊ณ , ๋๊ฐ ๊ทธ๊ฑธ ํ์๋ก ํ๋๊ฐ"๋ฅผ ๋จผ์ ๋๋๋ ๊ฑธ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ผ์ ๊ฒ ๊ฐ๋ค.
์ดํ ๋ง์ ๋ง๋ ๊ฒ๋, ํ ๋ฌ์ ๋ฌตํ ๊ฒ๋, ๋ํ ๋ง์ ๋ชฐ์์ ๊ณ ์น ๊ฒ๋ - ๊ฒฐ๊ตญ ๋ค ์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ด์๋ค.
์ด๋ก๋น ์๋ฌ ๋ํก์ค ๊ฐ๋ | GitHub



