Nest JS

정민준·2022년 5월 31일
0

NestJS

NestJS는 Node.js에 기반을 둔 웹 API 프레임워크로써 Express 또는 Fastify 프레임워크를 래핑하여 동작합니다. 기본으로 설치하면 Express를 사용합니다. Node.js는 손쉽게 사용할 수 있고 뛰어난 확장성을 가지고 있지만, 과도한 유연함으로 인해 SW의 품질이 일정하지 않고 알맞은 라이브러리를 찾기 위해 사용자가 많은 시간을 할애해야 합니다. 이에 반해 NestJS는 데이터베이스, ORM, 설정(Configuration), 유효성 검사 등 수많은 기능을 기본 제공하고 있습니다. 그러면서도 필요한 라이브러리를 쉽게 설치하여 기능을 확장할 수 있는 Node.js 장점은 그대로 가지고 있습니다. NestJS는 Angular로부터 영향을 많이 받았습니다. 모듈/컴포넌트 기반으로 프로그램을 작성함으로써 재사용성을 높여줍니다. IoC(Inversion of Control, 제어역전), DI(Dependency Injection, 의존성 주입), AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)와 같은 객체지향 개념을 도입하였습니다. 프로그래밍 언어는 타입스크립트를 기본으로 채택하고 있어 타입스크립트가 가진 타입시스템의 장점을 누릴 수 있습니다.

NestJS는 국내에서도 점점 인기를 얻고 있고 모두싸인과 당근마켓 등 여러 회사에서 적용되어 사용자가 늘고 있습니다. 이 책을 통해 NestJS의 핵심 기능과 원리를 쉽게 배우고 더 나은 웹 개발 환경을 구축할 수 있는 방법을 소개하고자 합니다. 백엔드 개발을 처음 접하는 사람도 쉽게 따라하면서 백엔드에 필요한 기술들을 습득할 수 있도록 하였습니다.

NestJS 폴더 구조

NestJS를 통해 폴더를 생성할 경우 만들어지는 기본 파일입니다.
먼저 package.json의 경우는 프로젝트의 설명서라고 생각면 좋습니다.
app.controller.spec.ts와 test폴더의 경우는 테스트와 관련되어있으며, prettierrc.eslintrc.js의 경우는 코드를 규칙적으로 작성할 수 있도록 해주는 설정 파일입니다.
src 폴드 안에는 app.controller.ts은 기본적인 컨트롤러입니다. app.module.ts에서는 앱에서 사용하게될 모듈을 설정하는 역할을 해줍니다. app.service.ts에는 비지니스 로직이 저장됩니다.
이러한 구조를 하고 있기때문에 한 서비스의 구동방식이 변경되어야 할때 app.service.ts에서만 변경해주면 됩니다. 또한 이러한 구조로 인해 다른 곳에서도 동일한 로직이 필요한 경우 app.service.ts에서 가져와 사용하는 방식또한 가능합니다.
이러한 객체 지향적인 설계로 인해 더더욱 확장에 용이하고 효율성이 좋은 앱을 만들 수 있습니다.

profile
머리 박고 개발공부중,,,

0개의 댓글