서비스 모듈 | Swagger

Faithful Dev·2025년 3월 11일

Swagger는 RESTful API를 설계, 빌드, 문서화, 테스트할 수 있도록 도와주는 오픈 소스 프레임워크다. 현재는 OpenAPI Specification (OAS)의 일부로 발전했으며, API 개발을 더욱 효율적으로 할 수 있도록 다양한 도구를 제공한다.

주요 기능

  1. API 문서 자동 생성: API의 엔드포인트, 요청 및 응답 형식 등을 코드 기반으로 자동 문서화할 수 있다.
  2. API 테스트 및 실행: Swagger UI를 통해 브라우저에서 API를 직접 테스트할 수 있다.
  3. 클라이언트 SDK 및 서버 코드 생성: API 정의를 기반으로 다양한 언어(Java, Python, Node.js 등)의 클라이언트 및 서버 코드를 자동 생성할 수 있다.
  4. OpenAPI 지원: OpenAPI Specification(OAS) 표준을 지원하여 API 문서를 통합 관리할 수 있다.

주요 도구

  1. Swagger UI: API를 시각적으로 표현하고, 브라우저에서 직접 테스트할 수 있는 인터페이스 제공.
  2. Swagger Editor: OpenAPI 문서를 YAML/JSON 형식으로 작성하고 검증할 수 있는 웹 기반 에디터.
  3. Swagger Codegen: OpenAPI 정의를 기반으로 클라이언트 및 서버 코드를 자동 생성하는 도구.
  4. Swagger Hub: API 설계를 팀과 협업하면서 관리할 수 있는 클라우듣 기반 플랫폼.

예제 (YAML 기반 OpenAPI 문서)

openapi: 3.0.0
info:
  title: Sample API
  description: Swagger를 사용한 간단한 API 예제
  version: 1.0.0
paths:
  /users:
    get:
      summary: 사용자 목록 조회
      responses:
        '200':
          description: 성공
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string

Java(Spring Boot)에서 사용하기

Spring Boot에서는 springdoc-openapi 또는 springfox-swagger 라이브러리를 사용하여 Swagger 문서를 자동 생성할 수 있다.

springdoc-openapi 사용 예제

의존성 추가 (build.gradle)

dependencies {
	implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'
}

Swagger UI 접속

  • 애플리케이션 실행 후, 브라우저에서 http://localhost:8080/swagger-ui.html로 접속하면 Swagger UI를 확인할 수 있다.

장점과 단점

장점

  • API 문서를 자동으로 생성하여 유지보수 비용 절감
  • API 테스트 기능 제공
  • 다양한 프로그래밍 언어 지원
  • OpenAPI 표준을 따름

단점

  • 문서화가 자동화되더라도 정확한 API 설명을 추가해야 함
  • 대규모 프로젝트에서는 문서 관리가 복잡할 수 있음

정리

Swagger는 RESTful API 문서를 자동으로 생성하고, 테스트하며, 클라이언트 SDK 및 서버 코드까지 생성할 수 있는 강력한 도구다. Java 기반(Spring Boot) 프로젝트에서 API를 체계적으로 관리하려면 springdoc-openapi를 활용하는 것이 좋다.

profile
Turning Vision into Reality.

0개의 댓글