TypeORM (Object Relational Mapping) TypeOrm 은 Node.js에서 사용하는 orm 라이브러리이며,orm은 데이터베이스와 객체 지향 프로그래밍간의 매핑을 도와주는 도구이다. 다양한 데이터베이스를 지원하고, Entity 클래스를 통해 쉽게 테이블을 정의하고 관리가 가능하다. import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';@Entity()export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() email: string;} 이런식으로 엔티티 클래스를 만들어서 연결하면 테이블을 알아서 만들어준다..
인터 셉터 NestJs에는 인터셉터라는것이 있다.처음에는 미들웨어의 다른 용어라고 생각했는데 미들웨어는 따로 있다.미들웨어와 비슷해보이지만 그림 처럼 요청이 핸들러로 들어가기 전에 요청을 가로채거나,응답하기 전에 가로채서 변형이 가능하다. Nest의 생명주기에서 미들웨어가 가장 먼저 실행되기 때문에 요청 부분은 미들웨어를 쓰지 않을까,응답할때 응답을 변형하거나 로그를 찍는등의 역할을 하면 좋겠다 정도의 생각만 들었다.아직 이 인터셉터라는 개념의 유용함과 편리함에 대해 느껴보지 못해서 정확히는 감이 안잡힌다. 인터셉터 만들어보기import { CallHandler, ExecutionContext, NestInterceptor } from "@nestjs/common";import { map, Observ..
데코레이터NestJs에서 중요한 개념이고 다양한 기능들이 데코레이터로 제공된다.클래스나 속성,메서드,매개변수에 추가 기능을 쉽게 적용할 수 있도록 도와주는 문법이다.NestJs에서는 데코레이터를 통해 메타데이터를 추가하거나 특정 동작을 부여한다. C#의 어트리부트와 비슷하고 C#에서는 대괄호 안에 넣는데, 자바스크립트는 @를 앞에 붙여서 사용한다. 아래 코드를 보면 AppController 클래스는 @Controller 데코레이터를 통해 해당 클래스가 컨트롤러 임을 알리고,@Get 데코레이터를 통해 해당 함수가 Get Http 요청을 처리해야하는 함수인지를 알린다.@Controller()export class AppController { constructor(private readonly appServ..
현업에서 내가 서버를 다룰 일은 아마? 없겠지만 하나 정도는 공부해보고 싶었다. 서버를 개발하기 위해 여러가지 언어, 프레임워크 선택지가 있지만, 여러곳에 쓰임새가 많은 자바스크립트와 타입스크립트 쪽을 생각했고 그중에서도 구조를 강제하는 NestJs가 맘에 들었다. NestJS NestJs는 Node.js 서버를 구축하기 위한 프레임워크다.자바 스크립트와 타입 스크립트 전부 가능하며, Express를 기반으로 작동한다. (Fastify도 사용 가능)컨트롤러,서비스의 묶음으로 이루어진 모듈들간의 상호작용을 통해 어플리케이션을 구성한다. NestJS는 DI(의존성 주입) 와 Ioc(제어의 역전) 라는 개념을 사용하는데 아직 잘 와닿지가 않아서 나중에 따로 포스팅을 해볼 예정이다. 유니티에도 DI를 이용한 ..