๊ตฌ๊ธ AI ์คํ๋์ค API ํค ๋ฐ๊ธ: 2024๋ ์ต์ ๊ฐ์ด๋ โ
๊ตฌ๊ธ AI ์คํ๋์ค์์ Gemini API ํค ๋ฐ๊ธ ๊ณผ์ ์ 2024๋ ์ต์ UI ๊ธฐ์ค์ผ๋ก ์ฝ๊ณ ๋ช ํํ๊ฒ ๋จ๊ณ๋ณ ์๋ดํฉ๋๋ค.
AI ๊ธฐ์ ์ ๋๊ตฌ๋ ์ฝ๊ฒ ํ์ฉํ ์ ์๋๋ก ์ค์ ๊ฐ์ด๋๋ฅผ ์์ฑํฉ๋๋ค. ChatGPT, Claude, AI ์๋ํ, SEO ๋ถ์ผ๋ฅผ ์ ๋ฌธ์ผ๋ก ๋ค๋ฃน๋๋ค.
Gemini API๋ฅผ ํ์ด์ฌ์ผ๋ก ์ฐ๊ฒฐํ๋ ค๋๋ฐ 403 Forbidden, ์ธ์ฆ ์คํจ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ง๋ ๋ต๋ตํ์ ๊ฐ์? ๊ธฐ๋ณธ์ ์ธ API ํค ๋ฐ๊ธ๊ณผ ์ฝ๋ ์์ฑ์ ์๋ํ์ง๋ง, ์์ธ์ ์ ์ ์๋ ์๋ฌ ๋๋ฌธ์ ์งํ์ด ๋งํ์ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋์์๋ Gemini API ์ฐ๊ฒฐ ์ ํํ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ์ง๋จํ๊ณ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ค์ฉ์ ์ผ๋ก ๋ค๋ฃน๋๋ค.
Gemini API ์ฐ๊ฒฐ ์ค๋ฅ๋ ์ฃผ๋ก API ํค ์ ํจ์ฑ, ํ๊ฒฝ ๋ณ์ ์ค์ , ๋๋ ๊ถํ ๋ฌธ์ ์์ ๋ฐ์ํฉ๋๋ค. ๊ฐ ์๋ฌ ์ฝ๋๋ณ๋ก ์์ธ์ ์ง๋จํ๊ณ , API ํค ์ฌ๋ฐ๊ธ, ํ๊ฒฝ ๋ณ์ ์ค์ ๊ฒํ , Google Cloud ๊ถํ ํ์ธ ๋ฑ ๋จ๊ณ๋ณ ํด๊ฒฐ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ต์ข ์ ์ผ๋ก ๊ฐ๋จํ ํ ์คํธ ์ฝ๋๋ฅผ ํตํด ์ฐ๋ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Gemini API๋ฅผ ํ์ด์ฌ์ผ๋ก ์ฐ๋ํ ๋ ๋ง์ฃผ์น๋ ์ค๋ฅ๋ ๋ช ๊ฐ์ง ๊ณตํต์ ์ธ ํจํด์ ๋ณด์ ๋๋ค. ๊ฐ ์ค๋ฅ ์ ํ์ ํน์ง์ ์ดํดํ๋ฉด ๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋ฉ๋๋ค. ์ง์ ์ฌ์ฉํด๋ณด๋ฉด ํน์ ์๋ฌ ๋ฉ์์ง๊ฐ ๋ฐ๋ณต๋๋ ๊ฒฝํฅ์ ํ์ธํ ์ ์์ต๋๋ค.

์ด ์ค๋ฅ๋ API ํค๋ ์ ํจํ์ง๋ง, ํด๋น ํค์ API ์ฌ์ฉ ๊ถํ์ด ๋ถ์ฌ๋์ง ์์๊ฑฐ๋ ์ ๊ทผ์ด ์ ํ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ค ํ ๋ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ Google Cloud ํ๋ก์ ํธ์์ Gemini API๊ฐ ํ์ฑํ๋์ง ์์์ ๋ ์ด ์๋ฌ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๊ฐ์ฅ ํํ ์ค๋ฅ ์ค ํ๋์
๋๋ค. ์ฃผ๋ก API ํค ์์ฒด๊ฐ ์๋ชป๋์๊ฑฐ๋, ์คํ๊ฐ ์๊ฑฐ๋, ๋ง๋ฃ๋์๊ฑฐ๋, ํน์ ์ญ์ ๋ ํค๋ฅผ ์ฌ์ฉํ๋ ค ํ ๋ ๋ํ๋ฉ๋๋ค. AuthenticationError, Invalid API Key ๋ฑ์ ๋ฉ์์ง์ ํจ๊ป ๋ํ๋ฉ๋๋ค.
API ํค๋ฅผ ์ฝ๋์ ์ง์ ์
๋ ฅํ๋ ๋์ ํ๊ฒฝ ๋ณ์๋ก ๊ด๋ฆฌํ ๋ ์์ฃผ ๋ฐ์ํฉ๋๋ค. ํ์ด์ฌ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋ ๋ ํ๊ฒฝ ๋ณ์๊ฐ ์ ๋๋ก ๋ก๋๋์ง ์๊ฑฐ๋, ๋ณ์ ์ด๋ฆ์ด ์๋ชป ์ค์ ๋ ๊ฒฝ์ฐ์
๋๋ค. ์๋ฅผ ๋ค์ด, GOOGLE_API_KEY๋ก ์ค์ ํ๋๋ฐ ์ฝ๋์์๋ ๋ค๋ฅธ ๋ณ์ ์ด๋ฆ์ ํธ์ถํ๋ ์์
๋๋ค.
๋๋ฌผ์ง๋ง ๋ฐฉํ๋ฒฝ ์ค์ , ํ์ฌ ๋คํธ์ํฌ ํ๋ก์, ๋ถ์์ ํ ์ธํฐ๋ท ์ฐ๊ฒฐ ๋ฑ ๋คํธ์ํฌ ๊ด๋ จ ๋ฌธ์ ๋ก API ์๋ฒ์ ์ ๊ทผํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก Connection Error๋ Timeout ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
Gemini API ์ฐ๊ฒฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ตฌ์ฒด์ ์ธ ๋จ๊ณ๋ค์ ์๊ฐํฉ๋๋ค. ์ ๊ฐ ์ง์ ์ฌ๋ฌ ๋ฒ์ ํ ์คํธ๋ฅผ ํตํด ํจ๊ณผ์ ์ด๋ผ๊ณ ํ๋จํ ์์์ ๋๋ค.
๊ฐ์ฅ ๋จผ์ ํ์ธํด์ผ ํ ๋ถ๋ถ์ API ํค ์์ฒด์ ๋๋ค.
๊ธฐ์กด ํค์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จ๋๋ฉด ๊ณผ๊ฐํ๊ฒ ์ ํค๋ฅผ ๋ฐ๊ธ๋ฐ๋ ๊ฒ์ด ๋น ๋ฆ ๋๋ค. ๋จ, ์ ํค๋ฅผ ๋ฐ๊ธ๋ฐ์ ํ์๋ ๋ฐ๋์ ์ด์ ํค๊ฐ ์๋ ์๋ก ๋ฐ๊ธ๋ฐ์ ํค๋ฅผ ์ฝ๋์ ์ ์ฉํด์ผ ํฉ๋๋ค.
API ํค๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ๊ณ ์ถ๋ค๋ฉด ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ์ด์ฌ์์๋ python-dotenv ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํฉ๋๋ค.
pip install python-dotenv google-generativeai
.env ํ์ผ ์์ฑ: ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ .env ํ์ผ์ ๋ง๋ค๊ณ ๋ค์๊ณผ ๊ฐ์ด API ํค๋ฅผ ์
๋ ฅํฉ๋๋ค. GOOGLE_API_KEY="YOUR_NEW_API_KEY"
"YOUR_NEW_API_KEY" ๋ถ๋ถ์ 1๋จ๊ณ์์ ๋ฐ๊ธ๋ฐ์ ํค๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.
3. Python ์ฝ๋ ์์ : ํ์ด์ฌ ์ฝ๋์์ .env ํ์ผ์ ๋ก๋ํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๋๋ก ํฉ๋๋ค.
import os
import google.generativeai as genai
from dotenv import load_dotenv
load_dotenv() # .env ํ์ผ ๋ก๋
api_key = os.environ.get("GOOGLE_API_KEY")
if api_key:
genai.configure(api_key=api_key)
print("API ํค๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋๋์์ต๋๋ค.")
else:
print("GOOGLE_API_KEY ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.")
# ์ด์ด์ Gemini API ์ฌ์ฉ
# try:
# model = genai.GenerativeModel('gemini-pro')
# response = model.generate_content("์๋
ํ์ธ์?")
# print(response.text)
# except Exception as e:
# print(f"API ํธ์ถ ์ค ์ค๋ฅ ๋ฐ์: {e}")
.env ํ์ผ์ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ค๋ฉด, ํด๋น ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ๋ฐ๋ฅธ ์ธ์
์ ๋ก๋๋์๋์ง ํ์ธํฉ๋๋ค.echo $GOOGLE_API_KEY (Linux/macOS) ๋๋ echo %GOOGLE_API_KEY% (Windows cmd) ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ๊ฐ์ด ์ ๋๋ก ๋์ค๋์ง ํ์ธํฉ๋๋ค.
403 Forbidden ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ฉด, Google Cloud ํ๋ก์ ํธ์ ๊ถํ์ ํ์ธํด์ผ ํฉ๋๋ค.
Vertex AI ์ฌ์ฉ์ ๋๋ ์๋น์ค ์ฌ์ฉ๋ ์๋น์์ ๊ฐ์ ์ ์ ํ ์ญํ ์ด ๋ถ์ฌ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. (์ผ๋ฐ์ ์ผ๋ก Google AI Studio์์ ๋ฐ๊ธ๋ฐ์ ํค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ถํ์ด ์์ผ๋, ํน์ํ ์ํฉ์์ ํ์ํ ์ ์์ต๋๋ค.)์ Google Cloud ํ๋ก์ ํธ์์๋ Vertex AI ๊ด๋ จ API๋ฅผ ์๋์ผ๋ก ํ์ฑํํด์ผ ํ ๋๊ฐ ๋ง์ต๋๋ค. ์ด ๋จ๊ณ๋ฅผ ๋์น๋ฉด 403 Forbidden ์ค๋ฅ๋ฅผ ๊ฒช์ ์ ์์ต๋๋ค.
Python ํ๊ฒฝ์ด๋ google-generativeai ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ๋ฌธ์ ๋ ์ค๋ฅ์ ์์ธ์ด ๋ ์ ์์ต๋๋ค.
pip show google-generativeai # ํ์ฌ ๋ฒ์ ํ์ธ
pip install --upgrade google-generativeai # ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ
google-generativeai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ Python ๋ฒ์ ๊ณผ ํ์ฌ ์์คํ
์ Python ๋ฒ์ ์ด ํธํ๋๋์ง ํ์ธํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Python 3.8 ์ด์์ ๊ถ์ฅํฉ๋๋ค. python --version
python -m venv venv
source venv/bin/activate # Linux/macOS
.\venv\Scripts\activate # Windows
๋ชจ๋ ์ค์ ์ ๋ง์ณค๋ค๋ฉด, ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ API ํธ์ถ ์ฝ๋๋ฅผ ์คํํ์ฌ ์ฐ๋ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
import os
import google.generativeai as genai
from dotenv import load_dotenv
load_dotenv()
api_key = os.environ.get("GOOGLE_API_KEY")
if not api_key:
print("์ค๋ฅ: GOOGLE_API_KEY ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.")
print("`.env` ํ์ผ์ด๋ ์์คํ
ํ๊ฒฝ ๋ณ์๋ฅผ ํ์ธํด์ฃผ์ธ์.")
else:
try:
genai.configure(api_key=api_key)
model = genai.GenerativeModel('gemini-pro')
print("Gemini API ๊ตฌ์ฑ ์ฑ๊ณต. ํ
์คํธ ๋ฉ์์ง๋ฅผ ๋ณด๋
๋๋ค...")
response = model.generate_content("์๋
ํ์ธ์? ์๊ธฐ์๊ฐ์ ํจ๊ป ํ๊ตญ์ด๋ก ๋ต๋ณํด์ฃผ์ธ์.")
print("\n--- API ์๋ต ---")
print(response.text)
print("----------------\n")
print("Gemini API ์ฐ๋ ์ฑ๊ณต!")
except Exception as e:
print(f"\nAPI ํธ์ถ ์ค ์ฌ๊ฐํ ์ค๋ฅ ๋ฐ์: {e}")
print("์ค๋ฅ ๋ฉ์์ง๋ฅผ ์์ธํ ํ์ธํ๊ณ , ์ ๊ฐ์ด๋์ ๋จ๊ณ๋ฅผ ๋ค์ ๊ฒํ ํด์ฃผ์ธ์.")
์ด ์ฝ๋๋ฅผ ์คํํ์ ๋, ์ ์์ ์ผ๋ก ๋ชจ๋ธ์ ์๋ต์ด ์ถ๋ ฅ๋๋ฉด ์ฐ๋์ ์ฑ๊ณตํ ๊ฒ์ ๋๋ค. ๋ง์ฝ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, ์ถ๋ ฅ๋๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ค์ ํ์ธํ๊ณ ์ ๋จ๊ณ๋ค์ ์ฌ๊ฒํ ํฉ๋๋ค.

Gemini API๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ฒช์๋ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋ช ๊ฐ์ง ์ฃผ์์ฌํญ๊ณผ ์ด ๊ฐ์ด๋์ ํ๊ณ์ ์ ๋ง์๋๋ฆฝ๋๋ค.
API ํค๋ ๊ณ์ ์ ์๋ณํ๊ณ ๊ถํ์ ๋ถ์ฌํ๋ ์ค์ํ ์ ๋ณด์
๋๋ค. ์ ๋ ์ฝ๋์ ์ง์ ํฌํจํ๊ฑฐ๋ GitHub์ ๊ฐ์ ๊ณต๊ฐ ์ ์ฅ์์ ์ฌ๋ฆฌ์ง ๋ง์ธ์. ํ๊ฒฝ ๋ณ์(dotenv)๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Google Cloud Secret Manager์ ๊ฐ์ ๋ณด์ ๋๊ตฌ๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ฅผ ๋ฌด์ํ๋ฉด ๊ณ์ ์ด ํ์ทจ๋๊ฑฐ๋ ๋ฌด๋จ์ผ๋ก API๊ฐ ์ฌ์ฉ๋ ์ํ์ด ์์ต๋๋ค.
์ค๋ฅ ๋ฉ์์ง๋ ๋ฌธ์ ํด๊ฒฐ์ ๊ฐ์ฅ ์ค์ํ ๋จ์์
๋๋ค. ๋จ์ํ "์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค"๊ณ ์๊ฐํ์ง ๋ง๊ณ , ๋ฉ์์ง์ ํฌํจ๋ ์ซ์ ์ฝ๋(์: 403)๋ ํน์ ํค์๋(Invalid API Key, Permission denied)๋ฅผ ์ ํํ ์ฝ๊ณ ๊ฒ์ ์์ง์ ํ์ฉํ์ธ์. ๊ตฌ๊ธ ๊ณต์ ๋ฌธ์๋ ์ปค๋ฎค๋ํฐ์์ ํด๋น ๋ฉ์์ง์ ๋ํ ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ ์์ต๋๋ค.
Gemini API๋ ์ฌ์ฉ๋์ ๋ฐ๋ผ ํธ์ถ ์ ํ(Rate Limit)์ด ์์ต๋๋ค. ํน์ ์๊ฐ ๋ด์ ๋๋ฌด ๋ง์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์ผ์์ ์ผ๋ก API ํธ์ถ์ด ๊ฑฐ๋ถ๋ ์ ์์ต๋๋ค. ์ด๋๋ 4xx ๋๋ 5xx ๊ณ์ด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์งง์ ์๊ฐ ๋ด์ ๋ฐ๋ณต์ ์ผ๋ก ํ ์คํธํ ๋๋ ์ด ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์์ฃผ ๋๋ฌผ๊ฒ, ํน์ ์ง์ญ์ด๋ ๋คํธ์ํฌ ํ๊ฒฝ(์: ์๊ฒฉํ ๋ณด์ ์ ์ฑ ์ ๊ฐ์ง ํ์ฌ ๋ด๋ถ๋ง)์์๋ Gemini API ์๋ํฌ์ธํธ์ ์ ๊ทผ์ด ์ ํ๋ ์ ์์ต๋๋ค. ๋ง์ฝ ์์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ์๋ํด๋ ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด, ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ฒฝ์์ ํ ์คํธํด๋ณด๊ฑฐ๋ ๋คํธ์ํฌ ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํด์ผ ํ ์๋ ์์ต๋๋ค.
์ด ๊ฐ์ด๋๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Gemini API ์ฐ๊ฒฐ ์ค๋ฅ์ ์ด์ ์ ๋ง์ถ๊ณ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ๋ฅํ ์ค๋ฅ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃจ์ง๋ ๋ชปํ๋ฉฐ, ๊ฐ์์ ํ๊ฒฝ์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ธ ์กฐ์น๊ฐ ํ์ํ ์ ์์ต๋๋ค.
Gemini API ์ฐ๊ฒฐ ์ค๋ฅ ํด๊ฒฐ์ ๊ฐ๋ฐ ๊ณผ์ ์์ ํํ ๊ฒช๋ ์ผ์ ๋๋ค. ์ฒ์์๋ ์ด๋ ต๊ณ ๋ต๋ตํ๊ฒ ๋๊ปด์ง ์ ์์ง๋ง, ์ด ๊ฐ์ด๋๋ฅผ ํตํด ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ์ ์ตํ๋ฉด ๋ค์๋ฒ์๋ ๋ ๋น ๋ฅด๊ณ ๋ฅ์ํ๊ฒ ๋์ฒํ ์ ์์ ๊ฒ์ ๋๋ค. API์ ์ํธ์์ฉํ๋ฉฐ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒฝํ์ ์ค๋ ฅ์ ํค์ฐ๋ ์ค์ํ ๊ณผ์ ์ ๋๋ค.
์ด ๊ฐ์ด๋๊ฐ Gemini API ์ฐ๋์ ์ฑ๊ณต์ ์ผ๋ก ๋ง์น๊ณ , AI ํ์ฉ์ ๋ค์ ๋จ๊ณ๋ก ๋์๊ฐ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ ์์๋ณด๊ธฐ
Gemini API๋ ์ผ๋ฐ์ ์ผ๋ก ํน์ ์ฌ์ฉ๋๊น์ง๋ ๋ฌด๋ฃ ๋ฑ๊ธ์ผ๋ก ์ ๊ณต๋์ง๋ง, ๊ทธ ์ด์ ์ฌ์ฉ ์์๋ ๊ณผ๊ธ๋ ์ ์์ต๋๋ค. ์ต์ ์๊ธ ์ ์ฑ ๊ณผ ๋ฌด๋ฃ ์ฌ์ฉ๋ ๊ธฐ์ค์ Google Cloud ๋๋ Google AI Studio์ ๊ณต์ ์๊ธ ํ์ด์ง์์ ํ์ธํ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค.
๋ค, `gemini-pro` ์ธ์๋ ๋ค์ํ Gemini ๋ชจ๋ธ(์: `gemini-ultra`, ์๋ฒ ๋ฉ ๋ชจ๋ธ ๋ฑ)์ด ์กด์ฌํฉ๋๋ค. ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ธ๋ช ์ผ๋ก `genai.GenerativeModel()` ํจ์๋ฅผ ํธ์ถํ์ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ฉด ๋ฉ๋๋ค. ๊ฐ ๋ชจ๋ธ์ ํน์ง๊ณผ ์ฌ์ฉ๋ฒ์ Google AI Studio์ ๊ณต์ ๋ฌธ์๋ฅผ ํตํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ์์๋ `.env` ํ์ผ ๊ด๋ฆฌ ์ธ์ Google Cloud Secret Manager์ ๊ฐ์ ์๋น์ค๋ฅผ ํ์ฉํ์ฌ API ํค๋ฅผ ์ค์์์ ์์ ํ๊ฒ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์๋น์ค ๊ณ์ ์ ํตํ ์ธ์ฆ ๋ฐฉ์์ ํค ์ ์ถ ์ํ์ ์ต์ํํ๊ณ ์ ๊ทผ ์ ์ด๋ฅผ ๊ฐํํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.
๋คํธ์ํฌ ๋ฌธ์ ์ธ์๋ Google Cloud ํ๋ก์ ํธ์ ๋ฆฌ์ ์ค์ , API ์๋น์ค์ ์ผ์์ ์ธ ๋ถ์์ , ๋๋ ํ ๋น๋ ์ ํ ์ด๊ณผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค. Google Cloud Status ํ์ด์ง๋ฅผ ํ์ธํ๊ฑฐ๋, ๋ค๋ฅธ ๋ฆฌ์ ์์ API๋ฅผ ํธ์ถํด๋ณด๋ ๊ฒ๋ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
API ํค ์ ํจ์ฑ ํ์ธ, Google Cloud ๊ถํ ์ค์ , ๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ ๋ณ์ ๊ด๋ฆฌ๋ฅผ ํตํ ํค ๋ณดํธ ์์น์ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ณตํต์ ์ผ๋ก ์ ์ฉ๋ฉ๋๋ค. ๋ค๋ง, ํ๊ฒฝ ๋ณ์๋ฅผ ๋ก๋ํ๊ฑฐ๋ API๋ฅผ ํธ์ถํ๋ ๊ตฌ์ฒด์ ์ธ ์ฝ๋ ๋ฌธ๋ฒ์ ๊ฐ ์ธ์ด์ SDK๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.