TypeScript

자바스크립트는 합성된 단어들에 대해 두 번째 단어부터 해당 단어의 첫 번째 글자를 대문자로 바꿔서 표기하는 카멜 케이스를 사용한다. 예를 들어서, helloZeetoHelloHelloZeetoHello 위처럼 두 번째 단어부터 첫 번째 글자를 대문자로 표기해준다. 이에 반해서, 파이썬이나 데이터베이스는 이어지는 단어 사이에 언더스코어(_)를 넣어주는 스네이크 케이스를 사용한다. 즉, 둘의 네이밍 전략은 다르기 때문에 자바스크립트를 사용하고자 한다면, 웬만해서 변수명 등을 카멜 케이스로 바꿔주는 것이 중요하다. 보통 ORM을 통해서 database의 raw 값에 접근하면, 프로퍼티 이름이 스네이크 케이스로 전달된다. 이때, 이는 자바스크립트의 네이밍 전략과 맞지 않으므로, 프로퍼티명을 카멜 케이스로 바꿔주..
종종 어플리케이션의 시작은 한 개 이상의 비동기 작업이 완료될 때까지 지연되어야 합니다. 예를 들어, 데이터베이스의 연결이 설립될 때까지 요청이 들어오는 것을 원치 않을 수 있습니다. 비동기 프로바이더를 사용하면 해결할 수 있습니다. 이에 대한 문법은 useFactory 문법과 함께 async/await를 사용하는 것입니다. 팩토리는 Promise를 반환하며 팩토리 함수는 비동기 작업을 await를 사용해 대기할 수 있습니다. Nest는 프로바이더에 의존 혹은 주입하는 모든 클래스의 인스턴스화 이전에 프로미스의 처리를 기다릴 수 있게 만들어 줍니다. { provide: 'ASYNC_CONNECTION', useFactory: async () => { const connection = await creat..
이전 챕터에서, DI의 다양한 측면과 Nest에서 이를 활용하는 방법을 다루었습니다. 생성자 기반 의존성 주입을 사용해 인스턴스를 클래스에 넣는 것이 그 예입니다. 지금까지 한 가지 주요한 패턴에 대해서만 알아봤습니다. 어플리케이션이 점점 복잡해질수록, DI 시스템의 모든 기능을 사용해야 합니다. 의존성 주입 기초 의존성 주입은 제어 역전(inversion of control, IoC) 기술입니다. 여기서 자체적으로 코드에서 수행하는 대신 의존성의 인스턴스화를 IoC 컨테이너(여기서는 NestJS의 런타임 시스템)에 위임합니다. 먼저, 프로바이더를 정의합니다. @Injectable() 데코레이터는 CatsService 클래스를 프로바이더로 지정합니다. import { Injectable } from '@..
커스텀 라우트 데코레이터 Nest는 데코레이터로 불리는 언어 기능으로 구축되었습니다. 데코레이터는 프로그래밍 언어에서 흔히 사용되는 잘 알려진 개념입니다. 그러나 자바스크립트 세계에서는 상대적으로 새롭습니다. 파라미터 데코레이터 Nest는 HTTP 라우트 핸들러와 함께 사용할 수 있는 유용한 파라미터 데코레이터를 제공합니다. 아래의 리스트는 데코레이터와 데코레이터가 표현하는 일반 Express 객체입니다. 더보기 @Request(), @Req() req @Response(), @Res() res @Next() next @Session() req.session @Param(param?: string) req.params / req.params[param] @Body(param?: string) req.bo..
턴태
'TypeScript' 태그의 글 목록