ํต์ฌ ์์ฝ (3์ค ์์ฝ)
- Gemini API, 0์์ผ๋ก ์ฒซ ์์ฒญ๋ถํฐ ์ฑ๊ณต๊น์ง! cURL, Python, Node.js ์๋ฒฝ ๊ฐ์ด๋๋ก ๋งํ์์ด ์์ํ์ธ์.
- ํํ ์ฐ๊ฒฐ ์ค๋ฅ(400, 401, 403, 404, 500 ๋ฑ)๋ฅผ ํ ๋ฐฉ์ ์ง๋จํ๊ณ ์ฆ์ ํด๊ฒฐํ๋ ์ค์ ๋
ธํ์ฐ๋ฅผ ์ ์ํฉ๋๋ค.
- ์ด๋ณด ๊ฐ๋ฐ์๋ OK! ์ฒซ ์ฐ๊ฒฐ๋ถํฐ ์์ ์ ์ธ ์๋น์ค ๊ตฌ์ถ, ๊ถ๊ทน์ ์ธ ์์ตํ ์ ๋ต๊น์ง ํ์ ๋จ๊ณ๋ฅผ ์๋ดํฉ๋๋ค.
๐ ๋ชฉ์ฐจ
AI ํ๋ก์ ํธ์ Gemini API๋ฅผ ์ฐ๋ํ๋ ๊ฒ, ๊ทธ ์ฒซ ์์์ด ๋ฐ๋ก ์ฑ๊ณต์ ํต์ฌ์
๋๋ค. ์ต์ฒจ๋จ ์ธ๋ถ ์๋น์ค์ธ Gemini API๋ ๋จ์ํ ํค ๋ฐ๊ธ์ ๋์ด, ์ฒซ ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ณด๋ด๋ ๊ฒฝํ์ด ๋ฌด์๋ณด๋ค ์ค์ํ์ฃ . ์ด ๊ฐ์ด๋๋ Gemini API ํค๋ฅผ ๋ฐ๊ธ๋ฐ๊ณ ๋ '์ ๋๋ก ์๋ํ ๊น?' ํ๋ ๊ถ๊ธ์ฆ์ด๋ ๋ง์ฐํ ๋ถ์๊ฐ์ ๋๋ผ๋ ๋ชจ๋ ๋ถ๋ค์ ์ํด ๋ง๋ จ๋์์ต๋๋ค.
Gemini API ์ฐ๊ฒฐ, ์ ์ฒซ ํ
์คํธ๊ฐ ์ค์ํ ๊น์?
์๋ก์ด AI API๋ฅผ ํ๋ก์ ํธ์ ํตํฉํ ๋, 'ํค๋ง ์์ผ๋ฉด ๋ฐ๋ก ์ธ ์ ์๊ฒ ์ง?' ํ๊ณ ์ฝ๊ฒ ์๊ฐํ๊ธฐ ๋ง๋ จ์
๋๋ค. ํ์ง๋ง ํ์ค์ ์์๋ณด๋ค ๋ณต์กํ ๊ฒฝ์ฐ๊ฐ ๋ง์ฃ . ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ , ๋ณต์กํ ์ธ์ฆ ์ ์ฐจ, ๊น๋ค๋ก์ด ๋คํธ์ํฌ ๋ฌธ์ ๋ฑ์ผ๋ก ์ธํด ์์์น ๋ชปํ ์ค๋ฅ์ ๋ถ๋ชํ๋ ์ผ์ด ํํฉ๋๋ค. ๋ฐ๋ก ์ด '์ฒซ ์ฐ๊ฒฐ ํ
์คํธ'๋ ์ด๋ฌํ ๋ฌธ์ ๋ค์ ์ด๊ธฐ์ ๋ฐ๊ฒฌํ๊ณ ํด๊ฒฐํ์ฌ ๋ถํ์ํ ์๊ฐ ๋ญ๋น๋ฅผ ๋ง์์ฃผ๋ ํต์ฌ ๋จ๊ณ์
๋๋ค. API๊ฐ ๊ธฐ๋ํ๋ ๋๋ก ๋์ํ๋์ง ์ง์ ํ์ธํ๋ ๊ณผ์ ์ ํตํด ๊ธฐ๋ณธ์ ์ธ ์ฐ๋ ๊ฐ๋
์ ํ์คํ ์ตํ๊ณ , ๋์๊ฐ ๋์ฑ ๋ณต์กํ๊ณ ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ ํํํ ๊ธฐ๋ฐ์ ๋ค์ง ์ ์์ต๋๋ค.

Gemini API ์ฒซ ์์ฒญ ๋ณด๋ด๊ธฐ ์ค๋น๋ฌผ
Gemini API์ ์ฑ๊ณต์ ์ธ ์ฒซ ๋ํ๋ฅผ ์์ํ๊ธฐ ์ํ ํ์ ์ค๋น๋ฌผ์ ์๊ฐ๋ณด๋ค ๊ฐ๋จํฉ๋๋ค.
- Gemini API ํค: Google AI Studio์์ ๋ฐ๊ธ๋ฐ์ API ํค๊ฐ ํ์ํฉ๋๋ค.
- ๊ฐ๋ฐ ํ๊ฒฝ:
- cURL: ๋๋ถ๋ถ์ ์ด์์ฒด์ ์ ๊ธฐ๋ณธ ์ค์น๋์ด ์๊ฑฐ๋ ์ฝ๊ฒ ์ค์นํ ์ ์์ต๋๋ค.
- Python: Python 3.8 ์ด์๊ณผ
google-generativeai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
- Node.js: Node.js 18 ์ด์๊ณผ
google-generativeai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
API ํค๋ ์ธ๋ถ์ ๋
ธ์ถ๋์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค. ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ํ์ฉํ๊ฑฐ๋ .env ํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฒซ ์์ฒญ ๋ณด๋ด๊ธฐ
์, ์ค๋น๋ฌผ์ ๋ชจ๋ ๊ฐ์ถ์
จ๋ค๋ฉด ์ด์ Gemini API์ ์ฒซ ์์ฒญ์ ๋ณด๋ด๋ณผ ์๊ฐ์
๋๋ค! ์ฌ๊ธฐ์๋ ๊ฐ์ฅ ํต์ฌ์ ์ธ ํ
์คํธ ์์ฑ ๋ชจ๋ธ์ธ gemini-pro๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ํ๋กฌํํธ๋ฅผ ์ ์กํ๋ ์์๋ฅผ ํจ๊ป ์ดํด๋ณผ๊น์? ๊ธฐ๋ณธ API ์๋ํฌ์ธํธ๋ https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY ์
๋๋ค.
1. cURL๋ก ๋ฐ๋ก ํ
์คํธํ๊ธฐ
cURL์ ํฐ๋ฏธ๋์์ HTTP ์์ฒญ์ ๋ณด๋ด๋ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์
๋๋ค. ๋ณ๋์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๋ณต์กํ ์ค์ ์์ด๋ API ์๋ต์ ์ฆ์ ํ์ธํ๊ณ ์ถ์ ๋ ํนํ ์ ์ฉํ์ฃ .
๋จ๊ณ๋ณ ๊ฐ์ด๋:
- ํฐ๋ฏธ๋ ์ด๊ธฐ: ์ฌ์ฉ ์ค์ธ ์ด์์ฒด์ ์ ํฐ๋ฏธ๋ ๋๋ ๋ช
๋ น ํ๋กฌํํธ๋ฅผ ์คํํฉ๋๋ค.
- API ํค ์ค๋น: ๋ฐ๊ธ๋ฐ์ผ์ Gemini API ํค๋ฅผ ๋ฏธ๋ฆฌ ์ค๋นํด ์ฃผ์ธ์.
- ์์ฒญ ์คํ: ์๋ cURL ๋ช
๋ น์ด๋ฅผ ๋ณต์ฌํ ๋ค,
YOUR_API_KEY ๋ถ๋ถ์ ๋ณธ์ธ์ API ํค๋ก ์ ํํ๊ฒ ๋ณ๊ฒฝํ์ฌ ์คํํด ๋ณด์ธ์.
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{"parts":[{"text": "๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ํ๋ฏผ๊ตญ ์์ ์ธ ๊ฐ์ง๋ง ๋งํด์ค."}]}
]
}'
- ์๋ต ํ์ธ: ๋ช
๋ น์ด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๋ฉด, ํฐ๋ฏธ๋์์ API ์๋ต์ ์ฆ์ ํ์ธํ ์ ์์ต๋๋ค. ์ ์์ ์ธ ์๋ต์ด๋ผ๋ฉด Gemini ๋ชจ๋ธ์ด ์์ฑํ ํ
์คํธ๊ฐ JSON ํ์์ผ๋ก ์ถ๋ ฅ๋ ๊ฒ์
๋๋ค.
{
"candidates": [
{
"content": {
"parts": [
{
"text": "ํ๊ตญ์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์์ ์ธ ๊ฐ์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.\n\n1. **๋น๋น๋ฐฅ**: ๋ฐฅ ์์ ๋ค์ํ ์ฑ์, ๊ณ ๊ธฐ, ๊ณ๋ ๋ฑ์ ์ฌ๋ฆฌ๊ณ ๊ณ ์ถ์ฅ๊ณผ ํจ๊ป ๋น๋ฒผ ๋จน๋ ์๋ฆฌ์
๋๋ค.\n2. **๋ถ๊ณ ๊ธฐ**: ์๊ฒ ์ฌ ์๊ณ ๊ธฐ๋ฅผ ๊ฐ์ฅ ์๋
์ ์ฌ์ ๊ตฌ์ ๋จน๋ ์๋ฆฌ๋ก, ๋จ์ง ์ ์กฐํ๊ฐ ํน์ง์
๋๋ค.\n3. **๊น์น์ฐ๊ฐ**: ๊น์น์ ๋ผ์ง๊ณ ๊ธฐ ๋๋ ์ฐธ์น ๋ฑ์ ๋ฃ๊ณ ๋์ธ ์ฐ๊ฐ๋ก, ์ผํฐํ๊ณ ์์ํ ๋ง์ด ์ผํ์
๋๋ค."
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": []
}
]
}
- ๋ณ๋ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ์์ด ๋น ๋ฅด๊ณ ๊ฐํธํ๊ฒ ํ
์คํธ ๊ฐ๋ฅ
- HTTP ์์ฒญ ๊ตฌ์กฐ ์ดํด์ ๋์
- ๋ณต์กํ ๋ก์ง ๊ตฌํ ์ด๋ ค์
- API ํค ๋
ธ์ถ ์ํ์ฑ ์กด์ฌ (ํ์คํ ๋ฆฌ ๋ฑ)
2. Python์ผ๋ก ํ
์คํธํ๊ธฐ
Python์ AI ๋ชจ๋ธ ๊ฐ๋ฐ ๋ฐ ์ฐ๋์ ์์ด ๊ฐ์ฅ ํต์ฌ์ ์ด๋ฉฐ ๋๋ฆฌ ํ์ฉ๋๋ ์ธ์ด์
๋๋ค. google-generativeai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๋ฉด Gemini API๋ฅผ ํ์ด์ฌ ์ฝ๋ ์์์ ๋๋๋๋ก ๊ฐํธํ๊ฒ ํธ์ถํ ์ ์์ต๋๋ค.
๋จ๊ณ๋ณ ๊ฐ์ด๋:
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น: ๊ฐ์ฅ ๋จผ์
google-generativeai ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
pip install google-generativeai
- Python ํ์ผ ์์ฑ:
gemini_test.py ํ์ผ์ ์๋ก ์์ฑํ๊ณ ์๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์.
- API ํค ์ค์ : ์ฝ๋ ๋ด
YOUR_API_KEY ๋ถ๋ถ์ ๋ณธ์ธ์ ์ค์ API ํค๋ฅผ ์
๋ ฅํ๊ฑฐ๋, ๋ณด์์ ์ํด ํ๊ฒฝ ๋ณ์์์ ํค๋ฅผ ๋ถ๋ฌ์ค๋๋ก ์ค์ ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
import os
import google.generativeai as genai
API_KEY = os.getenv("GEMINI_API_KEY", "YOUR_API_KEY")
genai.configure(api_key=API_KEY)
def run_gemini_test():
try:
model = genai.GenerativeModel('gemini-pro')
prompt = "๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ํ๋ฏผ๊ตญ ์์ ์ธ ๊ฐ์ง๋ง ๋งํด์ค."
print(f"Sending prompt: '{prompt}'")
response = model.generate_content(prompt)
print("\n--- Gemini API Response ---")
print(response.text)
print("-------------------------")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
run_gemini_test()
- ์ฝ๋ ์คํ: ํฐ๋ฏธ๋์์ ์์ฑํ Python ํ์ผ์ ์คํํฉ๋๋ค.
python gemini_test.py
- ์๋ต ํ์ธ: ์คํ ๊ฒฐ๊ณผ, ํฐ๋ฏธ๋์ Gemini ๋ชจ๋ธ์ ์๋ต์ด ์ถ๋ ฅ๋ ๊ฒ์
๋๋ค.

ํ๊ฒฝ ๋ณ์๋ก API ํค๋ฅผ ์ค์ ํ๋ ค๋ฉด ํฐ๋ฏธ๋์์ export GEMINI_API_KEY="YOUR_API_KEY" (macOS/Linux) ๋๋ set GEMINI_API_KEY="YOUR_API_KEY" (Windows) ๋ช
๋ น์ด๋ฅผ ์คํํ ๋ค์ Python ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด ๋ณด์ธ์.
3. Node.js๋ก ํ
์คํธํ๊ธฐ
Node.js ํ๊ฒฝ์์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด๋ ๊ฐ๋ ฅํ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ตฌ์ถ ์ค์ด์๋ผ๋ฉด, Node.js์ฉ Gemini SDK๋ฅผ ํตํด API๋ฅผ ๋์ฑ ์์ฝ๊ฒ ์ฐ๋ํ ์ ์์ต๋๋ค.
๋จ๊ณ๋ณ ๊ฐ์ด๋:
- ํ๋ก์ ํธ ์ด๊ธฐํ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น: ์๋ก์ด ํ๋ก์ ํธ ํด๋๋ฅผ ๋ง๋ค๊ณ ์ด๊ธฐํํ ๋ค์, ํ์ํ
google-generativeai ๋ฐ dotenv ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค.
mkdir gemini-node-test
cd gemini-node-test
npm init -y
npm install @google/generative-ai dotenv
.env ํ์ผ ์์ฑ: ํ๋ก์ ํธ์ ๋ฃจํธ ํด๋์ .env ํ์ผ์ ๋ง๋ค๊ณ , ๋ฐ๊ธ๋ฐ์ API ํค๋ฅผ ์ฌ๊ธฐ์ ์์ ํ๊ฒ ์ ์ฅํด ์ฃผ์ธ์.
GEMINI_API_KEY=YOUR_API_KEY
- JavaScript ํ์ผ ์์ฑ:
index.js ํ์ผ์ ์๋ก ์์ฑํ๊ณ ์๋ ์์ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์.
require('dotenv').config();
const { GoogleGenerativeAI } = require('@google/generative-ai');
const API_KEY = process.env.GEMINI_API_KEY;
if (!API_KEY) {
console.error("GEMINI_API_KEY ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค. .env ํ์ผ์ ํ์ธํ์ธ์.");
process.exit(1);
}
const genAI = new GoogleGenerativeAI(API_KEY);
async function runGeminiTest() {
try {
const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ํ๋ฏผ๊ตญ ์์ ์ธ ๊ฐ์ง๋ง ๋งํด์ค.";
console.log(`Sending prompt: '${prompt}'`);
const result = await model.generateContent(prompt);
const response = await result.response;
const text = response.text();
console.log("\n--- Gemini API Response ---");
console.log(text);
console.log("-------------------------");
} catch (error) {
console.error("An error occurred:", error);
}
}
runGeminiTest();
- ์ฝ๋ ์คํ: ํฐ๋ฏธ๋์์ ์์ฑํ Node.js ํ์ผ์ ์คํํฉ๋๋ค.
node index.js
- ์๋ต ํ์ธ: ์ ์์ ์ผ๋ก ์คํ๋์๋ค๋ฉด, ํฐ๋ฏธ๋์ Gemini ๋ชจ๋ธ์ ๋ต๋ณ์ด ์ถ๋ ฅ๋ ๊ฒ์
๋๋ค.
์ผ๋ฐ์ ์ธ ์ฐ๊ฒฐ ์ค๋ฅ ์ง๋จ ๋ฐ ํด๊ฒฐ์ฑ
Gemini API์ ์ฒซ ๋ง๋จ์์ ๋ฐ์ํ ์ ์๋ ๊ฐ์ฅ ํํ ์ค๋ฅ ์ ํ๋ค๊ณผ ๊ทธ์ ๋ํ ๋ช
์พํ ํด๊ฒฐ์ฑ
์ ์ง๊ธ ๋ฐ๋ก ํ์ธํด ๋ณด์ธ์. ์ฑ๊ณต์ ์ธ ์ฐ๋์ ์ํ ํต์ฌ ๋
ธํ์ฐ๋ฅผ ๊ณต๊ฐํฉ๋๋ค.
1. 400 Bad Request ๋๋ INVALID_ARGUMENT
- ์์ธ: ์์ฒญ ๋ณธ๋ฌธ(request body)์ ํ์์ด ์๋ชป๋์๊ฑฐ๋, ํ์ ํ๋๊ฐ ๋๋ฝ๋์์ ๋ ๋ํ๋๋ ํํ ์ค๋ฅ์
๋๋ค. ์๋ฅผ ๋ค์ด,
contents ํ๋๊ฐ ์๊ฑฐ๋ ๊ธฐ๋ํ๋ ํ์๊ณผ ๋ค๋ฅด๊ฒ ์ ๋ฌ๋ ๋ ์ฃผ๋ก ๋ฐ์ํ์ฃ .
- ํด๊ฒฐ์ฑ
:
- ์ ๊ณต๋ ์ฝ๋ ์์์ ์์ฒญ ๋ณธ๋ฌธ ํ์์ ํ ๊ธ์๋ ๋น ์ง์์ด ์ ํํ๊ฒ ๋ฐ๋๋์ง ๋ค์ ํ๋ฒ ํ์ธํด ๋ณด์ธ์.
- ์
๋ ฅํ JSON ๋ฐ์ดํฐ ํ์์ด ์ฌ๋ฐ๋ฅธ์ง, JSON Lint ๊ฐ์ ์ ๋ฌธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๊ฒ์ฌํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- ๋ชจ๋ธ์ ํ์ํ
parts์ ๊ฐ์ ํต์ฌ ํ๋๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์๋์ง ๊ผผ๊ผผํ ํ์ธํด ๋ณด์ธ์.
2. 401 Unauthorized ๋๋ API_KEY_INVALID
- ์์ธ: API ํค ์์ฒด๊ฐ ์๋ชป๋์๊ฑฐ๋, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ฌ๊ฑฐ๋, ํน์ ์์ฒญ์ ์์ ํฌํจ๋์ง ์์์ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์
๋๋ค.
- ํด๊ฒฐ์ฑ
:
- Google AI Studio์์ ๋ฐ๊ธ๋ฐ์ผ์ API ํค๊ฐ ํ ๊ธ์๋ผ๋ ํ๋ฆฌ์ง ์๊ณ ์ ํํ์ง ๋ค์ ํ๋ฒ ํ์ธํด ๋ณด์ธ์.
- ์ฝ๋ ๋ด
YOUR_API_KEY ํ๋ ์ด์คํ๋๋ฅผ ๋ณธ์ธ์ ์ค์ ํค๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๋์ฒดํ๋์ง ์ ๊ฒํด ๋ณด์ธ์.
- ํ๊ฒฝ ๋ณ์๋
.env ํ์ผ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, ํด๋น ๋ณ์๊ฐ ์คํฌ๋ฆฝํธ์์ ์ ์์ ์ผ๋ก ๋ก๋๋๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
- API ํค๊ฐ ์ฐ๊ฒฐ๋ Google Cloud ํ๋ก์ ํธ์์ Gemini API๊ฐ ํ์ฑํ๋์ด ์๋์ง ์ต์ข
์ ์ผ๋ก ํ์ธํด ๋ณด์ธ์.
3. 403 Forbidden ๋๋ PERMISSION_DENIED
- ์์ธ: ์ฌ์ฉ ์ค์ธ API ํค์ ํด๋น ๋ฆฌ์์ค์ ์ ๊ทผํ ๊ถํ์ด ์๊ฑฐ๋, ์๋ณ/์ผ๋ณ ํ ๋น๋(Quota)์ ์ด๊ณผํ์ ๋ ๋ฐ์ํ๋ ํํ ์ค๋ฅ์
๋๋ค.
- ํด๊ฒฐ์ฑ
:
- Google Cloud Console๋ก ์ด๋ํ์ฌ API ํค์ ์ฐ๋๋ ํ๋ก์ ํธ์ IAM(Identity and Access Management) ์ค์ ์ ํ์ธํ๊ณ , Gemini API ์ฌ์ฉ์ ํ์ํ ๊ถํ์ด ์ ๋๋ก ๋ถ์ฌ๋์๋์ง ๊ผผ๊ผผํ ๊ฒํ ํด ๋ณด์ธ์.
- Google Cloud Console์์ Gemini API์ ์ฌ์ฉ๋๊ณผ ํ์ฌ ํ ๋น๋์ ํ์ธํด ๋ณด์ธ์. ๊ฐ์์ค๋ฌ์ด ์์ฒญ ์ฆ๊ฐ๋ก ์ธํด ์ผ์์ ์ผ๋ก ํ ๋น๋์ ์ด๊ณผํ์ ๊ฐ๋ฅ์ฑ๋ ์์ต๋๋ค.
- ๋์ฑ ์ฌ์ธต์ ์ธ ์ค๋ฅ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค๋ฉด, ์ ํฌ HowtoAI์ ๐ฐ 0์์ผ๋ก AI ์ค๋ฅ ์๋ฒฝ ํด๊ฒฐ! 2026๋
์ต์ HowtoAI ๊ฐ์ด๋๋ก ์์ต ๊ทน๋ํ ์ค์ ๋
ธํ์ฐ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํด ๋ณด์ธ์!
4. 404 Not Found
- ์์ธ: API ์์ฒญ์ ๋ณด๋ธ ์๋ํฌ์ธํธ(URL)๊ฐ ์๋ชป๋์๊ฑฐ๋, ์กด์ฌํ์ง ์๋ ๋ชจ๋ธ์ ์ง์ ํ์ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์
๋๋ค.
- ํด๊ฒฐ์ฑ
:
- ์์ฒญ URL์ด
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent์ ๊ฐ์ด ๊ณต๋ฐฑ์ด๋ ์คํ ์์ด ์ ํํ์ง ๊ผผ๊ผผํ ํ์ธํด ๋ณด์ธ์.
- ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ธ ์ด๋ฆ(
gemini-pro)์ด ์ฌ๋ฐ๋ฅด๊ฒ ์
๋ ฅ๋์๋์ง ๋ค์ ํ๋ฒ ํ์ธํด ๋ณด์ธ์.
5. 500 Internal Server Error ๋๋ INTERNAL
- ์์ธ: ์ด ์ค๋ฅ๋ Google API ์๋ฒ ์์ฒด์์ ๋ด๋ถ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋ํ๋ฉ๋๋ค.
- ํด๊ฒฐ์ฑ
:
- ๋๋ถ๋ถ์ ๊ฒฝ์ฐ, ์ด ์ค๋ฅ๋ ์ฌ์ฉ์ ์ธก์ ๋ฌธ์ ๊ฐ ์๋๋ฏ๋ก ํฌ๊ฒ ๊ฑฑ์ ํ์ง ์์ผ์
๋ ๋ฉ๋๋ค. ์ ์ ์๊ฐ์ ๋๊ณ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์์ฒญ์ ์๋ํด ๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ํด๊ฒฐ์ฑ
์
๋๋ค.
- Google Cloud Status Dashboard๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ํ์ฌ Gemini API ์๋น์ค์ ์๋ ค์ง ์ฅ์ ๋ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํด ๋ณด๋ ๊ฒ๋ ๋์์ด ๋ ๊ฒ์
๋๋ค.
API ํค๋ฅผ GitHub์ ๊ฐ์ ๊ณต๊ฐ ์ ์ฅ์์ ์ ๋๋ก ์ง์ ์
๋ก๋ํ์ง ๋ง์ธ์. ํค๊ฐ ๋
ธ์ถ๋๋ฉด ๋ฌด๋จ ์ฌ์ฉ์ผ๋ก ์ธํด ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋์ ํ๊ฒฝ ๋ณ์๋ ๋ณด์ ์ ์ฅ์๋ฅผ ์ด์ฉํ์ธ์.
Gemini API ์ฐ๊ฒฐ ํ
์คํธ ํ ๋ค์ ๋จ๊ณ
์ถํํฉ๋๋ค! ์ฒซ ์ฐ๊ฒฐ ํ
์คํธ์ ์ฑ๊ณตํ์
จ๋ค๋ฉด, ์ด์ ๋ฌด๊ถ๋ฌด์งํ ๊ฐ๋ฅ์ฑ์ ํํํ ์๊ฐ์
๋๋ค. ๋ค์ ๋จ๊ณ์์ ์๋ํด๋ณผ ์ ์๋ ๋ช ๊ฐ์ง ์์ด๋์ด๋ฅผ ์ ์ํด ๋๋ฆฝ๋๋ค.
- ๋ ๋ณต์กํ๊ณ ์ ๊ตํ ํ๋กฌํํธ ๊ตฌ์ฑ: ํน์ ์ญํ ์ ๋ถ์ฌํ๊ฑฐ๋, ํ๋ถํ ์์๋ฅผ ์ ๊ณตํ๋ ๋ฑ ๊ณ ๊ธ ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ธฐ๋ฒ์ ์ ์ฉํด ๋ณด์ธ์.
- ๋ค์ํ Gemini ๋ชจ๋ธ ํ์: ํ
์คํธ ์์ฑ ์ธ์๋ ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ(์:
gemini-pro-vision)์ด๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ ๋ฑ ๋ค๋ฅธ Gemini ๋ชจ๋ธ๋ค์ ์ ๊ทน์ ์ผ๋ก ํ์ํด ๋ณด์ธ์.
- ๊ฐ๋จํ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ ์์: ์ค๋ ํ
์คํธํ ์ฝ๋๋ฅผ ๋ฐํ ์ผ์, ๋๋ง์ ํ
์คํธ ์์ฑ ์น ์ฑ์ด๋ ๊ฐ๋จํ ์ฑ๋ด์ ์ง์ ๋ง๋ค์ด๋ณด๋ ๊ฒ๋ ์ข์ต๋๋ค.
- ๊ฒฌ๊ณ ํ ์ค๋ฅ ์ฒ๋ฆฌ ๋ก์ง ์ถ๊ฐ: ์ค์ ์๋น์ค ํ๊ฒฝ์์๋ ์์์ ๋ค๋ฃฌ ๋ค์ํ ์ค๋ฅ ์ํฉ๋ค์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฌ๊ณ ํ ๋ก์ง์ ๋ฐ๋์ ๊ตฌํํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.

์ฃผ์์ฌํญ ๋ฐ ํ๊ณ์
Gemini API๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ด์ง๋ง, ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ค์ํ ์ฃผ์์ฌํญ๊ณผ ํ๊ณ์ ์ ๋ฏธ๋ฆฌ ์ธ์งํ๋ ๊ฒ์ด ํ์์ ์
๋๋ค.
- ์์์น ๋ชปํ ๋น์ฉ ๋ฐ์ ๊ฐ๋ฅ์ฑ: ๋ฌด๋ฃ ํ ๋น๋์ ๋์ด์๋ API ์ฌ์ฉ ์์๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค. ๋ถํ์ํ ์ง์ถ์ ๋ง๊ธฐ ์ํด ์ฌ์ฉ๋์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋ชจ๋ธ์ ํ๊ฐ(Hallucination) ํ์: AI ๋ชจ๋ธ์ ๊ฐ๋ ์ฌ์ค๊ณผ ๋ค๋ฅธ, ๊ทธ๋ด๋ฏํ ์ ๋ณด๋ฅผ '์ฐฝ์กฐ'ํด๋ผ ์ ์์ต๋๋ค. ํต์ฌ์ ์ธ ์ ๋ณด์๋ ๋ฐ๋์ ๊ต์ฐจ ๊ฒ์ฆ ๋ฐ ํฉํธ ์ฒดํฌ ๊ณผ์ ์ ๊ฑฐ์ณ ์ ๋ขฐ์ฑ์ ํ๋ณดํด์ผ ํฉ๋๋ค.
- ์ฒ ์ ํ ๋ณด์ ๊ด๋ฆฌ: API ํค๋ ์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ์ ์ ๊ทผํ ์ ์๋ ์ค์ํ ์ด์ ์
๋๋ค. ์ธ๋ถ์ ๋
ธ์ถ๋์ง ์๋๋ก ๊ฐ๋ณํ ์ฃผ์ํด์ผ ํ๋ฉฐ, ํ๊ฒฝ ๋ณ์๋ ๋ณด์ ์ ์ฅ์ ๋ฑ์ ํ์ฉํด ์ฒ ์ ํ ๋ณดํธํด์ผ ํฉ๋๋ค.
- ๋คํธ์ํฌ ๋ฐ ๋ชจ๋ธ ์ฒ๋ฆฌ ์ง์ฐ: API ์์ฒญ๊ณผ ์๋ต ๊ณผ์ ์์๋ ๋คํธ์ํฌ ํ๊ฒฝ๊ณผ ๋ชจ๋ธ์ ๋ณต์ก๋์ ๋ฐ๋ผ ์ง์ฐ ์๊ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ค์๊ฐ ๋ฐ์์ด ์ค์ํ ์๋น์ค๋ฅผ ๊ธฐํํ ๋๋ ์ด ์ ์ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ๋น ๋ฅด๊ฒ ๋ณํํ๋ ์ต์ ์ ๋ณด: AI ๊ธฐ์ ๊ณผ API๋ ๋๋๋๋ก ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. Google์ ๊ณต์ ๋ฌธ์๋ฅผ ๊พธ์คํ ํ์ธํ์ฌ ํญ์ ์ต์ ์ ๋ณด๋ฅผ ๋์น์ง ์๋๋ก ๋
ธ๋ ฅํด์ผ ํฉ๋๋ค.
ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ
๋ ์์๋ณด๊ธฐ