hoon's bLog

node.js Node 기초, 기본 개념 본문

IT/node.js

node.js Node 기초, 기본 개념

개발한기발자 2023. 9. 16. 11:36
반응형


노드(Node)란?

  • Node.jsⓇ는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임을 말한다.
  • 노드는 V8과 libuv를 내부적으로 포함하고 있다.
    • V8 엔진: 오픈 소스 자바스크립트 엔진 → 속도 문제 개선
    • libuv: 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리로 내부구조는 아래 그림과 같다.

  • 런타임(runtime): 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신(크롬의 V8 엔진 사용)의 상태
    • 다른 런타임으로는 웹 브라우저(크롬, 엣지, 사파리, 파이어폭스 등)가 있음

노드의 역할

  • 자바스크립트로 만든 프로그램들을 실행할 수 있게 해 준다!
  • 자바스크립트 런타임으로 서버의 역할도 수행할 수 있다!
  • 서버 실행을 위해 필요한 http/https/http2 모듈을 제공

노드의 특성

  • 이벤트가 발생할 때 미리 지정해 둔 작업을 수행하는 방식
  • 이벤트의 예 : 클릭, 네트워크 요청, 타이머 등
  • 이벤트 리스너 : 이벤트를 등록하는 함수
  • 콜백 함수: 이벤트가 발생했을 때 실행될 함수

Non-Blocking

논 블로킹 : 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행

  • 쉽게 말해, 블로킹 방식은 순차적으로 작업을 실행, 논블로킹은 작업 상태와 상관없이 동시에 진행이 가능하다.
  • 논 블로킹 방식 하에서 일부 코드는 백그라운드에서 병렬로 실행됨
  • 일부 코드는 I/O 작업(파일 시스템 접근, 네트워크 요청), 압축, 암호화 등, 나머지 코드는 블로킹 방식으로 실행된다.
  • I/O 작업이 많을 때 노드 활용성이 극대화된다고 한다!

node 설치하기

아주 간단하다!

node.js 공식 홈페이지에 'Download' 들어가서,

본인의 운영체제에 맞게 다운로드하면 된다!

 

설치 완료 후 Window 명령 프롬프트 or Mac Terminal을 실행하여 다음 명령어 입력

$ node -v
$ npm -v

버전은 다를 수 있고, 버전이 떴다면 설치 성공이다!

이후 tool은 VS Code나 Jet Brain에서 제공하는 intelliJ를 사용하면 되겠다!

 

회사 업무 하느라 node의 기초나 개념을 대강 봤었는데,

이번 블로그 포스팅을 통해서 조금씩 깊이 알아보는 시간을 만들어 봐야겠다!

 

언제나 새로운 정보 공유와 잘못된 정보

비판/지적/태클은 환영입니다!

도움이 되셨다면 공감♥️, 댓글 부탁드려요:)

끝.

Reference

Node.js 교과서 1장 요약정리

 

728x90
반응형

'IT > node.js' 카테고리의 다른 글

node.js 호출 스택 call stack, 이벤트 루프 event loop  (3) 2023.09.21