Node.Js 란? (시작 전, 개념 정리 타임)

kkikki·2024년 10월 3일

Node.js란 무엇인가?

  • Chrome V8 JavaScript 엔진 으로 빌드된 JavaScript 런타임

html, css ,javascript -> 브라우저 -> 화면
                      ㅣ
                     렌더링

html, css -> 렌더링 엔진(브라우저 내 있음)에 의해 해석됨
js -> 자바스크립트 엔진(브라우저 내 있음)을 통해 해석됨


크롬 V8 - 자바스크립트 엔진이 있는데, 빠른 속도,독립적 실행의 특징을 갖음


javaScript : html 요소를 조작하기 위한 언어
-> 브라우저에서 동작하며 html 요소들을 조작


브라우저 = 자바스크립트의 런타임


자바스크립트의 런타임이란 것은? 자바스크립트가 동작할 수 있는 환경


NodeJs = 서버
ㄴ자바스크립트가 동작할 수 있는 독립적인 공간(?) 이라고 함.
ㄴ근데 대부분이 서버 구현에 많이 사용되고, 대부분 서버용으로 쓰기 때문에 서버라고 해도 됨


Node.Js의 이해 (특징/구조)

작업을 처리하는 곳이 하나

  • (Single Thread): (자바스크립트 언어 속성을 그대로 가져옴)

Non-blocking I/O

  • 앞선 작업이 오래 걸릴 경우, 먼저 처리된 결과를 리턴
  • 막힘없이 요청을 다 받고
    빠른 것부터 쳐내는 느낌으로 돌아감
  • 서버스케일링, 멀티쓰레드 여러개로 늘리면 여러 처리가 가능함
  • SNS, 채팅에 많이 쓰임

라이브러리 내부 구조


libuv를 통해 Non-blocking I/O 가 가능해짐
이벤트 큐에서 나와서 이벤트 루프로 가고 작업 쓰레드 공간에서 도는데
먼저 끝나는 게 이벤트 루프를 통해 다시 이벤트 큐로 전해짐

ㄴ쉽게 결론: 돌고 있는 중 먼저 끝나는게 먼저 온다


확장성이 좋다~!

NPM (Node Package Manager)
: NodeJs의 패키지를 관리할 수 있는 도구

다양한 내부, 외부 모듈(패키지) 제공 -> 필요한 기능들이 미리 구현되어 있는 경우가 많음

Node.js의 개발을 도와주는 nvm, npx,yarn 등의 다양한 툴 사용 가능


사진 출처: 인프런 강의

-인프런 강의를 통한 언어 배우기중

profile
適者生存

0개의 댓글