728x90 TypeScript12 [Nest.js] 버전 별로 스웨거 관리 이번에 앱 리뉴얼로 인해 API 도 버전 분리를 하기로 결정했다. Header 에 버전을 추가하여 구분하기로 했는데 문제는 스웨거였다. JAVA 나 .NET 에서는 스웨거 버저닝 싱크 프로세스가 잘되어 있는데, Nest 에서는... https://github.com/nestjs/swagger/issues/1810 우리와 같은 Needs 를 가진 사람들이 많으나, Nest 공식 사이트에선 답이 없는데... (열일해라 Nest...⭐️) 이 방법 저 방법 시도해보다가, 결국 아래와 같은 방법으로 해결했다. TypeScript 개발자 모두 화이팅...! 1. 버전 별로 Controller, Service, Module 을 분리한다. ▷ 폴더구조 ├── src │ ├── common │ │ └── control.. 2023. 1. 11. [TypeORM] 데코레이터 - Entity Entity 데이터베이스 테이블을 정의하기 전에 실행해야 하는 데코레이터이다. 테이블명을 따로 지정하지 않으면 클래스명으로 매핑한다. @Entity("USER") export class User () 추가적으로 지정할 수 있는 인자값에는 다음과 같이 있다. name: 테이블명 database: 데이터베이스명 schema: 스키마명 engine: 테이블 생성 중에 설정할 수 있는 DB 엔진명 synchronise: false 로 설정할시 스키마 싱크 생략 orderBy: `QueryBuilder` 와 `find` 를 실행할 때 엔티티의 기본 순서를 지정 @Entity({ name: 'USER', engine: 'MyDatabase', database: 'DEV_CUSTOMER', schema: 'SCHEM.. 2022. 9. 19. [Nest.js] Custom Decorator interceptor 작업을 진행하다 보니 product 라는 같은 서비스 내부에서 이게 product 이벤트인지 item 이벤트인지 구분이 필요했다. 그리하여 작업하게 된 Custom Decorator. reflect-metadata 라이브러리를 사용하기로 결정했다. npm install reflect-metadata ▷ tsconfig.json { "compilerOptions": { "target": "ES5", "experimentalDecorators": true, "emitDecoratorMetadata": true } } ▷ sns.decorator.ts import "reflect-metadata"; export const UseSnsDecorator = ( serviceName: stri.. 2022. 4. 12. [Nest.js] Custom Interceptor 상품은 이커머스의 꽃으로, 검색 및 다른 서비스들에서 상품 데이터를 Meta 로 들고 있다 보니 상품 데이터가 변경될 때마다 Sync 를 맞춰줘야 했다. N분에 한번씩 스케쥴링 하여 ETL 하는 방법도 있겠지만 그렇게 하면 데이터베이스에 과부하가 심할거 같아서 상품의 create/update/delete 이벤트가 발생할 때마다 AWS SNS 에 메시지를 보내는 방식으로 구현하기로 결정했다. 상품 backend api 내에 있는 function 별로 코드 내부에 삽입하는 방법도 있지만, 코드가 너무 더러워진다고 생각되어 Custom Interceptor 를 만들기로 결정했다. ▷ sns.interceptor.ts 우리는 grpc 통신을 이용하여 각 서비스 별로 통신하고 있었기에 Service 단에 해당 I.. 2022. 4. 11. [Nest.js] NestJS 프레임워크 사용하기 TypeScript 프로젝트 세팅 작업은 생각보다 귀찮고 복잡하다. 필요한 dependency 설치부터 tsconfig.json, script 작성까지 바빠 죽겠는데, 언제 한땀한땀 작성하고 있을 것인가? (참고: [TypeScript] Starting the TypeScript Project) 금보다 귀한 우리의 시간을 더 효율적으로 사용할 수 있게 만들어주는 단비같은 프레임워크가 있으니, 바로 NestJS 다. NestJS NestJS 는 효율적이고 확장 가능한 Node.js 서버측 애플리케이션을 구축하기 위한 프레임워크다. 프로그레시브 자바스크립트를 사용하고 TypeScipt 빌드도 완벽하게 지원하며, OOP(Object Oriented Programming) 와 FP(Functional Progr.. 2021. 10. 6. [TypeScript] Starting the TypeScript Project 1) Initial Setup $ mkdir ${projectName} $ cd ${projectName} 2) Setup Node.js package.json $ npm init -y 3) Add TypeScript as a dev dependency $ npm install typescript --save-dev 4) Install ambient node.js types for TypeScript $ npm install @types/node --save-dev 5) Create a tsconfig.json - tsconfig.json, is where we define the TypeScript compiler options $ npx tsc --init ▷ tsconfig.json { "compi.. 2021. 10. 6. 이전 1 2 다음 728x90 반응형