제1.5장: Postman을 통한 API 테스트
학습 시간: 50분
1. 왜 API를 테스트해야 할까요? 발사 전 점검
상상해보세요: 로켓 발사 전에 엔지니어들은 시스템 테스트 가동을 수행합니다. 점검을 건너뛰면 임무가 실패할 수 있습니다!
API 테스트는 당신의 통제 시험입니다:
-
✅ "도킹 노드"의 작동 여부 확인
-
🛡️ 실제 사용 전에 취약점 발견
-
📊 데이터가 손상 없이 전송되는지 확인
💡 우주 비유: Postman은 모든 시나리오를 시뮬레이션하는 비행 관제 센터의 테스트 콘솔과 같습니다: "존재하지 않는 행성에 대한 데이터를 요청하면 어떻게 될까? 서버가 초당 1000개의 요청을 견딜 수 있을까?"
2. Postman: API를 위한 "비행 관제 센터"
기능:
-
📡 모든 HTTP 요청 전송 (GET, POST, PUT, DELETE)
-
🔍 응답 분석 (상태 코드, 헤더, JSON 본문)
-
🧪 자동 테스트 작성 (JavaScript)
-
🌐 환경 변수 사용 (테스트 vs 운영)
3. 첫 실행: 행성 API 테스트
1단계: 요청 생성
-
Postman 열기 → New → Request
-
URL 입력:
https://api.spacexdata.com/v4/rockets
-
메서드 선택: GET
2단계: "신호" 전송
3단계: 원격 측정 분석:
- 상태: 200 OK
- 응답 본문 (JSON): 매개변수가 포함된 로켓 목록
[
{
"name": "Falcon 1",
"type": "rocket",
"active": false,
"stages": 2,
"id": "5e9d0d95eda69955f709d1eb"
},
{
"name": "Falcon 9",
"type": "rocket",
"active": true,
"id": "5e9d0d95eda69973a809d1ec"
}
]
4. 다이어그램: Postman 구성 요소
[작업 공간]
├── "Params" 탭 (쿼리 매개변수)
├── "Headers" 탭 (헤더)
├── "Body" 탭 (POST/PUT 요청 본문)
├── "Tests" 탭 (확인 스크립트)
└── 응답 패널 (상태, 시간, 크기, 본문)
5. 복잡한 시나리오 생성: 미션 시작
테스트: 카탈로그에 새 행성 추가
-
메서드: POST
-
URL:
https://jsonplaceholder.typicode.com/posts
(예시) -
Headers에:
- Body (raw → JSON)에:
Tests에서의 자동 확인:
// 상태 확인
pm.test("Post created successfully", () => {
pm.response.to.have.status(201);
});
// 응답의 구조 및 데이터 확인
pm.test("Response contains the new post data", () => {
const response = pm.response.json();
pm.expect(response).to.have.property("id"); // 서버가 ID를 할당했는지 확인
pm.expect(response.title).to.eql("New Exoplanet Found");
});
6. 환경 변수: 지구 vs 화성
다른 서버(테스트/운영)에서 어떻게 테스트할까요?
- 환경 생성:
Local
→http://localhost:3000
-
Production
→https://api.nasa.gov
-
요청에서 변수 사용:
⚠️ 중요! 운영 서버에서
DELETE
를 절대로 테스트하지 마세요!
7. 컬렉션: 우주 임무 라이브러리
요청 그룹화:
장점:- 🚀 모든 테스트를 한 번의 버튼 클릭으로 실행
- 📤 구성 내보내기/가져오기
- 👨🚀 팀 공동 작업
8. 자동화: 위성 정기 점검
Postman을 통해 API 모니터링 설정:
-
Schedule → 2시간마다
-
테스트:
-
고장 시 Slack/이메일 알림
복습 퀴즈
🚀 요약: Postman은 API 테스트를 위한 만능 "제어판"입니다. Postman을 사용하면 다음을 수행할 수 있습니다: - 출시 전에 "온보드 시스템"의 작동을 확인 - 테스트 시나리오 라이브러리 생성 - 우주 서비스 모니터링 자동화
📌 실습 과제:
- Postman 설치
- SpaceX API에 요청 생성:
GET https://api.spacexdata.com/v4/launches/latest
- 다음을 확인하는 테스트 작성:
- 응답 상태
200
name
필드에 "Falcon"이라는 단어 포함- 응답 시간 < 500ms
1장 완료를 축하합니다!
API의 기본 사항을 익히셨습니다. 다음 장에서는 우주 API를 사용하는 "우주선"인 웹 애플리케이션을 구축할 것입니다!
🌌 추가 자료: