캡스톤디자인(1)/공부

캡스톤디자인(1) - NestJS 공부 1

ludvbg (이지현) 2022. 10. 13. 21:28

컴퓨터공학과 5584977 이지현

캡스톤디자인(1) TEAM 우연한 인연

주제 - 우연한 발견 (위치 기반 SNS)

담당 - 백엔드 개발

프레임워크 - NestJS 사용

공부 - nomadcoders.co 강의 사이트

 

 

#0 INTRODUCTION

#0.1 NestJS란

NestJS에는 node.js를 포함하여 다른 node.js 프레임워크에서는 없는 구조를 가지고 있다.

NestJS의 문제이자 장점은 내가 하고 싶은대로 아무렇게나 할 수 있다. 예를 들어, url을 어디에 둘 지 내가 정할 수 있음

객체지향, 함수형, 함수 반응형 프로그램 일부의 요소를 사용한다.

 

#0.2 NestJS로 개발하기 위하여 설치해야 할 것

- node.js

- Visual Studio Code

- insomnia core (Rest api 빌드용)

   insomnia는 Rest의 client

 

#0.3 Project Setup

- @nestjs/cli 설치 (npm 추천)

$ npm i -g @nestjs/cli

$ nest new

 

[nest new -> 파일 이름 설정] 하면 설치 완료

Visual Studio Code의 terminal을 통해 github와 연결

 

파일 이름과 github repository를 강의와 동일하게 hi-nest로 설정하였다.

 

 

#1 ARCHITECTURE OF NESTJS

 

#1.1 Overview

main.ts부터 살펴보면서 localhost:3000에서 hello world가 뜨는 과정을 탐색

 

- npm run start:dev를 통해 npm을 실행해주고 localhost:3000으로 웹 접속

접속해서 확인한 모습

 

#1.2 Controllers

@Module({}) : '데코레이터'라고 부름.

 

Decorator(데코레이터)

- 클래스에 함수 기능을 추가할 수 있기 때문에 NestJS를 쓸 때 아주 강력한 기능이다.

- 클래스 위의 함수이고, 클래스를 위하여 움직인다.

- 아이스크림에 초콜릿 칩을 뿌리는 그런 것

 

 

NestJS는 main.ts에서 시작 -> 하나의 모듈에서 어플리케이션을 생성

AppModule은 모든 것의 root module이라고 생각하면 된다.

 

모듈 : 어플리케이션의 일부분 (하나의 모듈은 한 가지 역할을 하는 앱)

ex) 인스타그램에서 photo 모듈, video 모듈이 있을 수 있음

 

controllers : express의 라우터와 같은 역할. url을 가져오고 함수를 실행하는 역할을 한다.

 

 

app.controllers.ts

@Get() 데코레이터의 ()에 url을 연결할 수 있고, url에 접속했을 때 실행할 함수를 아래에 정의해준다.

@Get("/hello")를 통해 localhost:3000/hello로 접속하면 'Hello everyone'이 나타나도록 하였다.

(@Post를 사용하면 url 접속 불가)

 

주의할 점 : 데코레이터와 함수 사이를 띄우지 말것!

 

@Decorator

function(): type {}

 

위의 형식대로 작성해야 한다.