swagger 관련 대표적인 decorator에 대한 설명입니다. DTO 관련 Decorator API에서 주고 받을 모델에 대한 명세를 swagger docs에 작성할 수 있다. @ApiProperty Option example example property를 통해 모델의 property에 대한 예시값을 보여준다. description description property를 통해 property에 대한 설명을 swagger docs에서 보여준다. required @ApiProerty({required: fasle}) 를 계속 입력하지 않도록 하는 @ApiPropertyOptional()이라는 단축 데코레이터가 있다. type property에 대한 값의 타입을 설정할 수 있다. 속성이 실제로 배열일 때..
Swagger란? 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다. api명세를 작성하기 위하여 nestjs에 찰떡이라는 swagger를 사용해보기로 하였다. 우선 준비물. 패키지들이 필요하다. npm install @nestjs/swagger swagger-ui-express 이 두가지 패키지들을 설치하면 다음으로는 설정을 해주면 된다. NestJS + Swagger 설정하기 우선 위의 명령어로 패키지들을 설치해준다. 설치를 마쳤다면. main.ts의 파일을 수정..
TypeORM의 버전 변경으로 인한 혼란. typeorm의 버전이 0.3.x 로 올라가면서 0.2와는 너무나도 다른 많은 변경들이 생겼다. 이것은 혼란 그 잡채였다. 기존 0.2 버전에서는 @EntityRepository를 이용해서 커스텀 레포지토리를 만들어서 쓸 수 있었다면 0.3버전에서는 @EntityRepository가 deprecated되어서 사용할 수 없었다. 커스텀 레포지토리는 필수적 요소라고 생각하기 때문에 typeorm 버전 up이 되더라도 무조건 쓸 수 있게 설정 해놔야 한다고 생각했다. 그래서 여러가지 방법들을 찾아보려고 노력하였다. 두가지 방법에 대하여 찾아봤는데 그 전에 레포지토리가 무엇인지 먼저 살펴보도록 하겠다. Repository 패턴이란? 정의 리포지토리는 데이터 원본에 액세..
nestjs와 뗴려야 뗼 수 없는 사이인 typeorm을 설치하다가 발생하는 에러에 대하여 적어보려 한다. 우선 현재 nestjs의 버전은 최신 버전은 (현재기준) 9.1.4 버전이다. 이 버전에서 typeorm을 설치하면 0.3.0 버전으로 설치가 된다. 하지만 나는 typeorm 0.2.x버전을 설치하길 원했다. 왜냐하면 typeorm의 @EntityRepository()를 사용해보기 위해서였다. typeorm의 0.3.x 버전에서는 @EntityRepository()를 지원하지 않아 대부분 커스텀데코레이터를 만들어 사용하고 있다. 0.3.x 버전과 0.2.x 버전의 차이를 알기 위하여 typeorm 0.2.38을 설치하려고 npm install 명령어를 실행하였다. 하지만!!! 나에게 돌아온 것은 ..
강의를 듣던 도중 repository 에러로 반나절을 날려먹었다. 삽질의 연속이었다. 버전을 낮춰보기도 하고 강의의 소스코드를 비교해서 틀린그림찾기도 엄청 했었다. 하지만 해결하지 못했었다. 찾던 도중 nestjs doc의 database Typeorm 편을 찾게 되었다. 역시 doc부터 먼저 찾아 봐야한다는것을 다시 상기시키게 되었다. 우선 나의 에러는 아래와 같았다. RepositoryNotFoundError: No repository for "BoardRepository" was found. Looks like this entity is not registered in current "default" connection? at RepositoryNotFoundError.TypeORMError [as..