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으로 테스트하기

준비

  1. Postman 설치  https://www.postman.com/downloads/
  2. 스프링 부트 프로젝트 실행 (localhost:8080)
  3. 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