728x90
반응형
🚀 들어가며
백엔드 개발자라면 누구나 한 번쯤 "API 테스트 어떻게 하지?"라는 고민을 해봤을 겁니다. 브라우저 주소창에 URL을 입력해서 GET 요청은 테스트할 수 있지만, POST나 PUT 요청은? 헤더는 어떻게 설정하고, 인증은 어떻게 처리하지? 이런 모든 고민을 해결해주는 도구가 바로 Postman입니다.
이 글에서는 Postman의 기초부터 실무에서 활용할 수 있는 고급 기능까지 차근차근 알아보겠습니다.
📑 목차
- Postman이란?
- 설치 및 초기 설정
- 첫 번째 API 요청 보내기
- HTTP 메소드별 사용법
- 환경 변수와 컬렉션
- 자동화 테스트
- 팀 협업 기능
- 실전 예제: Spring Boot API 테스트
- 꿀팁 모음
Postman이란?
Postman은 API 개발을 위한 협업 플랫폼입니다. 단순한 API 테스트 도구를 넘어서 API 설계, 문서화, 모니터링까지 가능한 올인원 솔루션이죠.
주요 기능
- 🔧 API 테스트: 모든 HTTP 메소드 지원
- 📁 컬렉션: API 요청을 그룹화하여 관리
- 🌍 환경 변수: 개발/스테이징/프로덕션 환경 전환
- 🤖 자동화: 테스트 스크립트 작성 및 실행
- 👥 협업: 팀원과 API 문서 공유
- 📊 모니터링: API 상태 실시간 확인
설치 및 초기 설정
1. Postman 다운로드
공식 웹사이트에서 운영체제에 맞는 버전을 다운로드합니다.
2. 계정 생성
무료 계정으로도 대부분의 기능을 사용할 수 있습니다.
3. 워크스페이스 생성
My Workspace > Create Workspace > "My First API" 입력
첫 번째 API 요청 보내기
1. 새 요청 생성
이미지 표시
- 좌측 사이드바에서 "+" 버튼 클릭
- Request 탭이 열립니다
2. 간단한 GET 요청
GET https://jsonplaceholder.typicode.com/users
- 메소드를 GET으로 선택
- URL 입력란에 위 주소 입력
- Send 버튼 클릭
3. 응답 확인
json
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz"
}
// ...
]
HTTP 메소드별 사용법
📥 GET - 데이터 조회
http
GET http://localhost:8080/api/members
📤 POST - 데이터 생성
http
POST http://localhost:8080/api/members
Content-Type: application/json
{
"name": "김한동",
"email": "kim@handong.edu",
"department": "전산전자공학부"
}
Postman 설정:
- Method: POST
- Headers 탭: Content-Type: application/json
- Body 탭: raw 선택 → JSON 선택
✏️ PUT - 데이터 수정
http
PUT http://localhost:8080/api/members/1
Content-Type: application/json
{
"name": "김한동",
"email": "kim.updated@handong.edu",
"department": "AI융합교육원"
}
🗑️ DELETE - 데이터 삭제
http
DELETE http://localhost:8080/api/members/1
🔍 PATCH - 부분 수정
http
PATCH http://localhost:8080/api/members/1
Content-Type: application/json
{
"email": "newemail@handong.edu"
}
환경 변수와 컬렉션
환경 변수 설정
환경별로 다른 URL을 관리할 때 유용합니다.
1. 환경 생성
⚙️ 환경 관리 > Add > "Local", "Production" 생성
2. 변수 설정
Local 환경:
base_url: http://localhost:8080
api_key: dev-key-12345
Production 환경:
base_url: https://api.myservice.com
api_key: prod-key-67890
3. 변수 사용
{{base_url}}/api/members
컬렉션 구조화
📁 Handong Media API
├── 📁 Authentication
│ ├── 🔐 Login
│ └── 🔓 Logout
├── 📁 Members
│ ├── 📥 Get All Members
│ ├── 📥 Get Member by ID
│ ├── 📤 Create Member
│ ├── ✏️ Update Member
│ └── 🗑️ Delete Member
├── 📁 Projects
│ └── ...
└── 📁 Events
└── ...
자동화 테스트
Pre-request Script
요청 전에 실행되는 JavaScript 코드입니다.
javascript
// 현재 시간을 변수로 설정
pm.variables.set("timestamp", new Date().toISOString());
// 랜덤 이메일 생성
const randomEmail = `test${Math.random().toString(36).substring(7)}@example.com`;
pm.variables.set("randomEmail", randomEmail);
Tests 탭
응답 후 실행되는 테스트 코드입니다.
javascript
// 상태 코드 검증
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 응답 시간 검증
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// 응답 본문 검증
pm.test("Response has required fields", function () {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('id');
pm.expect(jsonData).to.have.property('name');
pm.expect(jsonData.email).to.include('@');
});
// 변수 저장
const jsonData = pm.response.json();
pm.environment.set("member_id", jsonData.id);
팀 협업 기능
1. 컬렉션 공유
방법 1: 공유 링크
컬렉션 우클릭 > Share > Get public link
방법 2: 팀 워크스페이스
Invite > 팀원 이메일 입력 > Send Invites
2. API 문서화
Postman은 자동으로 API 문서를 생성합니다.
컬렉션 선택 > View documentation > Publish
3. Mock Server
실제 백엔드 없이 프론트엔드 개발이 가능합니다.
컬렉션 우클릭 > Mock collection > Create mock server
실전 예제: Spring Boot API 테스트
프로젝트: 학회 관리 시스템
1. 회원 가입 테스트
javascript
// Pre-request Script
const testUser = {
studentId: `2024${Math.floor(Math.random() * 10000)}`,
name: "테스트 유저",
email: `test${Date.now()}@handong.edu`,
department: "전산전자공학부",
position: "일반회원"
};
pm.variables.set("testUser", JSON.stringify(testUser));
http
POST {{base_url}}/api/members
Content-Type: application/json
{{testUser}}
javascript
// Tests
pm.test("회원 가입 성공", function () {
pm.response.to.have.status(201);
const response = pm.response.json();
pm.expect(response).to.have.property('id');
// 다음 테스트를 위해 ID 저장
pm.environment.set("created_member_id", response.id);
});
2. 로그인 및 토큰 저장
javascript
// Tests (로그인 응답 후)
const response = pm.response.json();
pm.environment.set("access_token", response.accessToken);
// 이후 모든 요청의 Authorization 탭에서
// Type: Bearer Token
// Token: {{access_token}}
3. Collection Runner 사용
- Runner 탭 열기
- 컬렉션 선택
- 환경 선택
- 실행 순서 확인
- Run 클릭
✅ 회원 가입 (201)
✅ 로그인 (200)
✅ 회원 목록 조회 (200)
✅ 회원 정보 수정 (200)
✅ 회원 탈퇴 (204)
꿀팁 모음
1. 단축키
- Ctrl + S: 요청 저장
- Ctrl + Enter: 요청 전송
- Ctrl + Alt + C: 콘솔 열기
- Ctrl + /: 주석 토글
2. 동적 변수
javascript
{{$guid}} // UUID 생성
{{$timestamp}} // Unix 타임스탬프
{{$randomInt}} // 랜덤 정수
{{$randomEmail}} // 랜덤 이메일
3. 파일 업로드
Body 탭에서 form-data 선택:
key: file (File 타입 선택)
value: 파일 선택
4. 인증 처리
Basic Auth
Authorization 탭 > Type: Basic Auth
Username: admin
Password: password
Bearer Token
Authorization 탭 > Type: Bearer Token
Token: {{access_token}}
API Key
Headers 탭
X-API-Key: {{api_key}}
5. 응답 데이터 시각화
javascript
// Tests 탭에서 시각화
const template = `
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
{{#each response}}
<tr>
<td>{{id}}</td>
<td>{{name}}</td>
<td>{{email}}</td>
</tr>
{{/each}}
</table>
`;
pm.visualizer.set(template, {
response: pm.response.json()
});
마무리
Postman은 단순한 API 테스트 도구를 넘어 API 개발의 전 과정을 지원하는 강력한 플랫폼입니다. 이 글에서 소개한 기능들을 하나씩 익혀나가다 보면, API 개발 생산성이 크게 향상될 것입니다.
추가 학습 자료
728x90
반응형
'유용한 컴공 테크닉' 카테고리의 다른 글
Spring Boot H2 Console 사용 완벽 가이드 (0) | 2025.07.11 |
---|---|
Spring Boot로 CRUD REST API 만들기: 제로부터 배포까지 (3) | 2025.07.10 |
Java와 SQLite JDBC 연결 완벽 가이드 (0) | 2025.07.05 |
로그인 필요없이 몇 초만에 무료 이미지 얻는 사이트 2탄 - unsplash (0) | 2021.02.05 |
React , React Native 에 관한 배경 및 지식 for 잘난 척 (0) | 2021.02.05 |