본문 바로가기

전체 글

(133)
Nest.js - 예외 필터 예외 필터 Nest에는 애플리케이션 전체에서 처리되지 않은 모든 예외를 처리하는 예외 레이어 가 내장되어 있습니다. 애플리케이션 코드에서 예외를 처리하지 않으면 이 계층에서 예외를 포착한 다음 자동으로 적절한 사용자 친화적인 응답을 보냅니다. 표준 예외 던지기 Nest는 패키지 HttpException에서 노출되는 내장 클래스를 제공합니다. @nestjs/common일반적인 HTTP REST/GraphQL API 기반 응용 프로그램의 경우 특정 오류 조건이 발생할 때 표준 HTTP 응답 개체를 보내는 것이 가장 좋습니다. 예를 들어, CatsController에는 findAll()메소드( GET라우트 핸들러)가 있습니다. 이 라우트 핸들러가 어떤 이유로 예외를 던졌다고 가정해 봅시다. 이를 시연하기 위해..
Nest.js - 미들웨어 미들웨어 미들웨어는 라우트 핸들러전에 호출되는 함수입니다 . 미들웨어 기능은 요청 및 응답 개체에 대한 액세스 권한이 next()있으며 애플리케이션의 요청-응답 주기에 있는 미들웨어 기능입니다. 다음 미들웨어 기능은 일반적으로 라는 변수로 표시 됩니다 미들웨어 기능은 다음 작업을 수행할 수 있습니다. 모든 코드를 실행합니다. 요청 및 응답 개체를 변경합니다. 요청-응답 주기를 종료합니다. 스택의 다음 미들웨어 함수를 호출합니다. 현재 미들웨어 함수가 요청-응답 주기를 종료하지 않으면 next()다음 미들웨어 함수에 제어를 전달하기 위해 호출해야 합니다. 그렇지 않으면 요청이 중단됩니다. 다음 명령어를 통해 미들웨어를 생성 할 수 있다. nest g middleware -name import { Injec..
Nest.js - 모듈 모듈 @Module()모듈은 데코레이터 로 주석이 달린 클래스 입니다. 데코레이터는 Nest 가 애플리케이션 구조를 구성하는 데 사용하는 메타 @Module()데이터를 제공합니다 . 각 애플리케이션에는 최소한 하나의 모듈인 루트 모듈 이 있습니다. 루트 모듈은 Nest가 애플리케이션 그래프 를 빌드하는 데 사용하는 시작점입니다. Nest가 모듈과 공급자 관계 및 종속성을 해결하는 데 사용하는 내부 데이터 구조입니다. 아주 작은 응용 프로그램에는 이론적으로 루트 모듈만 있을 수 있지만 일반적인 경우는 아닙니다. 구성 요소를 구성하는 효과적인 방법으로 모듈을 사용 하는 것이 좋습니다. 따라서 대부분의 응용 프로그램에서 결과 아키텍처는 각각 밀접하게 관련된 기능 집합을 캡슐화하는 여러 모듈을 사용 합니다 . ..
Nest.js - Providers 공급자 공급자는 Nest의 기본 개념입니다. 기본 Nest 클래스의 대부분은 서비스, 리포지토리, 팩토리, 도우미 등 공급자로 취급될 수 있습니다. 공급자의 주요 아이디어 는 종속성 으로 주입 될 수 있다는 것입니다 . 즉, 개체는 서로 다양한 관계를 생성할 수 있으며 개체의 인스턴스를 "연결"하는 기능은 대부분 Nest 런타임 시스템에 위임될 수 있습니다. import { Injectable } from '@nestjs/common'; @Injectable() //Nest IoC 컨테이너 에서 관리할 수 있는 클래스임을 선언 export class AppService { getHello(): string { return 'Hello World!'; } } @Injectable()을 통해 nest Ioc..
Nest js - 개발 환경 셋팅 & Controller node.js(12이상의 버전
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. 이와같이 npm 관련된걸 실행할때 마다 npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. 이라는 문구가 나타나게 되었고 해결하기 위해 아래와 같은 순서로 진행하였다. 1. Windows PowerShell 관리자 권한으로 실행 2. Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force 입력 후 엔터 3. npm-windows-upgrade 입력 후 엔터 4. 버전 화살표키로 선택 후 엔터 결과
TypeScript - 타입 별칭 타입 별칭은 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미합니다. 예를 들면 아래와 같습니다. // string 타입을 사용할 때 const name: string = 'capt'; // 타입 별칭을 사용할 때 type MyName = string; const name: MyName = 'capt'; 위와 같이 string, number와 같은 간단한 타입 뿐만 아니라 interface 레벨의 복잡한 타입에도 별칭을 부여할 수 있습니다. 아래 코드와 같이 말이죠. type Developer = { name: string; skill: string; } 타입 별칭에 제네릭도 사용할 수 있습니다. type User = { name: T } type vs interface 타입 별칭과 인터페이스..
TypeScript - 타입 호환 타입 호환이란 타입스크립트 코드에서 특정 타입이 다른 타입에 잘 맞는지를 의미합니다. 예를 들면 아래와 같은 코드를 의미합니다. interface Ironman { name: string; } class Avengers { name: string; } let i: Ironman; i = new Avengers(); // OK, because of structural typing C#이나 Java였다면 위 코드에서 에러가 날겁니다. 왜냐하면 Avengers 클래스가 명시적으로 Ironman 인터페이스를 상속받아 구현하지 않았기 때문입니다. 하지만 위와 같은 코드가 타입스크립트에서 정상적으로 동작하는 이유는 자바스크립트의 작동 방식과 관련이 있습니다. 기본적으로 자바스크립트는 객체 리터럴이나 익명 함수 등을..