최근 Nest.JS를 이용해서 개발을 진행하면서 이전에 사용하던 Spring과는 어떤 차이점이 있을지 궁금증이 생겨 학습하고 내용을 정리해보았다.
JAVA VS Typescript(Node.JS)
프레임워크의 차이를 작성하기 앞서 언어적인 특징을 먼저 알아보고 가보자
| Java | Typesript(Node.js) |
|---|
| Thread | Multi | Single |
| I/O 타입 | Blocking | Non Blocking |
Java의 코드 실행 구조

Node.JS의 시스템 구조도

Nest.JS의 특징

Node.js 기반의 프레임워크이다
- 싱글 스레드의 non-blocking I/O 이벤트 기반 비동기 방식으로 작동한다.
- 싱글스레드이기 때문에 메모리를 많이 사용하지 않는다
- JavaScript 엔진(V8 Engine)으로 빌드된 JavaScript 런타임이다.
- c++로 개발된 V8 JavasScript Engine이기 때문에 확장성이 좋다.
- 개발속도 향상이 가능하다.
- JavaScript를 사용하면 JSON 데이터 다루기가 용이하다.
Spring의 특징
- 경량 컨테이너로서 자바객체를 직접 관리한다.객체의 생명주기를 관리해준다.
- 멀티스레드 환경이기 때문에 메모리를 많이 사용한다.
- 복잡한 연산에 효율적이다