SpringBoot/REST API 개발
Postman / Swagger를 활용한 테스트
DEVLIB
2025. 4. 15. 10:12
728x90
Postman & Swagger란?
도구 |
설명 | 용도 |
Postman | API 요청/응답을 수동으로 테스트하는 클라이언트 도구 | REST API 테스트, 시뮬레이션 |
Swagger (SpringDoc/OpenAPI) | API 명세 자동 생성 + 테스트 UI 제공 | API 문서화 + 실시간 실행 |
1. Postman으로 테스트하기
준비
- Postman 설치 https://www.postman.com/downloads/
- 스프링 부트 프로젝트 실행 (localhost:8080)
- Postman에서 HTTP 메서드(GET, POST 등) 설정 후 테스트
POST 예제
- URL: http://localhost:8080/api/member
- Method: POST
- Body: raw → JSON
{
"name": "홍길동",
"email": "test@example.com",
"age": 25
}
결과 확인
- 정상 응답: 200 OK, 응답 Body 확인
- 실패 응답: 400 Bad Request, 에러 메시지 확인
2. Swagger(OpenAPI) 연동 및 테스트
의존성 추가 (Spring Boot 3.x 기준)
dependencies {
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
}
application.yml 설정 (선택)
springdoc:
swagger-ui:
path: /swagger-ui.html
접속 주소
자동 문서화 예시
@RestController
@RequestMapping("/api")
public class MemberController {
@PostMapping("/member")
public ResponseEntity<MemberDto> register(@RequestBody MemberDto dto) {
return ResponseEntity.ok(dto);
}
@GetMapping("/member/{id}")
public ResponseEntity<MemberDto> getMember(@PathVariable Long id) {
return ResponseEntity.ok(new MemberDto("홍길동", "danbi@example.com"));
}
}
결과 화면
- 각 API에 대해:
- 설명
- 요청/응답 형식
- Try it out 버튼으로 실시간 테스트 가능
- 자동 JSON 변환 및 예외 응답 확인 가능
Swagger 문서화 커스터마이징 (옵션)
@Tag(name = "회원 API", description = "회원 관련 REST API")
@RestController
@RequestMapping("/api/members")
public class MemberController {
@Operation(summary = "회원 조회", description = "ID로 회원 정보를 조회합니다.")
@GetMapping("/{id}")
public ResponseEntity<MemberDto> getMember(@PathVariable Long id) {
// ...
}
}
@Tag, @Operation, @Parameter 등을 사용하면 API 문서를 더 친절하게 꾸밀 수 있습니다.
언제 어떤 걸 사용하면 좋을까?
상황 | 추천 도구 |
수동 테스트, 다양한 API 조합 테스트 | Postman |
API 문서화, 자동 실행, 팀 공유 | Swagger (SpringDoc) |
CI/CD에 포함할 API 테스트 자동화 | Postman Collection + Newman |
마무리 요약
항목 | Postman | Swagger |
목적 | 수동 테스트 중심 | 문서화 + 실행 |
설정 필요 | 없음 | 의존성 추가 |
장점 | 유연한 테스트, 조건 분기 가능 | 코드 기반 문서 자동 생성 |
실무 활용 | QA, 테스트 팀 | 백엔드 ↔ 프론트 협업 |
LIST