내가 만든 API를 널리 알리기 - Spring REST Docs 가이드편
김지헌 · 컬리 · 컬리 기술 블로그
소개
'추석맞이 선물하기 재개발'에 차출되어 API 문서화를 위해 도입한 Spring REST Docs 를 소개합니다.
AI 핵심 요약
선물하기 시스템을 재개발하며 기존 Wiki API 문서를 개선하기 위해 Spring REST Docs를 도입했다. Swagger는 빠르게 동적 문서를 만들 수 있지만 상세한 설명을 추가할수록 애노테이션이 운영 코드에 들어갈 수 있고, Spring REST Docs는 테스트를 작성해야 문서 스니펫을 생성해 API 변경을 검증할 수 있다는 점을 선택 이유로 들었다. 테스트 결과를 AsciiDoc과 Asciidoctor로 HTML 문서화하고, Spring REST Docs API specification Integration으로 OpenAPI YAML도 생성해 Swagger UI와 Postman에서 활용하도록 구성했다. 문서화 도구는 각자의 장단점과 팀의 작성 부담을 비교해 선택하되, 테스트 기반 문서화는 API에 대한 신뢰를 높이는 방법이라고 설명한다.
- Spring REST Docs는 테스트가 통과해야 문서 스니펫을 생성하므로 API 변경을 테스트 과정에서 확인할 수 있다.
- Asciidoctor는 테스트에서 생성한 스니펫과 AsciiDoc 파일을 조합해 HTML 문서로 렌더링한다.
- 사용자 정의 스니펫을 적용할 때는 Spring REST Docs 버전에 맞는 템플릿 경로를 확인해야 한다.
- Swagger UI에서 API를 직접 호출하려면 CORS·CSRF·FrameOption 설정을 개발 환경에 한정해 조정한다.
- Spring REST Docs와 Swagger 중 무엇을 선택할지는 운영 코드 변경, 문서 작성 비용, 테스트 필요성을 함께 고려한다.
비슷한 학습 자료
모던 API 아키텍처 설계 전략
제임스 고프 · Yes24
토스인컴 QA Platform: ‘누구나 테스트할 수 있는’ 도구의 시작
정수호/노치현 · 토스 기술 블로그
API 연동 자동화를 위한 여정: 토스는 왜 사내 MCP 서버를 개발하였는가? with Spring-AI
조민규 · 토스 기술 블로그
더 자유롭고, 빠르고, 정확하게: 토스페이먼츠 API 문서 엔지니어링
한주연/신지호 · 토스 기술 블로그
tosspayments-restdocs: 선언형 문서 작성 라이브러리
이준희 · 토스 기술 블로그
Kotlin으로 DSL 만들기: 반복적이고 지루한 REST Docs 벗어나기
한규주 · 토스 기술 블로그