NodeJS에서 Nest란 무엇이고, 왜 탄생하게 되었을까?

Nest(NestJS)란?

효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다. Nest로 작성한 소스코드를 Node.js 기반 프레임워크인 Express 및 Fastify로 동작합니다.

Nest가 탄생하게 된 이유

Node.js는 2009년에 릴리즈되었습니다. Node.js의 등장으로 자바스크립트를 이용하여 서버를 구동할 수 있게 되었습니다. 기존에는 Node.js와 express를 사용해 웹 서버를 구축하고 서비스를 만들었습니다. 익스프레스를 사용해 서버를 구축할 때의 문제점은 디렉터리 구조입니다.

router > controller > service 디렉터리 구조로 만들어서 유저의 요청을 전달되도록 했습니다. 문제는 익스프레스를 사용하는 모든 사람들이 이런 구조에 따른 아키텍처 문제를 고민해야 하기 때문입니다. 코드 작성자 이외의 사람들이 코드를 읽을 때에는 불편함이 있습니다. Nest.js는 이러한 문제를 해결한 웹 서버 프레임워크입니다. 서버 개발 시의 아키텍처를 누구든 비슷하게 설계하도록 아키텍처 문제를 해결하는 데 중점을 두고 있습니다.

Nest에서 decorator, AppModule, Cotroller, AppService

decorator를 활용하면 클래스의 프로퍼티나 메소드의 값을 바꾸는 것 뿐만 아니라 메소드 실행 전후로 추가적인 코드를 실행하거나, 코드를 수정하지 않고 기능을 확장할 수 있습니다.

AppModule은 모든 것의 루트 모듈입니다. 다른 모든 모듈을 가져오는 역할을 합니다.

Cotroller의 역할은 URL의 요청을 받아 함수를 실행합니다.

AppService는 비지니스 로직을 처리합니다. 그리고 DB, 컨트롤러에 접근할 수 있습니다.

Cotroller와 Service의 함수에는 동일한 이름을 가질 수 없습니다.

References

https://yozm.wishket.com/magazine/detail/2215/

https://docs.nestjs.com/controllers/


[dowonkim97]
✏️ [Problem Solving Note] 배운 내용을 문서화하는 공간입니다.