OpenAI API 첫 요청, API 키를 코드에 노출하지 않는 초보자 순서

OpenAI API 사용을 상징하는 화면 없는 노트북과 잠긴 메모 카드, 케이블이 놓인 현실적인 책상 장면

AI를 활용하여 생성한 이미지입니다.

OpenAI API를 처음 호출할 때 가장 먼저 막히는 곳은 모델보다 인증이에요. 키를 어디에 넣을지 정하지 않은 채 코드를 복사하면, 실행은 되더라도 키가 Git 저장소나 로그에 남을 수 있어요. 공식 빠른 시작 문서는 API 키를 환경 변수로 준비하고 SDK에서 읽어 요청하는 흐름을 안내해요.[1]

이 글은 최신 모델 이름을 외워서 따라 하는 글이 아니에요. 공식 문서에 현재 표시된 모델 ID를 확인하고, 키를 코드 밖에 둔 채 첫 응답을 받는 순서를 초보자 기준으로 정리해요.

API 요청은 네 단계로 나눠요

  1. 개발자 계정과 결제·사용 권한을 확인해요.
  2. API 키를 만들고 환경 변수에 저장해요.
  3. 공식 SDK를 설치해 짧은 요청을 보내요.
  4. 응답과 오류를 읽고 키와 로그를 정리해요.

ChatGPT 앱을 사용하는 계정과 API 플랫폼의 사용 조건은 같은 화면에서 관리되지 않을 수 있어요. API를 쓰기 전에 현재 프로젝트의 결제와 사용 제한을 확인하고, 테스트 예산을 정해 두는 편이 좋아요.

키를 코드에 직접 쓰지 않는 이유

아래처럼 키를 문자열로 넣는 방식은 피해야 해요.

client = OpenAI(api_key="여기에_키_입력")

이 코드는 개인 컴퓨터에서만 쓴다고 해도 셸 기록, 화면 캡처, Git 커밋, 오류 로그에 남을 가능성이 있어요. 키는 환경 변수나 운영체제의 비밀 저장소에서 읽고, 소스 파일에는 키 값이 없도록 해야 해요. 이미 키를 공개 저장소에 올렸다면 지우는 것만으로 충분하지 않고 해당 키를 폐기한 뒤 새 키를 만들어야 해요.

환경 변수로 준비하는 순서

macOS나 Linux 터미널에서는 현재 셸에만 키를 넣어 테스트할 수 있어요.

export OPENAI_API_KEY="발급받은_키"
python -c "import os; print(bool(os.environ.get('OPENAI_API_KEY')))"

두 번째 명령은 키 내용을 출력하지 않고 값이 존재하는지만 확인해요. Windows에서는 PowerShell의 환경 변수 설정 방식이 다르므로 운영체제에 맞는 공식 문서를 따라야 해요. 키를 팀과 공유하는 문서, 이슈, 채팅에 붙여 넣지 마세요.

공식 SDK로 첫 요청 보내기

Python 환경에서는 공식 SDK를 설치한 뒤 클라이언트를 만들고 Responses API에 입력을 보낼 수 있어요. 아래의 MODEL_ID는 실행 시점의 공식 Quickstart에 표시된 모델 이름으로 바꿔요. 모델 ID는 바뀔 수 있으니 오래된 블로그 글의 값을 그대로 믿지 않는 편이 안전해요.[1][2]

pip install openai

from openai import OpenAI

client = OpenAI()
response = client.responses.create(
    model="MODEL_ID",
    input="초보자에게 API 응답을 한 문장으로 설명해 줘."
)
print(response.output_text)

클라이언트는 기본적으로 환경 변수의 OPENAI_API_KEY를 읽도록 구성할 수 있어요. 공식 텍스트 생성 안내도 입력을 보내고 결과 텍스트를 읽는 기본 흐름을 설명해요.[2] 첫 테스트에서는 긴 프롬프트나 파일 업로드를 섞지 말고, 짧은 입력 하나로 인증과 응답이 모두 되는지부터 확인하세요.

응답이 오면 무엇을 확인할까?

확인 항목 정상적인 첫 확인 다음 행동
인증 키 관련 401 오류가 없음 환경 변수 이름과 현재 셸을 확인해요.
모델 모델 ID 오류가 없음 공식 문서의 현재 모델 목록을 다시 읽어요.
응답 짧은 텍스트가 출력됨 입력과 결과를 로그에 남길 범위를 정해요.
비용 사용량 화면에서 호출이 확인됨 반복 호출과 긴 입력을 제한해요.

응답이 왔다고 해서 모든 요청이 같은 비용이나 속도로 처리되는 것은 아니에요. 입력 길이, 출력 길이, 모델, 반복 횟수에 따라 사용량이 달라질 수 있으므로 테스트 코드는 작은 입력으로 시작하세요.

자주 나오는 실패를 나눠 봐요

키가 없다는 오류라면 같은 터미널에서 환경 변수를 설정했는지, 변수 이름을 정확히 썼는지 확인해요. 터미널을 새로 열었을 때 설정이 사라질 수 있어요.

인증 오류라면 키를 복사하는 과정에서 공백이 들어갔는지, 키를 폐기했는지, 현재 프로젝트 권한이 맞는지 확인해요. 키 전체를 오류 보고서에 넣어 지원을 요청하지 마세요.

모델을 찾을 수 없다는 오류라면 모델 ID를 추측하지 말고 공식 문서와 계정에서 사용 가능한 모델을 다시 확인해요. 모델 변경은 코드 한 줄만 바꾸는 일이 아니라 지원 기능과 사용량 조건도 함께 바꾸는 일일 수 있어요.

파일·웹앱으로 넓히기 전에

첫 텍스트 요청이 성공한 뒤에야 파일 입력, 스트리밍, 웹 서버 연결 같은 기능을 하나씩 추가하는 게 좋아요. 각 기능을 추가할 때마다 입력에 개인정보가 들어가는지, 로그에 원문이 남는지, 브라우저에 키가 노출되지 않는지 점검하세요.

브라우저에서 직접 API를 호출하는 작은 웹앱을 만들 때 서버 없이 키를 넣으면 방문자에게 키가 노출될 수 있어요. 키는 서버 측에서 관리하고, 브라우저에는 필요한 결과만 전달하는 구조를 먼저 공부하세요. 이미 API 키 보관을 다룬 OpenAI API 키 안전 보관 글과 함께 보면 좋아요.

첫 요청 체크리스트

  • 현재 공식 문서에서 사용할 모델 ID를 확인해요.
  • API 키를 소스 코드와 커밋에 넣지 않아요.
  • 환경 변수가 설정됐는지만 값 없이 확인해요.
  • 짧은 입력 하나로 인증과 응답을 먼저 테스트해요.
  • 오류 로그와 사용량에 비밀값과 불필요한 원문이 남지 않는지 봐요.

Sources

  1. [1] OpenAI API documentation, Quickstart
  2. [2] OpenAI API documentation, Text generation

함께 읽을 글