구글 제미나이(Gemini) API 키 발급 방법 + 파이썬 활용 예제

구글의 강력한 AI 모델, 제미나이(Gemini)를 여러분의 프로젝트에 통합하고 싶으신가요? 멋진 AI 앱 개발의 첫걸음은 바로 Gemini API 키를 얻는 것입니다. 이 키는 여러분의 프로그램이 구글의 AI 서비스와 통신할 수 있게 해주는 인증 열쇠입니다.

복잡한 과정을 거치지 않고, 가장 빠르게 API 키를 발급받을 수 있는 직접적인 방법을 알려드리겠습니다. 바로 aistudio.google.com/apikey 링크를 이용하는 것입니다!

1단계: API 키 관리 페이지로 바로 이동

다른 페이지를 거칠 필요 없이, API 키 관리 페이지로 직접 접속합니다.

  1. 다음 웹사이트에 접속하세요: https://aistudio.google.com/apikey
  2. 아직 로그인하지 않았다면, Google 계정으로 로그인하라는 메시지가 표시됩니다. Gemini API를 사용할 Google 계정으로 로그인해주세요.
  3. (처음 사용자) 만약 Google AI Studio를 처음 사용한다면, 서비스 약관 동의 등의 팝업이 나타날 수 있습니다. 내용을 확인하고 동의 후 계속 진행합니다.
  4. 위 과정을 거치면 다음과 같은 페이지가 나타납니다.
Gemini API를 테스트하기 위해 상단 오른쪽의 "API 키 만들기" 버튼을 클릭하는 초기 화면입니다.

2단계: 새 API 키 생성 버튼 클릭

이제 여기서 새 키를 생성합니다.

  1. "API 키 만들기" 버튼을 클릭합니다.(위에 나타난 이미지의 빨간색 박스)

  2. 어떤 Google Cloud 프로젝트에 API 키를 생성할지 선택하는 옵션이 나타날 수 있습니다.

    • "새 프로젝트에서 API 키 만들기": 새 Google Cloud 프로젝트를 만들면서 API 키를 생성합니다. (가장 간단)
    • "기존 프로젝트에서 API 키 만들기": 기존에 사용하던 Google Cloud 프로젝트가 있다면 선택하여 키를 생성할 수 있습니다.
기존 프로젝트가 없을 경우 "새 프로젝트에서 API 키 만들기" 버튼을 클릭하여 새 프로젝트로 API 키를 생성하는 화면입니다.

3단계: 생성된 API 키 확인 및 복사

"API 키 만들기" 버튼을 클릭하고 프로젝트 선택을 완료하면, 잠시 후 화면에 여러분의 새로운 Gemini API 키가 문자열 형태로 표시됩니다.

API 키가 생성된 후 복사 버튼을 눌러 키를 복사할 수 있는 완료 화면입니다.
  1. 화면에 나타난 긴 영문/숫자 조합의 문자열이 바로 여러분의 API 키입니다.

  2. 키 옆에 있는 복사 아이콘 (클립보드 모양)을 클릭하거나, 마우스로 직접 드래그하여 키 전체를 정확하게 복사합니다.

  3. ⚠️ 메모장에 붙여넣어 따로 저장해둡니다.

4단계: 발급받은 API 키, 실제로 사용해보기 (Python 예제)

이제 API 키를 발급받았으니, 간단한 파이썬 코드를 통해 Gemini 모델과 실제로 대화하는 예제를 살펴보겠습니다. 이 코드는 Colab이나 Jupyter Notebook 환경처럼 셀 단위로 실행하는 것을 가정합니다.

# ─── Cell 1: API 키 입력 및 설정 ───
import google.generativeai as genai

# 사용자로부터 API 키를 안전하게 입력받습니다.
GOOGLE_API_KEY = input("Google API 키를 입력하세요: ")
if not GOOGLE_API_KEY:
    # 키가 입력되지 않으면 오류를 발생시켜 중단합니다.
    raise ValueError("API 키가 입력되지 않았습니다.")

# 입력받은 API 키로 Gemini 라이브러리를 설정합니다.
genai.configure(api_key=GOOGLE_API_KEY)
print("✅ API 설정 완료. 다음 셀을 실행하세요.")

코드 설명 (Cell 1):

  1. google.generativeai 라이브러리를 genai라는 이름으로 가져옵니다.
  2. input() 함수를 사용하여 사용자에게 터미널이나 입력 필드를 통해 API 키를 직접 입력받습니다. 이렇게 하면 코드에 키가 직접 노출되지 않아 더 안전합니다.
  3. 입력된 키가 비어있는지 확인하고, 비어있다면 오류를 발생시켜 프로그램이 중단되도록 합니다. API 키 없이는 다음 단계를 진행할 수 없기 때문입니다.
  4. genai.configure(api_key=...) 함수를 호출하여 라이브러리에 우리가 사용할 API 키를 알려줍니다. 이 설정이 완료되어야 Gemini 모델과 통신할 수 있습니다.
  5. 설정이 성공적으로 완료되었다는 메시지를 출력합니다.
# ─── Cell 2: 모델 고정 설정 ───
import google.generativeai as genai

# 사용할 Gemini 모델의 이름을 지정합니다. (예: 특정 실험 버전)
MODEL_NAME = "gemini-2.5-pro-exp-03-25" # 필요시 다른 모델 이름으로 변경 가능

try:
    # 지정된 모델 이름으로 Gemini 모델 객체를 생성합니다.
    model = genai.GenerativeModel(MODEL_NAME)
    print(f"✅ 모델 설정 완료: {MODEL_NAME}")
    print("다음 셀(Cell 3)을 실행하세요.")
except Exception as e:
    # 모델 로딩 중 오류 발생 시 (잘못된 키, 네트워크 문제, 지원되지 않는 모델 등)
    print(f"❌ 모델 설정 실패: {str(e)}")
    print("⚠️ API 키가 유효한지, Google Cloud Console에서 API/쿼터 설정을 확인하거나, 네트워크 상태를 점검하세요.")

코드 설명 (Cell 2):

  1. 사용할 Gemini 모델의 이름을 MODEL_NAME 변수에 지정합니다. 여기서는 "gemini-2.5-pro-exp-03-25"라는 특정 실험 모델을 사용하도록 고정했습니다. (사용 가능한 최신 모델 이름은 공식 문서를 참고하세요.)
  2. try...except 블록을 사용하여 모델 로딩 과정에서 발생할 수 있는 오류를 처리합니다.
  3. genai.GenerativeModel(MODEL_NAME)을 호출하여 지정된 이름의 모델 객체를 생성하고 model 변수에 할당합니다. 이 객체를 통해 프롬프트를 보내고 응답을 받게 됩니다.
  4. 모델 객체 생성에 성공하면 성공 메시지를 출력합니다.
  5. 만약 API 키가 잘못되었거나, 네트워크 연결 문제, 해당 모델을 사용할 권한(쿼터) 부족 등의 이유로 오류가 발생하면 except 블록이 실행되어 오류 메시지와 함께 가능한 점검 사항을 안내합니다.
# ─── Cell 3: 대화형 인터랙티브 모드 ───
import time # time.sleep() 함수 사용을 위해 import
import google.generativeai as genai

# 모델에게 기본적으로 지시할 내용 (항상 한국어로 답변하도록)
SYSTEM_PROMPT = "모든 응답을 한국어로 제공하세요. 간결하고 명확하게 답변하세요."

print("💬 프롬프트를 입력하세요. 종료하려면 'exit' 또는 'quit'를 입력하세요.\n")

# 사용자가 'exit' 또는 'quit'를 입력할 때까지 무한 반복
while True:
    prompt = input("프롬프트: ") # 사용자로부터 질문(프롬프트) 입력받기

    # 종료 명령어 확인
    if prompt.strip().lower() in ("exit", "quit"):
        print("🛑 대화를 종료합니다.")
        break # 반복문 탈출

    # 빈 입력 처리
    if not prompt.strip():
        print("⚠️ 빈 입력입니다. 프롬프트를 입력하세요.\n")
        continue # 다음 반복으로 넘어감

    try:
        # 시스템 프롬프트와 사용자 프롬프트를 결합하여 모델에게 전달
        full_prompt = f"{SYSTEM_PROMPT}\n\n사용자: {prompt}"
        # 모델에게 프롬프트를 보내고 응답 생성 요청
        response = model.generate_content(full_prompt)

        print("\n✅ 응답 성공!")
        # 생성된 텍스트 응답 출력
        print(response.text, "\n" + "-"*50 + "\n")

    except Exception as e:
        # 오류 처리
        msg = str(e)
        if "503" in msg: # 서버 일시적 오류 (503 Service Unavailable)
            print("⚠️ 503 오류: 서버가 응답하지 않습니다. 3초 후 재시도...")
            time.sleep(3) # 3초 대기
            try: # 재시도
                response = model.generate_content(full_prompt)
                print("\n✅ 재시도 성공!")
                print(response.text, "\n" + "-"*50 + "\n")
            except Exception as retry_e: # 재시도 실패
                print(f"❌ 재시도 실패: {str(retry_e)}\n네트워크나 쿼터를 확인하세요.\n" + "-"*50 + "\n")
        elif "quota" in msg.lower(): # API 사용량(쿼터) 초과 오류
            print("❌ 쿼터 초과: Google Cloud Console에서 쿼터를 확인하거나 잠시 후 시도하세요.\n" + "-"*50 + "\n")
        else: # 그 외 다른 오류
            print(f"❌ 오류 발생: {msg}\n" + "-"*50 + "\n")

    # API 서버 부하를 줄이기 위해 각 요청 사이에 1초 대기
    time.sleep(1)

코드 설명 (Cell 3):

  1. time 라이브러리를 가져와 요청 사이에 잠시 멈추는 time.sleep() 기능을 사용합니다.
  2. SYSTEM_PROMPT 변수에 모델이 항상 지켜야 할 기본 지침을 설정합니다. 여기서는 "모든 응답을 한국어로, 간결하고 명확하게" 하도록 지시했습니다.
  3. while True:를 사용하여 사용자가 종료 명령어를 입력할 때까지 계속해서 프롬프트를 입력받고 응답하는 무한 루프를 만듭니다.
  4. input("프롬프트: ")로 사용자에게 질문을 입력받습니다.
  5. 입력된 내용이 "exit" 또는 "quit" (대소문자 구분 없이)이면 루프를 종료합니다 (break).
  6. 입력된 내용이 비어있으면 경고 메시지를 출력하고 다시 입력을 받습니다 (continue).
  7. try...except 블록 안에서 실제 API 호출 및 오류 처리를 수행합니다.
  8. full_prompt 변수에 시스템 프롬프트와 사용자의 프롬프트를 결합합니다. 이렇게 하면 모델이 사용자의 질문에 답할 때 시스템 프롬프트의 지침(한국어 응답)을 고려하게 됩니다.
  9. model.generate_content(full_prompt)를 호출하여 준비된 프롬프트를 Gemini 모델에게 보내고 응답 생성을 요청합니다.
  10. 성공적으로 응답을 받으면 response.text 속성을 통해 텍스트 내용을 가져와 출력합니다.
  11. 오류 처리:
    • 503 오류 (서버 일시적 문제)가 발생하면 3초 대기 후 재시도합니다. 재시도에도 실패하면 실패 메시지를 출력합니다.
    • 오류 메시지에 "quota"라는 단어가 포함되면 API 사용량 초과로 판단하고 관련 안내를 출력합니다.
    • 그 외 다른 종류의 오류가 발생하면 해당 오류 메시지를 출력합니다.
  12. 각 요청이 끝난 후 time.sleep(1)을 호출하여 1초간 대기합니다. 이는 무료 티어 사용 시 분당 요청 횟수(RPM) 제한을 준수하고 서버에 과도한 부하를 주는 것을 방지하는 데 도움이 됩니다.

참고: 무료 사용량(할당량) 확인

Gemini API는 무료로 시작할 수 있는 사용량을 제공합니다. 무료 할당량(쿼터)이 궁금하다면 Google AI Studio의 다음 페이지에서 확인할 수 있습니다:

만약 위 파이썬 코드 실행 중 "quota" 관련 오류가 발생한다면, 이 페이지를 방문하여 "사용 데이터 보기" 클릭 후 구글 클라우드에서 사용량 제한을 확인하고 필요한 경우 유료 플랜 전환을 고려해볼 수 있습니다.