본문 바로가기
Node.js

[Node.js] 1. Node.js 소개 및 설치

by 일단연 2023. 4. 26.

* 본 시리즈는 [위데이터랩]의 Node.js 강의를 매주 수요일 1시간씩 듣고 복습한 기록입니다.

 

 사전지식 

  • 정적 웹 페이지와 동적 웹 페이지
    • 정적 웹 페이지(Static Web Page)
      • 웹 서버(Web Server)에 미리 저장된 파일(HTML 파일, 이미지 등)이 그대로 전달되는 웹 페이지
      • 서버는 사용자의 요청(Request)에 맞는 저장된 웹 페이지를 보냄
      • 사용자는 서버에 저장된 데이터가 변경되지 않는 한, 고정된 웹 페이지를 보게 됨 (댓글 기능 없는 게시판, 고정된 인물 소개 페이지 등)
    • 동적 웹 페이지(Dynamic Web Page)
      • 웹 서버(Web Server)에 있는 데이터들을 스크립트에 의해 가공처리한 후 생성되어 전달되는 웹 페이지
      • 서버는 사용자의 요청(Request)을 해석해 데이터를 가공한 후 생성되는 웹 페이지를 보냄
      • 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됨 (유튜브의 댓글 페이지, 쇼핑몰의 상품 목록 페이지, 네이버의 뉴스 페이지 등)
  • 클라이언트와 서버
    • 클라이언트: 요청을 보내는 주체 (모바일 웹, 웹 브라우저 등)
    • 서버: 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램
  • 프론트엔드와 백엔드

 

 JavaScript의 탄생 배경

  • 1993년 UI 요소가 더해진 Mosaic Web Browser 출시
    • 텍스트와 이미지로 이루어진 정적인 웹 페이지
  • 동적인 웹 페이지를 만들자(Scripting 언어 추가하자)는 수요 증가

 

 Node.js의 탄생 

Node.js의 탄생 배경

  • JavaScript의 한계
    • 원래 JavaScript는 script 형식으로 브라우저 내에서만 동작
    • 동적 웹 페이지를 만들 수 있게 해주는 역할에 그침
  • JavaScript로 서버 쪽 어플리케이션을 만든 게 Node.js

Node.js 탄생이 불러온 변화

  • node.js 개발 전: 자바스크립트는 웹브라우저에서만 사용 가능했음 (한정된 활용 범위)
  • node.js 개발 이후
    • JS를 브라우저 밖에서 사용 가능하게 함 > JS의 활용 범위가 늘어남
    • avaScript 개발자들이 브라우저 외의 영역을 개발할 때 JS가 아닌 언어를 배워야 할 필요성을 사라지게 함
  • 크롬: v8이라는 자바스크립트 엔진을 출시해 자바스크립트를 해석

 

 Node.js의 개념 · 특성 · 장단점 

개념

  • 크롬 v8 JavaScript 엔진으로 빌드된 JS 런타임
  • Node.js ≠ 서버
    • Node.js는 크롬 v8 자바스크립트 엔진으로 빌드된 JS 런타임
  •  
JavaScript JavaScript 엔진 Node.js
프로그래밍 언어 Chrome의 v8 런타임

특성

  • 이벤트 기반
    • 특정 버튼 클릭(이벤트 발생) 시 특정 기능 발동
  • 논블로킹 (비동기 가능)
    • 일부 코드를 백그라운드에서 실행시켜 동시 실행 가능
    • 비동기가 안 될 경우엔, 대량 트래픽을 감당하지 못하고 서버가 다운됨
  • 싱글스레드
    • 프로그래밍 난이도가 쉬우며, CPU와 메모리 자원을 적게 사용

장단점

장점 단점
멀티스레드 방식에 비해 컴퓨터 자원을 적게 사용 싱글스레드라서 CPU 코어 하나 사용
I/O 작업이 많을수록 유리 CPU 작업이 많을수록 불리
웹 서버가 내장되어 있음 서버의 규모가 커졌을 떄 관리가 어려움
API 작업이 유리 (JavaScript)  
개발 효율성이 좋음(개발기간) (> 스타트업에서 많이 사용)  
안정성, 보안성이 충분히 검증됨
: NASA, 에어비엔비, 우버, 넷플릭스, 링크드인, 페이팔, 월마트, 이베이 등
 

 

 Node.js 설치 

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

 Node.js 설치 확인 

  • cmd창에 버전을 확인하는 명령어 입력
    • node -v: 현재 Node.js.버전 알려주는 명령어
    • npm -v: 현재 npm 버전 알려주는 명령어