Spring JPA - REST DOCS

김재현·2022년 8월 8일
0

Programmers

목록 보기
17/28

5일차

  • REST API 웹 어플리케이션 개발
    • 엔티티(주문관리 vs 게시판)
    • API 개발(JUnit, Lombok, OSIV)
    • API 문서화(레스트 닥스, 스웨거)

REST DOCS(documentation)

  • spring-restdocs-mockmvc 디펜덴시 추가.
  • asciidoctor 라는 플러그를 이용해, generate-doc라는 플러그인을 사용해주어야 한다.
    이렇게 되면 docs > asciidoctor > index.adoc을 참고하여 HTML파일이 생성됨.
  • 문서와 API가 일치하지 않을때 오류를 발생시키면서 "API스펙과 API 문서가 다르다." 는 것을 알려줌.
    테스트코드를 통해서 문서 상태를 유지할 수 있기 때문에 문서의 최신화가 자동적으로 이루어짐.
  • AsciiDoc이란
    • 노트, 기사, 문서, 서적, 웹페이지 등 페이지를 작성하기 위한 완성된 텍스트 작성 형식(규격)
    • HTML, PDF 등을 포함한 다양한 형식으로 AsciiDoc 문서를 번역하기 위한 텍스트 프로세서
    • 경량 마크업 언어에 속한다.

Swagger

  • 최근 많이 사용하고 있는 문서화 툴
  • 정의 : 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크 - 위키백과

장점

  • 적용하기 쉽다.
    • 테스트 코드를 작성하고 성공해야 만들어지는 REST Docs와 다르게 Swagger은 코드 몇 줄만 추가해면 만들 수 있음.
  • 테스트할 수 있는 UI를 제공.
    • REST Docs는 테스트를 돌리면서 성공하는지 실패하는지 확인했지만,
      Swagger은 문서 화면에서 API를 바로바로 테스트할 수 있음.

단점

  • 운영코드상에 documentation을 하기 위한 어노테이션이 붙게 됨.
    운영 코드와 문서화를 하기 위한 설정들이 혼합되면서 프로덕션 코드와 문서 코드가 섞이게 되고, 유지 보수 측면에서 안 좋을 수 있음.
  • 운영코드와 문서화 코드가 섞이면서 운영코드 해석이 힘들어지고 유지관리가 어려워짐.
  • rest doc처럼 테스트코드를 작성하지 않아도 문서화를 시키기 때문에 API에 대한 검증이 자동적으로 따라오지 않는 단점.

Lombok

  • Lombok @
  • 자바에서 객체를 만들 때 Constructor나 getter, setter 같은 코드를 많이 작성하지만, 반복적인 코드들에 의해서 코드량이 길어지는 경우가 발생함.
  • 어노테이션 기반으로 편리하게 작성할 수 있도록 도와주는 것이 롬복.
  • 여러 어노테이션 지원하며 빌더 패턴 구현 가능.

JUnit

  • spring-boot-stater-test를 의존성을 추가하면 추가됨.
  • @BeforeEach @AfterEach등의 어노테이션 사용 가능.

0개의 댓글