본문 바로가기

Server-DB/Express

Node.js는 프레임워크인가 | Node.js에 대한 오해

Node.js는 JavaScript를 윈도우에서도 실행할 수 있게 해주는 것

다양한 웹프레임워크들이 존재한다. Python은 Django, Flask, 그리고 최근 대두되는 Fast API, Ruby의 Ruby on Rails, Java의 Spring 등등. 이와 동등한 위상으로 JavaScript에는 Node.js라는 웹프레임워크가 있는 것처럼 생각되어지곤 한다. 

 

그러나 엄밀히 이야기하면, Node.js는 웹프레임워크가 아니다. 정확히 이야기하면 JavaScript(Node.js)의 웹프레임워크는 Express, Nest.js라 할 수 있다. 모두가 익숙하듯이, JavaScript는 웹페이지를 동적으로 만들기 위해 만들어졌다. 그래서 이 JavaScript를 읽어내기 위해선 크롬과 같은 웹브라우저가 필요했다.

 

헌데 이 크롬에 탑재된, JavaScript를 읽어내기 위한 엔진이 성능이 뛰어나, 이 엔진을 톡 떼와서 만든 것이 Node.js다. 크롬의 V8엔진을 가지고, 이를 인터넷이 아니더라도, 사용할 수 있게 해주는 JavaScript 실행환경이 Node.js이다. 

 

그래서 Node.js를 다운받은 뒤, 윈도우 Powershell에서 node라는 명령어를 입력하면, 웹브라우저가 아니더라도, JavaScript를 이용할 수 있게 된다.

 

그러면 이제는 JavaScript를 윈도우 환경에서 사용할 수 있게됨에 따라, 이걸 가지고 프로그래밍을 할 수 있게 된다. 그래서 서버도 JavaScript로 만들 수 있게 되었는데, 이 때 사용하는 부품(도구)들이 Express와 Nest.js 같은 것들이다.

 

그래서 TypeScript라는 것도 사실은 다른 언어가 아니라 JavaScript에서 자료형을 조금 손본 것이기 때문에, 당연히 TypeScript로도 서버를 만들 수 있는 것이다.