Orders 관련 서비스 작성 1. Controller API Endpoint 추가 주문을 생성하는 API를 설계하도록 하겠습니다. 먼저 Controller에 Endpoint를 설정해줍니다. 단순하게 설정할 것이므로 경로는 루트 경로를 따르겠습니다. POST와 PATCH, PUT 등은 바디를 파라미터로 사용해야 합니다. 그렇기 때문에 DTO도 설정해줍니다. 바디와 같이 데이터가 서버로 요청이 올 때는 데이터를 외부에 호출시키지 않고 숨긴 상태로 전달하는 것이 좋습니다. 그래서 데이터 전송 객체(Data Transfer Object, DTO)가 사용됩니다. 완성된 코드는 아래와 같습니다. // orders.controller.ts @Post() async createOrder(@Body() request:..
Node.js/NestJS
MongoDB 추가 몽고디비를 사용하여 데이터를 지속적으로 보관할 수 있도록 하겠습니다. 우리의 애플리케이션의 경우는 유저가 생성하는 orders를 보관하기 위해 사용합니다. 강좌에서는 이전에 작성한 코드를 그대로 복사 붙여넣기해서, 일단 파일에 어떤 코드가 작성되었는지를 먼저 보겠습니다. MongoDB 관련해서 abstract.repository.ts, abstract.schema.ts, database.module.ts 총 세 개의 파일을 추가할 예정입니다. 1. database.module.ts import { Module } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { MongooseModule } ..
마이크로 서비스란? aws - 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스 redhat - 마이크로서비스란 소프트웨어를 구축하기 위한 아키텍처이자 하나의 접근 방식으로, 애플리케이션을 상호 독립적인 최소 구성 요소로 분할합니다. 마이크로서비스에서는 모든 요소가 독립적이며 연동되어 동일한 태스크를 완수합니다. 위의 정의에서 볼 수 있듯이, 마이크로서비스는 기존의 모든 것을 하나로 통합하는 모놀리식 아키텍처와 달리 애플리케이션을 구성하는 서비스들이 서로 독립한 상태로 존재하는 것을 마이크로서비스라고 하며, 이 마이크로 서비스들을 종합적으로 사용하는 인프라 구조를 마이크로서비스 아키텍처라고 하며 이렇게 설계되는 애플리케이션을 마이크로서비스 애플리케이션 이하 MSA라고 부릅니다. 마이..
캐싱 캐싱은 어플리케이션의 수행 속도를 향상시키는 데에 큰 도움을 주는 간단하지만 강력한 기술입니다. 이는 일시적인 저장소 역할을 하며, 고성능 데이터 접근을 제공합니다. 프로젝트 생성 먼저 실습할 프로젝트 폴더를 하나 생성합니다. 저는 nestjs-cache로 명명했습니다. 해당 폴더에서 nest cli를 사용하여 새로운 프로젝트를 생성합니다. 사이드 프로젝트에서 패키지 매니저를 yarn으로 쓰고 있어서 yarn을 선택했습니다. 패키지 설치 캐싱에 필요한 패키지를 설치해줍니다. 먼저 cache-manager를 설치합니다. yarn add cache-manager # npm i cache-manager 그후에는 타입을 지정하기 위해 @types/cache-manager를 설치합니다. yarn add -D..