단계 | 주요 활동 | 산출물 | 책임자 |
---|---|---|---|
1. 기획 & 요구사항 정의 | 기능 요구사항 수집, 주요 사용자 시나리오 정의 | 기능 명세서, API 요구사항 목록 | 기획자, PM |
2. API 설계 | 엔드포인트 정의, 요청/응답 구조 설계, 상태코드 규칙 설정 | API 스펙 문서 (OpenAPI/Swagger) | 백엔드 개발자, 프론트엔드 개발자 공동 |
3. 디자인 연계 | API 데이터 구조 기반 UI/UX 설계 | 화면 설계서, Mock 데이터 | 디자이너 |
4. Mock API & 테스트 | Swagger Mock 서버, Postman, MSW 등을 이용한 프론트/백 개발 병행 테스트 | Mock API 서버, 테스트 스크립트 | 프론트엔드, 백엔드 |
5. 개발 & 통합 | 실제 API 구현, 프론트엔드 연동, 통합 테스트 | 기능 동작 시연, 통합 테스트 보고서 | 프론트/백엔드 |
6. 배포 & 운영 | API 배포, 모니터링 설정 | 운영 문서, API 변경 로그 | 백엔드 |
7. 유지보수 | 버그 수정, API 개선, 버전 관리 | API v2 스펙 | 프론트/백엔드 |
openapi: 3.0.0
info:
title: To-Do API
version: 1.0.0
description: 간단한 To-Do 관리 API
servers:
- url: https://api.example.com/v1
paths:
/todos:
get:
summary: 모든 To-Do 조회
responses:
'200':
description: 성공
content:
application/json:
example:
- id: 1
title: "공부하기"
completed: false
post:
summary: 새로운 To-Do 생성
requestBody:
required: true
content:
application/json:
example:
title: "책 읽기"
responses:
'201':
description: 생성 성공
content:
application/json:
example:
id: 2
title: "책 읽기"
completed: false
/todos/{id}:
get:
summary: 특정 To-Do 조회
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: 성공
content:
application/json:
example:
id: 1
title: "공부하기"
completed: false
put:
summary: To-Do 수정
requestBody:
required: true
content:
application/json:
example:
title: "운동하기"
completed: true
responses:
'200':
description: 수정 성공
delete:
summary: To-Do 삭제
responses:
'204':
description: 삭제 성공
명확하고 일관된 엔드포인트 네이밍
표준 HTTP 상태 코드 활용
데이터 구조 표준화
버전 관리 필수화
문서와 Mock API 제공
변경 이력 관리
오류 응답 형식 통일
{ "error": "Invalid request", "code": 400 }