NestJS 란,
NestJS는 서버 측 Node.js 애플리케이션을 구축하기 위한 프레임워크이다.
대부분 TypeScript로 구성되어 있다. - JavaScript도 존재한다고 함.
# NestJS 특징
Nest는 Express와 같은 HTTP 서버 프레임 워크를 내장하고 있다.
Express란, Node.js를 위한 웹 프레임워크이다.
# Node.js와 Express의 차이점
Node.js와 다른점은, Express 위에 NestJS가 구동되고 있기에,
API를 개발자에게 직접노출한다는 점이다. - Express내의 타사 모듈(API)을 직접 접근이 가능? 하다고 함
NestJS의 철학
Nest는 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고
유지 관리가 쉬운 애플리케이션을 만들 수 있는, 즉시 사용 가능한 애플리케이션 아키텍처를 제공한다.
- NestJS의 아키텍처는 Angular에서 영감을 받았다고 함
NestJS 공식문서
자 그럼, NestJS에 대해 기본을 알아보았으니,
한번 직접 사용해보면서 익혀보도록 하겠다.
우선 오늘의 포스팅은 NestJS 공부를 위한 NestJS 개발환경 셋팅을 진행할 것이다.
NestJS 개발환경 셋팅
해당 포스팅은 온앤오프의 새로운 백엔드 개발 스택인 NestJS를 공부하기 위해
NestJS 개발환경 셋팅하는 방법을 순차적으로 진행한 포스팅이다.
Node.js 설치하기
우선, 아래의 사이트에서 Node.js를 설치하자
NestJS CLI 설치하기
아래 명령으로 NestJs CLI를 설치한다.
$ npm i -g @nestjs/cli
에러가 떳다
에러의 원인은 아래 터미널 에러문구를 보면 알다시피,
터미널 권한 에러이다. 터미널 일반 유저로 nestjs CLI를 설치하지 못한다.
sudo로 슈퍼유저 권한을 주어 nestjs CLI 설치를 진행한다.
$ sudo npm i -g @nestjs/cli
그럼, 성공적으로 NestJS CLI를 설치완료!
이젠 설치한 NestJs CLI를 통해 NestJS 프로젝트를 생성해보자.
NestJS 프로젝트 생성 - NestJS CLI
우선, NestJS 프로젝트를 저장해둘 위치로 이동한다.
나는 Desktop에 저장해둘 것이기에, Desktop으로 이동했다.
$ cd Desktop
아래 명령을 통해 NestJS 프로젝트를 생성한다.
$ nest new {nestJS 프로젝트 폴더명}
그러면, 이전에 설치한 NestJS CLI가 자동으로 NestJS 개발 프로젝트 폴더를 생성해준다.
# NestJS 개발환경 셋팅 끝 & 리뷰
그리고, NestJS 프로젝트를 생성한 바탕화면으로 가서, NestJS 프로젝트를 vscode로 열어보면,
자동으로 node_modules가 불러와 있고,
백엔드 API 개발을 위한 아키텍처 파일 (Controller, Service 등등) 이 생성되어져있다.
그리고, Test폴더가 있고, 개발을 시작하기 전 DB와 연결이 잘 되었는지 테스팅하기 위한 API Testing 코드가 구현되어져 있다.
그리고, 앞에서 말했다시피 NestJS는 Express 웹 프레임워크를 내장하고 있기에 별도의 Express를 불러오는 작업이 필요없다.
아마 Express 라우팅 설정을 생략해도 되는 것 같다 - 이 부분에 대해선 NestJS를 처음공부하기에, 더 많이 다뤄보고 다시 포스팅 하겠다.
Node.js는 Express 설정을 별도로 해줘야하고, 이에 따른 API 라우팅작업까지 별도로 설정을 해줘야된다.
그럼, 위와 같이 NestJS 개발 프로젝트 폴더가 불러와졌다면,
NestJS로 API를 개발을 위한 기초적인 개발환경 셋팅은 끝났다고 보면된다.
로컬 DB와 연동하는 법과 RDS 연동하는 법에 대해선, 더 공부하고 포스팅하겠다.
NestJS 개발환경 셋팅 끝 & 정리 및 느낀점
NestJS 개발환경 셋팅은 NestJS CLI를 설치하고,
NestJS CLI를 통해 NestJS 개발 프로젝트를 생성해줬다.
생성한 NestJS 개발프로젝트 폴더는 API 개발을 바로 할 수 있게 기본적인 아키텍처를 생성되어있었고, DB 연동 테스트를 위한 Testing 코드까지 구현되어 있었다.
NestJS 개발환경 셋팅을 하면서 느낀점은,
백엔드 개발환경 셋팅을 이렇게 쉽게 해주는 언어가 있구나라는 새로운 통찰을 하게 되었고,
Nest 자체에서 아키텍처를 제공하고, 이에 따라 API를 개발을 하면되니, 먼가모를 마음편함이 생겼다 ㅋㅋ
하지만, 개발 상황에 따라 아키텍처를 변경할 수도 있다는 점은 이해하기 - 완벽한 아키텍처는 없다.
여름방학 때 Node.js 개발환경을 셋팅하는데 조금 어려워서 NestJS 개발환경 셋팅하는 게 어려울 줄 알았지만,
NestJS는 Express를 내장하고, 아키텍처를 고정적으로 제공하고 있기에 훨씬 더 쉽게
백엔드 API 개발환경을 셋팅할 수 있어서 신박하고 재미있었다. - 백엔드 개발환경 셋팅은 어려워! 라는 생각을 씻겨준 좋은 경험이었다
앞으로의 계획
오늘은, 중간시험 이틀전이지만... ㅎ
온앤오프의 새로운 백엔드 개발스택인 NestJS를 미리 공부할 준비를 해두고 싶어서
NestJS 개발환경 셋팅을 해보았다!
온앤오프 추가 기획란이 11월 1일에 완료되어 그때부터 개발을 시작하기에,, 언능 새로운 개발스택인
NestJS를 배워서 온앤오프 API 개발을 시작해야된다.
그래서, 나는 시험이 끝나는 순간 바로, NestJS 공부를 시작할 것이고,
공부를 하면서 새롭게 배운 NestJS 지식을 이어서 포스팅할 것이다.
Nest 공부는 10/27 ~ 10/29 동안 3일간 밤새면서? 진행해볼 예정이고,
3일간 CRUD API를 구현하는 방법을 터득할 것이다.
NestJS 학습은 아래 유튜브를 통해서 진행할 것이다.
NestJS는 로컬 DB를 지원하는 것 같기에, 우선 로컬 DB를 활용해 CRUD API 개발을 해보고,
그 다음에 AWS RDS를 연동해서 CRUD API 개발을 진행할 것이다.
3일이 짧지만, 여름방학 때 API 개발해본 경험과 최근에 배운 개발 스킬들을 총동원해서 3일동안 NestJS를 숙달해볼 예정이다!
그럼, 10/27일 중간시험이 끝나는 날에 새로운 NestJs 포스팅이 올라오길...ㅎㅎ 기다리며
오늘의 NestJS 개발환경 셋팅 포스팅을 마치도록 하겠다.
셤 공부하러 이만..ㅠ
'📚 스터디 > 백엔드' 카테고리의 다른 글
[개인 스터디] NestJS 정복하기 #02 - NestJS | src 폴더 로직알아보기 (0) | 2022.10.27 |
---|---|
[개인 스터디] NestJS 정복하기 #01 - NestJS 템플릿의 이해 (0) | 2022.10.27 |
[Node.js] 10주차: 로그인 구현 (0) | 2022.07.25 |
[Node.js] 9주차: POST, PATCH, DELETE Method 사용 (0) | 2022.07.21 |
[Github] 수정한 파일을 Git에 업로드 (git add, git status, git commit, git push// git pull) & AWS EC2에 수정한 파일 pull (0) | 2022.07.20 |