swagger 도입기

백엔드·2023년 6월 17일
0

NestJS

목록 보기
1/7

들어가며

애자일 방식으로 각 스쿼드에 4명이 한팀이 되어 2주 간격으로 스프린트를 진행하면서 좀 더 빠르고 정확하게 feature를 구현하는 것에 focus를 두게되었습니다.

그러면서 프론트엔드 개발자분과 작업을 할 때, API 명세를 직접 작성하였는데, 이에 대한 피로감을 느꼈고 좀 더 빠르고 정확한 작업을 위해 swagger를 도입하기로 하였습니다.



작업 방식

  1. nestjs에서 제공하는 cli plugin을 사용하여 @ApiProperty를 사용하지 않아도 추론할 수 있도록 하였습니다.
  2. 하지만, ['.dto.ts', '.entity.ts']에 해당하는 파일만 cli plugin에서 추론해주기 때문에, 추론이 안되는 경우와 타입을 정확하게 추론하지 못하는 경우 직접 코드를 작성하였습니다.

cli-plugin 관련 설정

"sourceRoot": "src",
  "compilerOptions": {
    "plugins": [
      {
        "name": "@nestjs/swagger",
        "options": {
          "classValidatorShim": false,
          "introspectComments": true
        }
      }
    ]
  }

nest-cli.json 파일을 추가하여 cli-plugin 관련 설정을 진행하였습니다.


마치며

cli plugin의 도움을 통해 enum 타입이나 스키마에 대한 부분만 작업을 진행하여 작업량을 크게 줄일 수 있었고, swagger의 도입을 통해 API 명세서 작성에 대한 작업 부담을 줄일 수 있게 되었습니다. 따라서 좀 더 빠르고 정확하게 feature를 구현하는 것에 더 focus를 맞출 수 있게 되었습니다.

profile
백엔드 개발자

0개의 댓글