> Backend
-
009_TypeORM을 NestJS에 연결 - 1> Backend/NestJS 2022. 5. 27. 14:39
이번에는 TypeORM을 NestJS에 적용해보겠습니다. 우선, 새로운 프로젝트가 되나 Report와 User로 각각 저번처럼 하나씩 만들어줍니다. (나중에 여기에 추가할 예정) 코드를 작성하기전에, 우선 개념부터 잡아봅시다. TypeORM는 ORM 기술로, Entity Instance와 DB를 Mapping하여 DB를 편리하게 사용 할 수 있는 기능입니다. 기존 DB 같은 경우 [Select * From TableName Where name =1 ] 이런식이였으면, TypeORM을 사용하면, 객체.findOne({값}) 이런 식으로 작성 할 수 있습니다. TypeORM은 아래와 같이 다양한 DB에 적용가능합니다. RDBMS : MySQL / MariaDB / Postgres / SQLite / Micr..
-
007_NestJS_Service 와 Repository> Backend/NestJS 2022. 5. 18. 09:32
이번 장에는 Service와 Repository에 대해 이해해보겠습니다. 위의 사진을 보시면, Controller에서 Service로, Service에서 Repository로 이동되는 걸 알 수 있습니다. Service와 Repository의 차이를 보시면, 아래 표와 같은데, Service와 Repository의 가장 큰 차이는 Service는 비즈니스 로직을 수행하는 부분이고, Repository는 DB관련 로직을 수행한다는 점입니다. 쉽게 말하면, 일반적인 코딩을 Service에 & DB에 접속해서 정보를 가져오는건 Repository에 적으면 됩니다. 여기서 Repository는 Spring의 경우 DAO와 비슷한 역할을 한다고 생각하시면 됩니다. 차이점 더보기 https://bperhaps.t..
-
006_NestJS_Pipes를 활용한 Validation Check> Backend/NestJS 2022. 5. 16. 13:49
****** Pipe 진행 전, 접힌 글을 확인해주세요. 더보기 ======================================================================== 우선, import {Controller, Get,Post} 에 더해, import {Body, Param} from '@nestjs/common' 를 import합니다. 만약 들어오는 Request Body에 데이터를 넣어서 오는 경우 Body를, Param에 데이터를 넣어서 오는 경우는 Param를 활용하면 된다. createMessage의 경우 POST를 활용해서, @Body에 데이터를 넣어서 보내줄 예정이기에, 아래의 사진과 같이 설정한다. ====================================..
-
005_NestJS_NestJS CLI를 사용한 Controller 만들기> Backend/NestJS 2022. 5. 16. 13:42
이제는 Controller를 만들어보도록 하겠습니다. terminal에 "nest generate controller messages/messages --flat"를 입력해봅니다. 해당 명령어를 까보면, 아래와 같이 설명할 수 있다. 1. nest generate : 기본적인 생성 명령어 2. controller: nestcli를 사용해 만들 클라스 3. messages/... : messages폴더 안 4. messages/messages: messages 폴더 안에 messages라는 클라스를 만듦 5. --flat: controllers라는 디렉터리/폴더를 추가로 만들지 않는다. (안붙여도 되지만, 그렇게되면 추가적으로 controllers라는 폴더가 생성됨) 이제, Controller를 본격적으로..
-
004_NestJS_BasicSetup(using NestCLI)> Backend/NestJS 2022. 5. 16. 12:01
앞으로는 NestJS 프로젝트를 생성할 때, NestCli로 생성하겠습니다. 새로 만들 프로젝트 내 Terminal에서 npm install -g @nestjs/cli 를 통해 설치합니다. 이후 " nest new 프로젝트_이름 --skip-git"를 Terminal에 입력해 NestCLI를 통해 프로젝트 셋업을 진행하겠습니다. 저같은 경우는 nest new messages로 하겠습니다. 추가) 만약 git을 사용하신다면, 꼭 --skip-git 넣어주세요. 저같은 경우 하나의 git 디렉토리안에 하위 디렉토리를 넣는 방식인데, 해당 부분을 넣치않으면 git 디렉토리안에 또 다른 git 디렉토리가 생성되서 git이 꼬이게 되고, 상위 git 디렉토리에서 git add 해도 아무런 정보가 없다고 나옵니다...
-
003_NestJS_Scratch> Backend/NestJS 2022. 5. 16. 10:44
이제, 본격적으로 NestJS가 어떻게 작동하는지 확인해봅시다. 1.Pipe: Request에서 넘어져온 데이터가 Valid 한지, 유효성 검사 2. Gaurd: Authentication 확인, 로그인/토큰 등 검사 1번과 2번은 향후 다시 다루는 걸로 하겠습니다. 3. Controller: Request가 넘어져오면 해당 Request를 function 과 연결해주는 친구 4. Service: 기본적인 코딩 5. Repository: DB과 통신해주는 친구 4번, 5번 역시 향후 다시 다루는 걸로 하고, 3번 Controller부터 알아봅시다. Dextto님은 Controller에 대해 아래와 같이 설명하고 있습니다. "Nest의 컨트롤러는 MVC패턴에서 말하는 그 컨트롤러를 말합니다. 컨트롤러는 들..
-
002_NestJS_setup(without using NestCLI)> Backend/NestJS 2022. 5. 16. 10:41
NestJS를 쓰기 앞서, NestJS Initial Setup을 편리하게 해주는 NestCLI를 사용하지 않고, NestJS 베이직 scratch를 한번 만들어보려고 합니다. 우선, 프로젝트 페이지 내, npm init -y 를 통해 초기 틀을 만들어줍니다. 이후, 해당 프로젝트 파일로 이동하여 npm install @nestjs/common@7.6.17 @nestjs/core@7.6.17 @nestjs/platform-express@7.6.17 reflect-metadata@0.1.13 typescript@4.3.2 를 입력해줍니다. 이후, 파일내, package.json을 확인하면 아래와 같은데, 해당 내용 설명하겠습니다. 1. nestjs/common: 기본 NestJS 틀이라고 생각하시면 됩니다..
-
01_NestJS 소개> Backend/NestJS 2022. 5. 16. 10:14
작성 취지: 국비지원이 되는 학원에서 대부분 spring을 사용하는 경우가 많습니다. 저 역시 당시 국비지원 IT 학원에서 spring 및 boot를 사용하며 백엔드 프로그래밍을 배웠습니다. 물론 한국에서는 아직까지도 spring을 많이 사용하지만, 최근 프론트 및 백에서 javascript를 통해 백과 프론트 프로그래밍 하는 경우가 많아진거 같습니다. 기본적으로 NodeJS 기반으로 백엔드를 자유롭고 유연하게 설계하곤 하지만, 과도한 유연함으로 인해 많은 시간을 할애해야합니다. 이에 비해, NestJS는 NodeJS를 기반으로 둔 웹 프레임워크로 Spring의 특징과 같이 IoC, DI , AOP 와 같은 객체지향 개념과 주로 TS 를 사용하면서 SW의 품질에 대해 일정 부분 보장하고 있습니다. 아직 ..