[Node.js] Node.js 설치

·2023년 1월 27일
0

⚡ Node.js 란?


Node.js는 공식문서에 따르면 Chrome V8 자바스크립트 엔진으로 빌드 된 자바스크립트 런타임이라고 한다. 런타임은 실행 환경이라 이해할 수 있다.

확장성 있는 네트워크 애플리케이션(서버 사이드) 개발에 사용되고 있는 소프트웨어 플랫폼으로 자바스크립트를 사용하는 논블로킹(Non-Blocking) I/O와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 갖고 있다고 하는데 특히 내장 HTTP 서버 라이브러리를 포함하고 있어서 웹 서버에서는 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이로인해 웹 서버의 동작에 있어 더 많은 통제를 가능하게 한다고 한다.

그렇지만 이게 정확하게 무슨 말인지 필자도 한번에 이해 못해서 생각을 간단하게 축약하자면

  • 자바스크립트를 서버에서 사용하게 되는 프로그램
  • 프로그래밍 언어라기보단 JS 언어를 이용한 프로그램
  • 웹 서버에서 확장성 있는 네트워크 앱 개발을 위해 사용

정도인 것같다. 어떤 친구인지 대충 인식이 되었다면 공식 문서에 기재되어 있는 내용을 하나씩 뜯어보자.


⚡ 자바스크립트 런타임?


자바스크립트 엔진으로 빌드 된 런타임이라고 하는데 이게 무슨 소리인가? 기본적으로 자바스크립트는 웹 브라우저 프로그램 안에서 동작하는 언어이다. 그런데 이 스크립트 언어를 웹 브라우저가 아닌 곳에서 쓸 수 있다면? 여기서 탄생한게 Node.JS다.

강력한 V8이라는 엔진으로 빌드된 Node는 웹 뿐만 아니라 웹 밖에서도 자바스크립트를 실행 가능케한다.

가령 JS파일을 구동하려고 한다면 웹 브라우저를 켜야만 구동값을 확인 할 수 있다. 그런데 이런점을 극복한 Node는 브라우저가 없이도 우리가 짠 JS코드를 실행시킬 수 있게 해준다. 예를 들면 내가 코드를 짠 vscode위에서 구동값을 실행시킬수 있다는 말이다.


⚡ 논블로킹(Non-blocking)I/O 그게 뭐야?


요청을 전부 한번에 받은 후, 처리 속도가 빠른 것부터 처리하고 이 이후에 오래 걸리는 요청을 처리한다. 즉 요청 순서에 따라 일 처리가 되는 게 아니라, 처리 속도가 빨리 되는 것부터 처리하는 게 논블로킹 I/O이다.

여러개의 요청을 순서대로 받았다고 가정해보자. 이 중에 중간 요청은 처리 속도가 굉장히 오래걸린다. 그렇다면 이 처리를 위해서 이 처리 이후에 있는 요청들은 먼저온 요청을 처리하기 위해 멈추고 기다리게 된다. 하지만 논블로킹 방식으로 처리하게 되면 처리 속도가 느린것때문에 뒷 요청을 처리하기까지 시간이 지체되지 않게되는 장점이 있다.


⚡ 싱글스레드는 무엇일까?


Node하면 따라오는 단어 싱글스레드! 그게 뭘까? 이는 여러 자바스크립트의 코드가 동시에 작업처리될 수 없다는 것을 의미한다. 무슨말이냐면 하나의 실행은 오직 하나의 스레드에서만 처리 할 수 있다.

이 방법의 장점은 동기화에 대한 신경을 안써도 된다는 것이다. 데이터를 여러군데서 받게 되면 그를 처리하기위해 접근을 통제해야하고 그에 따른 비용도 발상하게 되는데 싱글 스레드는 그러한 점을 아낄 수 있게 되는 것이다.

물론 단점도 존재한다. 싱글 스레드의 단점으로는 여러 작업을 한 군데서만 처리하는 만큼 그만한 작업시간이 더 들게되고 스레드 간의 작업전환에서 시간이 걸릴 수 있다.


🔌 Node.js를 설치해보자!



공식 홈페이지에서 운영체제에 맞게 설치를 먼저 해준다.

잘 설치되었는지 확인해보려면 우선 터미널 혹은 명령 프롬프트를 켜보자.

npm은 node 설치 시에 자동으로 같이 설치된다.
터미널과 명령 프롬프트창에 node --version을 입력해서 설치한 노드 버전도 확인할 수 있다.



참고자료
https://hanamon.kr/nodejs-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/
https://ko.wikipedia.org/wiki/Node.js
https://velog.io/@eunjin/OS-%EC%8B%B1%EA%B8%80%EC%8A%A4%EB%A0%88%EB%93%9C-%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%9D%98%EB%AF%B8

profile
뉴비는 문서화를 습관화 해보자

0개의 댓글