Node.js

yedi·2024년 7월 14일
post-thumbnail

Node.js

| 개념

Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.

JavaScript의 해석은 chrome, internet explorer, firefox와 같은 브라우저(browser)가 한다.
이때 각 브라우저는 JavaScript를 해석할 수 있는 엔진이 존재하는데, 대표적으로 chrome은 V8 이라는 매우 빠르고 우수한 엔진을 가지고 있었고, 이 V8 이라는 엔진에 기능을 추가하여 Node.js(V8)를 등장시켰다.

Node.js는 브라우저 내에서 말고도 다른 환경(=런타임)에서도 자바스크립트를 사용할 수 있게 해줍니다.
프로그램이 실행되는 동안 필요한 소프트웨어와 하드웨어 자원을 제공하는 공간인 런타임 환경만 있으면 자신이 작성한 코드를 외부 환경과 상관없이 어디서든 독립적으로 실행할 수 있습니다.
프론트 뿐만 아니라 백엔드 개발에서도 사용 가능합니다.

JavaScript
: Html에 종속되어 있는 언어로, 웹 페이지를 동적으로 만들어주는 언어

런타임(runtime)

  • 컴퓨터 프로그램이 실행되고 있는 동안의 동작
  • 특정 언어로 만든 프로그램들을 실행할 수 있는 환경


| 특징

  • 데이터 타입을 명시할 필요가 없는 동적 타입의 언어이다.
  • 객체지향 프로그래밍과 함수형 프로그래밍을 구현할 수 있다.
  • 코드가 매우 짧고 쉬워서 빠른 개발(Pivoting이 가능)이 가능하다.
  • 웹 서비스 경우에 사용한다.
  • 넌-블로킹(Non-blocking) I/O이 뛰어나, 요청이 많은 SNS나 채팅 서비스에 많이 사용된다.
    예시) 일반 서버 : 요청이 오래 걸리거나 많으면, 멈추거나 대기 시간 발생한다.
            Node.js 서버 : 요청이 오래 걸리거나 많아도, 멈추거나 요청 대기 시간이 발생하지 않는다.

넌-블로킹(Non-blocking) I/O
: 한 프로세스가 I/O 작업을 호출했을 때, I/O 작업이 완료될 때까지 작업을 중단하지 않고,/ IO 호출에 대해 즉시 리턴한 뒤, 해당 프로세스가 이어서 다른 IO 작업을 수행할 수 있도록 하는 방식



| 다운로드 및 설치

  1. https://nodejs.org/en 에 접속하여 Download Node.js (LTS)를 클릭한다.

    LTS(Long Term Support)

    • 장기 지원되는 버전을 의미
    • 일반 버전과 달리 안정성에 중점을 둔 버전으로, 기능 업데이트는 최소한으로 이루어지거나 아예 없는 반면 보안 업데이트의 지원 기간이 일반 버전보다 훨씬 길다.
    • 서버 등 최신 기능보다 안정성이 더 중요한 곳에서 많이 쓰인다.
  2. 명령 프롬프트 또는 터미널을 열어서 설치된 Node.js의 버전을 확인할 수 있다.

node -v
  1. Node를 실행한다 -> JavaScript 런타임 환경이다.
node



| 참고

https://www.youtube.com/watch?v=pTm5E3jcOeY
https://naver.me/FBJFLDac

0개의 댓글