
🚀 API 활용 GPTs 만들기
초보자를 위한 단계별 실습 가이드
1API란 무엇인가?
API(Application Programming Interface)는 서로 다른 프로그램들이 소통할 수 있게 해주는 다리입니다.
실생활 비유
식당에서 주문하는 것과 비슷합니다:
- 손님(당신의 GPT): 메뉴를 보고 주문
- 웨이터(API): 주문을 주방에 전달
- 주방(외부 서비스): 음식을 만들어 제공
API의 핵심 개념
- 엔드포인트: API가 제공하는 특정 기능의 주소 (예: https://api.example.com/weather)
- 요청(Request): API에게 보내는 질문이나 명령
- 응답(Response): API가 돌려주는 결과 데이터
- API 키: API를 사용할 수 있는 인증 열쇠
2GPTs에서 API 사용 준비하기
2-1. ChatGPT Plus 계정 확인
Custom GPTs를 만들려면 ChatGPT Plus 구독이 필요합니다.
2-2. GPT 생성 시작
- ChatGPT 좌측 상단 "Explore" 클릭
- "Create a GPT" 버튼 클릭
- 두 가지 옵션 중 "Configure" 탭 선택 (더 세밀한 설정 가능)
"Create" 탭은 대화형으로 GPT를 만들고, "Configure" 탭은 직접 설정을 입력할 수 있습니다.
3첫 번째 실습: 날씨 API 연동 GPT 만들기
3-1. 무료 날씨 API 가입하기
- OpenWeatherMap 사이트 방문: https://openweathermap.org
- 무료 계정 생성
- API 키 받기 (대시보드에서 확인 가능)
3-2. GPT 기본 설정
Name: 날씨 알려주는 GPT
Description: 실시간 날씨 정보를 제공하는 AI 어시스턴트
Instructions:
당신은 친절한 날씨 안내 도우미입니다.
사용자가 도시 이름을 말하면 해당 도시의 현재 날씨를 알려주세요.
온도, 날씨 상태, 습도 정보를 포함해주세요.
3-3. API 연동 설정 (Actions)
- "Configure" 탭에서 "Add actions" 클릭
- 아래 Schema를 입력:
{
"openapi": "3.1.0",
"info": {
"title": "날씨 API",
"description": "OpenWeatherMap을 사용한 날씨 정보",
"version": "1.0.0"
},
"servers": [
{
"url": "https://api.openweathermap.org/data/2.5"
}
],
"paths": {
"/weather": {
"get": {
"description": "도시 이름으로 현재 날씨 가져오기",
"operationId": "getCurrentWeather",
"parameters": [
{
"name": "q",
"in": "query",
"description": "도시 이름",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "appid",
"in": "query",
"description": "API 키",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "units",
"in": "query",
"description": "온도 단위 (metric=섭씨)",
"required": false,
"schema": {
"type": "string",
"default": "metric"
}
},
{
"name": "lang",
"in": "query",
"description": "언어",
"required": false,
"schema": {
"type": "string",
"default": "kr"
}
}
],
"responses": {
"200": {
"description": "성공적인 응답"
}
}
}
}
}
}
- "Authentication" 설정에서 "API Key" 선택
- Auth Type: "Query" 선택
- Query Parameter Name: "appid" 입력
- API Key에 받은 OpenWeatherMap API 키 입력
3-4. 테스트하기
테스트 대화
사용자: "서울 날씨 알려줘"GPT: 서울의 현재 날씨를 확인해드리겠습니다... (API 호출 후 결과 제공)
4두 번째 실습: 영화 정보 API GPT 만들기
4-1. TMDB API 준비
- The Movie Database (TMDB) 가입: https://www.themoviedb.org
- Settings → API → API Key 발급
4-2. GPT 설정
Name: 영화 추천 전문가
Instructions:
당신은 영화 추천 전문가입니다.
사용자가 영화 제목을 말하면 상세 정보를 제공하고,
비슷한 장르의 영화를 추천해주세요.
4-3. API Schema 예시
{
"openapi": "3.1.0",
"info": {
"title": "영화 정보 API",
"version": "1.0.0"
},
"servers": [
{
"url": "https://api.themoviedb.org/3"
}
],
"paths": {
"/search/movie": {
"get": {
"description": "영화 검색",
"operationId": "searchMovie",
"parameters": [
{
"name": "query",
"in": "query",
"description": "검색할 영화 제목",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "api_key",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "language",
"in": "query",
"schema": {
"type": "string",
"default": "ko-KR"
}
}
]
}
}
}
}
5세 번째 실습: 나만의 백엔드 API 만들기
5-1. 간단한 API 서버 만들기 (Python Flask)
무료 호스팅 서비스 Replit 사용하기:
- Replit.com 가입
- 새 Python Repl 생성
- 아래 코드 입력:
from flask import Flask, jsonify, request
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
# 간단한 할일 목록 저장소
todos = []
@app.route('/todos', methods=['GET'])
def get_todos():
return jsonify({"todos": todos})
@app.route('/todos', methods=['POST'])
def add_todo():
data = request.get_json()
todo = data.get('todo')
if todo:
todos.append(todo)
return jsonify({"message": "추가 완료", "todo": todo})
return jsonify({"error": "할일을 입력하세요"}), 400
@app.route('/todos/', methods=['DELETE'])
def delete_todo(index):
if 0 <= index < len(todos):
removed = todos.pop(index)
return jsonify({"message": "삭제 완료", "todo": removed})
return jsonify({"error": "잘못된 인덱스"}), 400
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
- "Run" 버튼 클릭하여 서버 시작
- 생성된 URL 복사 (예: https://your-app.replit.app)
5-2. GPT에 연결하기
{
"openapi": "3.1.0",
"info": {
"title": "할일 관리 API",
"version": "1.0.0"
},
"servers": [
{
"url": "https://your-app.replit.app"
}
],
"paths": {
"/todos": {
"get": {
"description": "모든 할일 가져오기",
"operationId": "getTodos"
},
"post": {
"description": "새 할일 추가",
"operationId": "addTodo",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"todo": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
6API 디버깅 및 문제 해결
자주 발생하는 문제
문제 1: API가 응답하지 않음
해결: API 키가 올바른지, URL이 정확한지 확인
해결: API 키가 올바른지, URL이 정확한지 확인
문제 2: CORS 에러
해결: 서버에 CORS 헤더 추가 필요
해결: 서버에 CORS 헤더 추가 필요
문제 3: Schema 형식 오류
해결: OpenAPI 3.1.0 형식 준수 확인
해결: OpenAPI 3.1.0 형식 준수 확인
디버깅 팁
- Postman이나 curl로 API를 먼저 테스트
- GPT의 응답에서 에러 메시지 확인
- API 제공자의 문서 꼼꼼히 읽기
7고급 기능 및 팁
여러 API를 조합하기
하나의 GPT에 여러 API를 연결할 수 있습니다:
- 날씨 API + 뉴스 API = 날씨 기반 뉴스 추천
- 지도 API + 맛집 API = 위치 기반 맛집 추천
인증 방법
- API Key: 가장 간단 (Query 또는 Header)
- OAuth: 더 안전, 사용자 인증 필요
- Bearer Token: 일부 API에서 사용
실제 서비스를 만들 때는 API 키를 안전하게 보관하세요.
환경 변수를 사용하거나 서버에서 프록시 역할을 하는 것이 좋습니다.
성능 최적화
- 불필요한 API 호출 줄이기
- 캐싱 활용하기
- 에러 처리 명확히 하기
8다음 단계 및 학습 자료
추천 연습 프로젝트
- 뉴스 요약 GPT: News API 활용
- 환율 변환 GPT: 환율 API 활용
- 레시피 추천 GPT: 음식 API 활용
- 운동 트래커 GPT: 자체 DB API 구축
- 주식 정보 GPT: 금융 API 활용
유용한 무료 API 목록
- OpenWeatherMap - 날씨
- NewsAPI - 뉴스
- TMDB - 영화/TV
- RESTCountries - 국가 정보
- CoinGecko - 암호화폐
- ExchangeRate-API - 환율
더 배우기
- OpenAPI Specification 문서 읽기
- RESTful API 개념 이해하기
- JSON 데이터 형식 학습
- HTTP 메서드(GET, POST, PUT, DELETE) 이해
'AI' 카테고리의 다른 글
| NotebookLM 초급과정 (1) | 2025.12.01 |
|---|---|
| AI 프롬프트 초보자 가이드 (3) | 2025.11.30 |
| 어르신을 위한 카페 키오스크 사용법 (3) | 2025.11.28 |
| AI 챗봇 민원 자동응답 만들기 (1) | 2025.11.28 |
| Google AI Studio 중급과정 (0) | 2025.11.27 |