현업에서 내가 서버를 다룰 일은 아마? 없겠지만 하나 정도는 공부해보고 싶었다.
서버를 개발하기 위해 여러가지 언어, 프레임워크 선택지가 있지만, 여러곳에 쓰임새가 많은 자바스크립트와 타입스크립트 쪽을 생각했고 그중에서도 구조를 강제하는 NestJs가 맘에 들었다.
NestJS
NestJs는 Node.js 서버를 구축하기 위한 프레임워크다.
자바 스크립트와 타입 스크립트 전부 가능하며, Express를 기반으로 작동한다. (Fastify도 사용 가능)
컨트롤러,서비스의 묶음으로 이루어진 모듈들간의 상호작용을 통해 어플리케이션을 구성한다.
NestJS는 DI(의존성 주입) 와 Ioc(제어의 역전) 라는 개념을 사용하는데 아직 잘 와닿지가 않아서 나중에 따로 포스팅을 해볼 예정이다.
유니티에도 DI를 이용한 라이브러리인 Vcontainer와 Zenject가 있다.
설치 및 기본 정보
$ npm i -g @nestjs/cli
nestjs 의 cli를 깔아준다.
nest new newProject
그리고 새로운 프로젝트를 만들어준다.
cli를 통해 프로젝트를 만들면 기본적인 구조가 만들어져서 나온다.
루트 모듈인 app 모듈이 기본적으로 만들어져 있다.
Nest 어플리케이션의 인스턴트 생성은 NestFactory 클래스를 사용하며 @nestjs/core 에 들어있다.
package.json으로 들어가 dependencies를 구경해보면 기본적으로 5개가 깔려있다.
- @nestjs/common 은 우리가 사용할 대다수의 nestjs 기능들이 포함되어 있다.
- @nestjs/core 는 main.ts에 있는 NestFactory와 같이 핵심 코어가 포함되어 있다.
- @nestjs/platform-express는 express 사용을 위한 어댑터라고 보면된다. platform-fastify도 있다.
- reflect-metadata 는 데코레이터 관련 패키지이다.
- rxjs 는 Reactive Extensions for JavaScript 이며 옵저버 패턴으로 비동기 이벤트처리를 지원하는 라이브러리 이다.
유니티에도 unirx 와 그 업그레이드 버전인 r3가 있다.
서버 실행
기본적으로 깔린 AppController 에는 getHello가 있고, AppService의 getHello를 호출한다.
이제 서버를 시작해보자.
npm run start:dev
잘 실행 된다.
'서버 > NestJs' 카테고리의 다른 글
[NestJS] TypeORM 과 동적 모듈 (0) | 2024.10.24 |
---|---|
[NestJS] Interceptor (0) | 2024.10.24 |
[NestJs] 데코레이터,컨트롤러,서비스,모듈 (0) | 2024.10.23 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!