nest

카테고리 없음

Nest.JS Riot API 호출하기

Riot API키 발급받기 https://developer.riotgames.com/ Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ongoing effort to respond to players' and developers' requests for data and developer.riotgames.com Riot API키를 발급 받기 위해 라이엇 개발자 홈페이지에서 API 발급 라이엇 계..

개발일지

Nest.JS 인터셉터

인터셉터 인터셉터란 요청과 응답을 중간에 가로채 변형하여 전달하는 컴포넌트 요청과 응답이 라우터로 전달되거나 응답이 끝난 후에 인터셉터에서 요청과 응답을 가로채 원하는 형태로 가공하여 요청과응답을 전달함 미들웨어와 수행하는 일이 비슷하지만 수행 시점에 차이가 있음 미들웨어는 요청이 라우트 핸들러로 전달되기 전에 동작함 인터셉터는 라우트 핸들러의 처리 전/후 호출되어 요청과 응답을 다룰 수 있음 미들웨어는 요청이 라우터 핸들러로 전달되기 전에만 바인딩 될 수 있음, 응답은 변경할 수 없음 특정 미들웨어가 요청이 라우터 핸들러도 전달되기 전에 요청의 생명주기를 종료할 수 있음 인터셉터 활용 메서드 실행 전/후 추가 로직을 바인딩 함수에서 반환된 결과를 변환 함수에서 뎐져진 예외를 변환 기본 기능의 동작을 확..

개발일지

Nest.JS 헬스 체크

헬스 체크( Health check) 서버 운영중 트래픽이 증가하여 DB에 부하가 생기거나 네트워크 연결에 장애가 발생할 수 있음 서버는 HTTP, DB, 메모리, 디스크 상태 등을 체크하는 헬스 체크 장치가 있어야함 상태가 좋지 않은경우 슬랙같은 메신저를 통해 서버 상태를 파악하고 에러 메세지를 전송해야함 모니터링 전략을 세워 서버의 상태를 파악해야함 헬스 체크 라이브러리 Nest는 Terminus(@nestjs/terminus) 헬스 체크 라이브러리를 제공함 Terminus는 다양한 상태 표시기 health indicator를 제공함 HttpHealthIndicator MongooseHealthInicator TypeOrmHealthIndicator SequelizeHealthIndicator Mic..

개발일지

Nest.JS MySQL 연결

TypeORM으로 데이터베이스 연결 라이브러리 설치 npm i typeorm@0.3.7 @nestjs/typeorm@9.0.0 mysql2 app.module.ts import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ imports: [ UsersModule, ConfigModule.forRoot({ //환경변수 파일 지정 envFilePath: ['.development.env'], load: [emailConfig, authConfig], //전역으로 설정옵션 isGlobal: true, validationSchema, }), //AppModule에 TypeOrmModule을 ..

개발일지

Nest.js 모듈

모듈 여러 작은 단위의 컴포넌트들을 조합하여 큰 작업을 수행할 수 있게 하는 단위 Nest 앱이 실행되기 위해서 하나의 루트 모듈이 존재하고 이 루트 모듈(AppModule)은 다른 모듈들로 구성됨 여러 모듈에 각기 맡은 바 책임을 나누고 응집도를 높이기 위함 유사한 기능끼리 모듈로 묶어야함 import: 이 모듈에서 사용하기 위한 프로바이더를 가지고 있는 다른 모듈을 가져옴 controllers / providers : 모듈 전반에서 컨트롤러와 프로바이더를 사용할 수 있도록 Nest가 객체를 생성하고 주입 export: 이 모듈에서 제공하는 컴포넌트를 다른 모듈에서 가져오기해서 사용하고자 한다면 export를 해야함 AppModule 애플리케이션의 Root 모듈 CoreModule만을 가져오고 Core..

개발일지

Nest.js bull Queue

Bull Quere란? Redis를 기반으로 하는 분산 큐 라이브러리 대기열에 작업을 추가하고 작업자들이 해당 작업을 처리 ex) 요청이 몰릴때 분산하고, 지연 시간을 설정하여 부하를 줄임. Nest.js mp3파일을 업로드하는 bull Queue코드작성 app.module.ts redis에 저장 @Module({ imports: [ BullModule.forRoot({ redis: { host: 'localhost', port: 6379, }, }), AudioModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule {} audio.controller.ts import { InjectQueue }..

개발일지

Nest.js 초기설정

Nest.js 설치 nest.js를 글로벌환경에 설치하고 프로젝트 생성 CLI $ npm i -g @nestjs/cli $ nest new '생성하려는 프로젝트이름' Nest.js 실행 start:dev로 실행시 package.json에 기술된 스크립트에 --watch 옵션이 포함되어 있어서 코드 변경후 저장할때 마다 서버를 자동으로 다시 실행함 npm run start:dev Controller 생성 컨트롤러는 들어오는 요청을 받고 처리된 결과를 응답으로 돌려주는 인터페이스 역할 엔드포인트 라우팅 매커니즘을 통해 각 컨트롤러가 받을 수 있는 요청을 분류 nest g controller '이름' 보일러 플레이트 생성 '이름'에 해당하는 module, controller, service, entity, d..

index.ys
'nest' 태그의 글 목록