ChatGPT API 엔드포인트 설계 프롬프트 - RESTful/GraphQL API
ChatGPT로 RESTful API와 GraphQL API 엔드포인트를 설계하는 프롬프트입니다. HTTP 메서드, 상태 코드, 인증까지 체계적인 API 설계 방법을 안내합니다.
프롬프트 사용 방법
- 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
- 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
- 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요
💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!
📝 필요한 정보를 입력해주세요 (총 7개)
서비스 또는 프로젝트 이름
서비스가 속한 산업 분야
API가 제공할 핵심 기능들
API 아키텍처에 대한 값을 입력하세요
사용자 인증 방식
예상 트래픽 규모
준수해야 할 보안 규정
📋 완성된 프롬프트 (복사해서 사용하세요)
당신은 10년 이상의 실무 경력을 보유한 시니어 API 아키텍트입니다. OpenAPI 3.0 표준을 준수하여 확장 가능하고 유지보수가 용이한 API를 설계해 주세요.
## 서비스 정보
- 서비스명: {{서비스명}} (예: 사용자 관리 API, 주문 처리 시스템)
- 도메인/산업: {{도메인}} (예: 이커머스, 핀테크, SaaS)
- 핵심 기능: {{핵심_기능}} (예: 사용자 CRUD, 로그인, 검색)
- API 아키텍처: {{API_아키텍처}} (REST / GraphQL / gRPC 중 선택)
- 인증 방식: {{인증_방식}} (예: JWT, OAuth2, API Key)
## 비기능 요구사항
- 예상 트래픽 규모: {{예상_트래픽}} (예: 일 10만 요청, 1000 RPS)
- 보안 요구사항: {{보안_요구사항}} (예: GDPR 준수, PCI-DSS, 일반 보안)
## 출력 형식
1. OpenAPI 3.0 스펙 (YAML 형식)
2. 엔드포인트 요약표 (메서드, 경로, 용도, 인증 여부)
3. 요청/응답 예시 (JSON 스키마 포함)
4. 표준 에러 처리 포맷 (에러 코드 체계)
5. 버전 관리 전략 권장사항 입력하지 않은 항목은 원래 표시를 유지합니다.
자동 복사를 사용할 수 없습니다. 아래 선택된 내용을 Ctrl+C 또는 ⌘C로 복사하거나, 길게 눌러 복사하세요.
간단 버전
{{서비스명}} 서비스의 API 엔드포인트를 설계하세요.
- 핵심 기능: {{핵심_기능}}
- 인증 방식: {{인증_방식}}
- API 스타일: {{API_아키텍처}}
다음을 포함하여 출력해 주세요: 엔드포인트 목록, 요청/응답 예시, 표준 에러 포맷.
입력값 가이드
| 입력 항목 | 한국어 설명 | placeholder | 예시 |
|---|---|---|---|
| 서비스명 | 만들 API의 이름을 입력해주세요 | 예: 사용자 관리 API | 사용자 관리 API, 주문 처리 시스템, 결제 게이트웨이 |
| 도메인 | 서비스가 속한 산업 분야를 선택해주세요 | 예: 이커머스 | 이커머스, SaaS, 핀테크, 헬스케어 |
| 핵심_기능 | API가 제공할 핵심 기능들을 입력해주세요 | 예: 사용자 CRUD, 로그인, 검색 | 사용자 CRUD, 로그인, 검색, 상품 관리, 주문 처리 |
| API_아키텍처 | API 설계 방식을 선택해주세요 | REST, GraphQL, gRPC 중 선택 | REST, GraphQL, gRPC |
| 인증_방식 | 사용자 인증 방식을 선택해주세요 | JWT, OAuth2, API Key 중 선택 | JWT, OAuth2, API Key, Session |
| 예상_트래픽 | 예상 트래픽 규모를 입력해주세요 | 예: 일 10만 요청 | 일 10만 요청, 1000 RPS, 소규모 |
| 보안_요구사항 | 준수해야 할 보안 규정을 선택해주세요 | 예: GDPR, 없음 | GDPR, PCI-DSS, ISO 27001, 없음 |
인풋 필드
[서비스명]
▼ 선택하거나 직접 입력
placeholder: "예: 사용자 관리 API"
설명: 만들 API의 이름을 입력해주세요
[도메인]
▼ 드롭다운 선택
옵션: 이커머스, SaaS, 핀테크, 헬스케어, 게임, 교육, 기타
placeholder: "예: 이커머스"
설명: 서비스가 속한 산업 분야를 선택해주세요
[핵심_기능]
▼ 텍스트 입력
placeholder: "예: 사용자 CRUD, 로그인, 검색"
설명: API가 제공할 핵심 기능들을 쉼표로 구분해서 입력해주세요
[API_아키텍처]
▼ 라디오 버튼 선택
옵션: ☐ REST ☐ GraphQL ☐ gRPC
설명: API 설계 방식을 선택해주세요 (REST가 가장 일반적입니다)
[인증_방식]
▼ 드롭다운 선택
옵션: JWT, OAuth2, API Key, Session, 없음
placeholder: "JWT"
설명: 사용자 인증 방식을 선택해주세요
[예상_트래픽]
▼ 텍스트 입력
placeholder: "예: 일 10만 요청"
설명: 예상되는 트래픽 규모를 입력해주세요 (소규모/중규모/대규모로도 입력 가능)
[보안_요구사항]
▼ 드롭다운 선택
옵션: 없음, GDPR, PCI-DSS, ISO 27001, 기타
placeholder: "없음"
설명: 준수해야 할 보안 규정이 있으면 선택해주세요
HTTP 메서드
| 메서드 | 용도 | 멱등성 |
|---|---|---|
| GET | 리소스 조회 | O |
| POST | 리소스 생성 | X |
| PUT | 전체 교체 | O |
| PATCH | 부분 수정 | X |
| DELETE | 삭제 | O |
상태 코드
| 코드 | 의미 | 사용 시점 |
|---|---|---|
| 200 | OK | 성공 |
| 201 | Created | 생성 성공 |
| 204 | No Content | 삭제 성공 |
| 400 | Bad Request | 잘못된 요청 |
| 401 | Unauthorized | 인증 필요 |
| 403 | Forbidden | 권한 없음 |
| 404 | Not Found | 리소스 없음 |
| 409 | Conflict | 충돌 |
| 429 | Too Many Requests | 제한 초과 |
| 500 | Internal Error | 서버 오류 |
RESTful 네이밍
✅ 좋은 예:
GET /api/v1/users
GET /api/v1/users/{id}
POST /api/v1/orders
PATCH /api/v1/orders/{id}
❌ 나쁜 예:
GET /api/v1/getUsers
POST /api/v1/createOrder
응답 포맷
// 성공
{
"data": { /* 응답 데이터 */ },
"meta": { "timestamp": "...", "requestId": "..." }
}
// 에러
{
"error": {
"code": "VALIDATION_ERROR",
"message": "요청 데이터가 유효하지 않습니다."
}
}
// 페이지네이션
{
"data": [...],
"pagination": { "page": 1, "limit": 20, "total": 150 }
}
자주 하는 실수
| 실수 | 해결책 |
|---|---|
| 동사 사용 | 명사로 변경 (getUsers → users) |
| 잘못된 상태 코드 | HTTP 표준 준수 |
| 과도한 중첩 | 최대 2-3단계로 제한 |
| 문서화 부족 | OpenAPI 스펙 작성 |
자주 묻는 질문 (FAQ)
Q: REST API와 GraphQL 중 어떤 것을 선택해야 하나요?
A: 서비스 특성에 따라 다릅니다:
- REST: 표준적이고 캐싱이 중요한 경우, 공개 API에 적합
- GraphQL: 유연한 데이터 조회가 필요한 경우, 복잡한 관계형 데이터에 적합
- gRPC: 마이크로서비스 간 통신, 높은 성능이 필요한 내부 API에 적합
Q: API 버전 관리는 어떻게 하나요?
A: 세 가지 주요 방식이 있습니다:
- URL 경로 방식:
/api/v1/users(가장 널리 사용) - 헤더 방식:
Accept: application/vnd.api+json;version=1 - 쿼리 파라미터:
/api/users?version=1
Q: JWT와 OAuth2의 차이는 무엇인가요?
A:
- JWT: 토큰 기반 인증 포맷으로, 상태가 없고 확장성이 좋습니다
- OAuth2: 제3자 인가 프레임워크로, 소셜 로그인 등에 사용됩니다
- 실제로는 JWT를 OAuth2의 액세스 토큰으로 함께 사용하는 경우가 많습니다
Q: 페이지네이션은 어떻게 구현하나요?
A:
{
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8
}
}
커서 기반 페이지네이션은 대용량 데이터셋에서 더 효율적입니다.
🚀 AI 바로 열기
🔗 관련 프롬프트
ChatGPT 데이터베이스 설계 프롬프트 - DB 스키마 모델링
ChatGPT로 관계형 데이터베이스와 NoSQL 스키마를 설계하는 프롬프트입니다. 정규화, ERD, 인덱스 최적화까지 체계적인 DB 설계 방법을 안내합니다.
ChatGPT 시스템 설계 프롬프트 - 대규모 시스템 아키텍처 설계 가이드
ChatGPT로 확장 가능한 대규모 시스템 아키텍처를 설계하는 프롬프트입니다. 마이크로서비스, 분산 시스템, 캐싱, 로드밸런싱까지 체계적인 시스템 설계 방법을 안내합니다.
ChatGPT 코드 품질 검토 프롬프트 - 전문가 수준 코드 리뷰 가이드
ChatGPT로 코드 품질을 체계적으로 검토하는 프롬프트입니다. 코딩 표준 준수, 보안 취약점 탐지, 성능 최적화, 리팩토링 제안까지 제공합니다.
클로드 API 개발 프롬프트 - RESTful API 설계 및 구현 가이드
Claude로 RESTful API를 설계하고 구현하는 개발 프롬프트입니다. API 엔드포인트 설계, 요청/응답 스키마 정의, 인증/보안 구현, 에러 처리, API 문서화 등 전체 API 개발 라이프사이클을 지원합니다.