SpringBoot

Swagger란?

개발자노트 조현진 2025. 7. 21. 17:21

Swagger란 무엇인가요?

  • 정의: Swagger는 REST API를 자동으로 문서화하고, 테스트할 수 있는 도구입니다. 개발자가 API 엔드포인트(예: /users, /login)를 쉽게 설명하고, 클라이언트가 API를 실시간으로 확인할 수 있도록 도와줍니다.
  • 주요 특징:
    • API 문서를 자동 생성합니다. (수동으로 작성할 필요가 줄어듭니다!)
    • 인터랙티브한 UI(예: Swagger UI)를 제공해 API를 바로 테스트할 수 있습니다.
    • JSON이나 YAML 형식으로 API 명세를 작성해 공유할 수 있습니다.
  • 왜 사용하나요?: 프로젝트에서 API를 여러 개발자나 팀이 사용할 때, 일관된 문서를 유지하고 실수 없이 테스트하려면 Swagger가 큰 도움이 됩니다.

Swagger 사용 방법

  • 의존성 추가: build.gradle에 Swagger 관련 의존성을 추가합니다.
  • 설정: Spring 부트 애플리케이션에 별도 설정 없이도 기본 경로(/swagger-ui.html)에서 Swagger UI를 확인할 수 있습니다.
  • application.yml 파일에 설정 추가해 보기
  • 활용: @GetMapping, @PostMapping 같은 어노테이션에 설명을 추가해 문서를 풍부하게 만들 수 있습니다.
  • 결과: 브라우저에서 http://localhost:8080/swagger-ui.html에 접속하면 API 목록과 테스트 버튼이 보입니다.

Swagger vs Spring REST Docs 개념 비교

  • Swagger:
    • 특징: 런타임(프로그램 실행 중)에 API 문서를 자동 생성합니다. 개발 중 실시간으로 확인 가능.
    • 장점: 설정이 간단하고, UI로 바로 테스트할 수 있어 초보자에게 적합합니다. 문서가 프로젝트와 동기화됩니다.
    • 단점: 문서가 코드에 의존적이라, 코드가 변경되면 문서도 자동 변경됩니다. (정확성 보장 필요)
    • 사용 시기: 빠르게 프로토타입을 만들거나, 팀 간 빠른 피드백이 필요한 경우.
  • Spring REST Docs:
    • 특징: 테스트 코드를 기반으로 API 문서를 정적으로 생성합니다. (예: AsciiDoc 형식)
    • 장점: 테스트 결과와 문서가 일치하므로 신뢰성이 높습니다. 커스터마이징이 자유롭습니다.
    • 단점: 설정이 복잡하고, 테스트 코드를 작성해야 하므로 초보자에게는 다소 어렵습니다. 실시간 반영이 어렵습니다.
    • 사용 시기: 대규모 프로젝트에서 문서의 정확성과 유지보수성을 중시할 때 적합.

 

사용 현황

기업유형 선호하는 방식 이유
대기업/금융권 Spring REST Docs 코드 품질, 테스트 기반 문서화
스타트업/중소기업 Swagger 빠른 개발, 즉시 테스트
최근 트렌드 둘 다 사용 REST Docs(정적) + Swagger(테스트)

'SpringBoot' 카테고리의 다른 글

폴링 채팅 시스템  (1) 2025.09.02
SpringBoot Base64  (1) 2025.08.08
JWT란?  (0) 2025.07.21
이미지 업로드 기능  (0) 2025.07.21
AOP  (1) 2025.07.16