개발이 취미인 사람

[Nest.js] Nest.js 개념 및 프로젝트 생성 본문

백앤드(Back-End)/Nest.js

[Nest.js] Nest.js 개념 및 프로젝트 생성

RyanSin 2021. 11. 6. 01:06
반응형

- 개요

안녕하세요. 이번 시간에는 Nest.js 개념 및 프로젝트를 생성해 보는 시간을 가져보겠습니다.

 

- Nest.js 개념

Nest.js 프레임워크가 무엇일까요? 저는 처음에 Next.js(React 프레임워크)로 착각했습니다. (발음이 비슷해서... 그런 것 같아요 허허...)

 

Nest.js 프레임워크는 우리가 사용하던 Node.js 런타임 환경에 구조적으로 애플리케이션 개발할 수 있게 도와주는 프레임워크입니다. Node.js 환경에서 Express나 Koa 등 여러 프레임워크를 사용해서 개발해 보셨을 거라 생각합니다.

 

Express와 Koa로 개발 시 기본적인 뼈대가 주어지지 않습니다. (1인 개발자가 개발을 한다면 문제가 없겠지만... 많은 개발자와 협업을 한다면... 나중에 문제가 발생할 확률이 높습니다.)

 

만약 회사에 3명에 개발자가 있다고 가정해보겠습니다. (2명의 개발자는 기존에 있던 개발자 + 1명의 개발자는 새로 입사한 개발자)

 

2명의 개발자는 클라이언트 API 서버 및 관리자 API 개발을 나눠서 개발한 상황입니다. 새로 입사한 개발자는 인수인계를 받는 과정에서

 

두 프로젝트가 같으면서도... 다르다는 걸 점점 느낍니다... 아직 초반이라 심각하다고 생각하지는 않지만 확실한 건 "각 개발자의 스타일이 느껴진 부분이었습니다."

 

또한 이러한 부분은 협업 또는 유지 보수하는 부분에 있어서 많은 시간과 문제가 발생할 수 있다는 걸 알 수 있습니다.

 

저의 약간에 경험을 말하면 15년 차 개발자분께서 만들어 놓으신 구조와 10년 차 개발자분께서 만드신 구조가 서로 달라서... 힘들었던 적이 있었습니다. ㅠㅠ 이러면서 협력 업체를 관리하면서 또 다른 구조를 보며... 세상에 이렇게나 구조가 많다니... (눈물... ㅠㅠ)

 

Nest.js는 Angular 아키텍처에 크게 영감을 받았다고 나와있습니다. 기본적으로 MVC 디자인 패턴을 활용해서 개발하며, OOP(객체 지향 프로그램)을 결합해서 개발할 수 있기 때문에 유지보수와 협업에 있어서 여러 장점이 있다고 생각합니다.

 

- 설치

Node.js 설치

Node.js 설치하는 방법은 운영체제에 맞게 공식홈페이지에서 다운로드 받으시면 됩니다.

https://nodejs.org/ko/download/

 

다운로드 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

Nset CLI
#npm
sudo npm i -g @nestjs/cli
nest new project-name

#yarn
sudo yarn global add @nestjs/cli
nest new project-name

 

위 명령어를 실행하면 어떤 패키지 모듈로 설치할 것인지 질문이 나옵니다.

 

3가지 패키지 중 하나를 선택하면 프로젝트가 생성이 됩니다.

 

프로젝트 생성

 

프로젝트 구조

이번 시간에는 Nest.js에 대해 알아봤습니다. 꼭 개인적으로 프로젝트를 생성해보시는 걸 추천드리겠습니다.