Node.js 가 무엇일까? 서버 프로그래밍에 사용하는 이유!

YS_Study.log·2022년 1월 11일
0
post-custom-banner

Node.js ?

사실 듣기는 많이 들어봤지만 무엇인지 알아볼 생각을 안했던 것 같다.

  • Node.js는 브라우저, 및 다른 환경에서도 javaScript 를 해석하고 실행(동작)할 수 있게 도와주는 자바스크립트 실행창, 실행환경, 런타임이다.

브라우저들이 javaScript를 해석을 하고 동작시킨다고 했는데,Node.jsV8 엔진으로 로 빌드된 이벤트 기반 자바스크립트 런타임이다. (자바스크립트를 잘 해석하는 엔진)

이러한 node.js 덕분에 자바스크립트를 프로그래밍 언어처럼 사용할 수 있게 된 것이다.

node.js로 서버를 만들면 좋은 이유

  • Node.js논블로킹 I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능
  • 자바스크립트언어를 그대로 사용하여 개발할 수 있다.
  • 코드가 짧고 쉬어서 빠른 개발 가능
  • Non-blocking
    (동기적으로 요청 순서대로 가 아니라) 비동기적으로 요청된 작업들 중에 오래걸리는 작업은 뒤로 두고, 빨리 작업되는 것부터 완료하기 때문에 서버에 보내는 요청 대기시간이 없어서 서버가 중단되지않는다.
  • ex) 택배발송요청 -> 한개의 택배가 도착완료 할 때까지, 나머지 택배가 발송되지 않는다면?!
    비동기 처리로 보낼 수 있는 건 먼저 보내며 택배작업이 원활하게 흘러간다. )
  • node.js가 아닌 다른 프로그래밍 언어로 서버를 구현한다면?
    요청된 작업을 동기적 요청이 들어오는 순서대로 처리하기 때문에 무거운 작업이 있으면, 완료되는 동안 다른 작업을 못하고 중간에 서버가 중단된다.

Node.js을 주로 사용하는 경우

  • 주로 요청을 빠르게 처리해야되는 웹서비스, 채팅, SNS에 자주 사용한다.
    ex) 일반 서버로 구현한 sns → 메세지 요청양이 많고, 영상 요청 → 서버가 멈추고, 대기시간 발생
    ex) node.js로 구현한 sns → 메세지 요청양이 많고, 용량높은 영상을 보내는 요청 → 요청 대기시간 X

Node.js를 사용하지 않는 경우

  • 통계 분석, 이미지 처리 기능이 필요한 서버가 필요한 경우엔 잘 사용하지 않는다. (C, 파이썬 등 사용)
  • 런타임(runtime/실행시간) : 컴퓨터 프로그램이 실행되고 있는 동안의 동작
    "런타임"이라는 용어는 컴퓨터 언어 안에 쓰인 프로그램을 관리하기 위해 특정한 컴파일러나 가상 머신이 사용하는 기본 코드의 라이브러리나 프로그램을 가리키는 런타임 라이브러리라고도 한다.
  • 런타임 환경: 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태이다. 운영 체제에서 작동하는 소프트웨어를 뜻하기도 한다.
  • V8 : 웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 자바스크립트 엔진이다. 구글 크롬 브라우저와 안드로이드 브라우저에 탑재되어 있다.

참조
위키 백과사전
코딩애플 선생님

profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!
post-custom-banner

0개의 댓글