일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- It
- javascript
- spring boot
- 조건문
- state
- Sequelize
- java
- AWS
- 자바
- Producer
- swagger
- restful api
- node.js
- Kotlin
- 개발자
- component
- 반복문
- 상속
- back-end
- props
- class
- Nest.js
- kafka
- 개발이 취미인 사람
- react
- front-end
- 코틀린
- file upload
- SWIFT
- vue
- Today
- Total
개발이 취미인 사람
[Nest.js] Nest.js 개념 및 프로젝트 생성 본문
- 개요
안녕하세요. 이번 시간에는 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/
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에 대해 알아봤습니다. 꼭 개인적으로 프로젝트를 생성해보시는 걸 추천드리겠습니다.
'백앤드(Back-End) > Nest.js' 카테고리의 다른 글
[Nest.js] Nest.js API 만들기 (4) - 미들웨어(Middleware) (0) | 2021.11.11 |
---|---|
[Nest.js] Nest.js API 만들기 (3) - DTO(Data Transfer Object) & 유효성 검사(Validation Check) & Pipes (1) | 2021.11.10 |
[Nest.js] Nest.js API 만들기 (2) - Handler(@Get, @Post ...) (0) | 2021.11.09 |
[Nest.js] Nest.js API 만들기 (1) - Controller, Service, Provider (0) | 2021.11.07 |
[Nest.js] Nest.js 기본 구조 분석하기 (0) | 2021.11.06 |