OpenAI API 첫 요청, API 키를 코드에 노출하지 않는 초보자 순서
AI를 활용하여 생성한 이미지입니다.
OpenAI API를 처음 호출할 때 가장 먼저 막히는 곳은 모델보다 인증이에요. 키를 어디에 넣을지 정하지 않은 채 코드를 복사하면, 실행은 되더라도 키가 Git 저장소나 로그에 남을 수 있어요. 공식 빠른 시작 문서는 API 키를 환경 변수로 준비하고 SDK에서 읽어 요청하는 흐름을 안내해요.[1]
이 글은 최신 모델 이름을 외워서 따라 하는 글이 아니에요. 공식 문서에 현재 표시된 모델 ID를 확인하고, 키를 코드 밖에 둔 채 첫 응답을 받는 순서를 초보자 기준으로 정리해요.
API 요청은 네 단계로 나눠요
- 개발자 계정과 결제·사용 권한을 확인해요.
- API 키를 만들고 환경 변수에 저장해요.
- 공식 SDK를 설치해 짧은 요청을 보내요.
- 응답과 오류를 읽고 키와 로그를 정리해요.
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 키를 소스 코드와 커밋에 넣지 않아요.
- 환경 변수가 설정됐는지만 값 없이 확인해요.
- 짧은 입력 하나로 인증과 응답을 먼저 테스트해요.
- 오류 로그와 사용량에 비밀값과 불필요한 원문이 남지 않는지 봐요.