Dev-Tino

Dev-Tino 5주차(1):: Node.js란? / Node.js 설치법

Node.js 설치법

Node. JS

자바 스크립트를 실행시키는 런타임 환경, V8 JavaScript 엔진으로 빌드된 JavaScript 런타임

핵심 키워드::

-구글 V8 자바스크립트 엔진

-고성능 네트워크 서버

-단일 쓰레드 이벤트 루프 기반

-비동기 I/O 처리

-자바스크립트

-개발 생산성 향상

-방대한 모듈 제공(NPM)

이전의 JS(JavaScript의 준말)는 브라우저에 종속적인 언어였다. 브라우저 외부에서 사용하려는 시도가 있기는 하였으나, 그 실행속도가 너무나도 느려지기에 사장되었었다고 한다.

그러던 중 구글이 새로운 자바스크립트 엔진을 내놓았다. ‘V8’이 그것이다. Node는 그 V8 엔진을 기반으로 하는 런타임 환경이다. Node.js의 공식 문서는 Node.js에 대해 다음과 같이 말한다"::

“비동기 이벤트 주도 JavaScript 런타임으로써 Node.js는 확장성 있는 네트워크 어플리케이션을 만들 수 있도록 설계되었습니다.”

이 때 ‘비동기 이벤트 주도’는 ‘callback함수(promise, async 방식도 포함한다) 방식으로 비동기를 처리하는 자바스크립트의 특성을 고려’하며 프로그램의 흐름을 효율적으로 선택하기 위해 ‘이벤트 주도 방식’을 선택하였다. 이벤트 주도 방식이란 ‘이벤트가 실행하면 우리가 준비한 흐름을 실행하는’ 방식이라고 한다. 이 Node.js를 통해, 우리는 JS를 웹 브라우저로부터 독립시켜 서버 구현할 수 있게 되었다.

Node.js의 강점, 특징

-요청이 많거나 오래 걸리는 요청이 있더라도 멈추거나 요청 대기 시간이 발생하지 않음 (Non-Blocking), 비동기 이벤트 기반 환경.

-코드가 짧고 쉬워 빠른 개발 가능 (낮은 학습 장벽)

-새로운 모듈을 추가하거나 업데이트하는 과정이 매우 간단함

그러나 모든 작업을 스레드 하나에서 처리한다는 단점 존재!!

JavaScript 하나로 프론트 엔드 뿐만 아니라 백 엔드도 작업할 수 있다는 장점도 더해져, 이 Node. JS는 광범위하게 쓰이고 있다.

Node.JS를 사용하여 개발하면 좋은 어플리케이션

이 Node.JS는 스레드 환경과 달리 병렬적으로 처리된다. 따라서 ‘이벤트로 처리되는 작업의 시간이 짧고 요청이 많이 들어오는 시스템’의 경우 Node.JS의 특징을 잘 살릴 수 있다. 반면에 CPU 시간을 많이 잡아먹는, 즉 처리 시간이 긴 작업이 많은 경우에는 병렬 처리를 하는 Node.JS가 부적합하다.

또 JS를 사용하므로 JSON 형식의 데이터를 쉽게 처리할 수 있다. Spring(*자바 소스를 위한 오픈 소스 어플리케이션)같은 경우 JSON을 처리하기 위해서는 한 번 파싱을 거쳐야 하니, 그러지 않는 Node.JS는 JSON 데이터를 다루는 파일에 유용하다.

예를 들어 간단한 텍스트, 이미지, 동영상을 실시간으로 주고받는 채팅 프로그램, 실시간 주식 차트 프로그램 등.. ‘짧은 이벤트를 여러번 부르는’ 프로그램이 잘 어울린다 볼 수 있다.


Node.JS는 다음 사이트에서 설치할 수 있다::

감사히도 별다른 권한이나 회원가입, 복잡한 무언가를 요청하지 않으므로, 사이트에 들어가 Download 버튼을 누른뒤 다운된 파일을 실행하도록 하자.

[참고 자료]

-https://nbcamp.spartacodingclub.kr/blog/nodejs%EB%9E%80-nodejs%EC%9D%98-%EC%A0%90%EC%9C%A0%EC%9C%A8%EC%9D%B4-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EB%86%92%EC%95%84%EC%A7%80%EB%8A%94-%EC%9D%B4%EC%9C%A0-1988

-https://www.youtube.com/watch?v=A04zlpL1Uw4

-https://velog.io/@remon/%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D-Node.js%EB%9E%80

-https://velog.io/@remon/%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D-Node.js%EB%9E%80

카테고리
#기타

댓글 0



추천 포스트