7월3일(월) Node.js 공부 (Node.js 노드 빠르게 훑어보기 - 제주코딩베이스캠프)

Mindfulness·2023년 7월 3일
0

목차
1. Node.js 이해
2. Node.js 설치
3. 실습 - 서버 구현
4. 실습 - Express
5. 실습 - Template Engine

  1. Node.js 이해

0) Node.js 란 무엇인가?

  • Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다. (Node.js 공식 문서)

1) Node.js 이해
(1) 웹 브라우저의 동작 과정

출처:Inflearn, Node.js 노드 빠르게 훑어보기 - 제주코딩베이스캠프 강의

우리가 일반적으로 보게 되는 웹화면은 HTML, CSS, JavaScript 이 세가지로 이루어져있다. 부트캠프 초기때 배운 기억이 있을 것이다. 이 세가지를 브라우저를 통해서 해석이 되고 화면으로 출력이 된다. 이 과정을 렌더링이라고 한다.

출처:Inflearn, Node.js 노드 빠르게 훑어보기 - 제주코딩베이스캠프 강의

근데 HTML, CSS와 JavaScript는 브라우저 내에서 해석되는 방법에 차이가 있다.
HTML, CSS는 브라우저 내에 있는 렌더링 엔진에 의해 해석이 되고, JavaScript는 브라우저 내에 있는 자바스크립트 엔진을 통해서 해석된다. 여기서 주목해야 될 것은 자바스크립트 엔진에 주목하자.

  • Chrome V8 Engine이란? Chrome에서 만든 V8 이라는 엔진이 있다. 이 엔진의 개발로 자바스크립트 엔진의 속도가 비약적으로 빨라지게 되고 자바스크립트의 사용도가 엄청나게 증가하게 된다. 이 Chrome V8 Engine을 기반으로 Node.js도 만들어졌다.
    -> 그래서 빠른 속도독립적인 실행이라는 특징을 가진다. 즉, 위의 Node.js 공식문서의 내용(Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.) 중 'Chrome V8 JavaScript 엔진으로 빌드된'이라는 말은 Chrome V8 Engine으로 개발이 되었다는 말.
    JavaScript는 HTML요소를 조작하기 위해 만들어진 언어. 다시 말해, 브라우저에서 동작하며 HTML요소들을 조작하는 언어.
    브라우저는 자바스크립트가 동작할 수 있는 런타임이다. 다시 말하면, JavaScript 런타임이란 뜻은 JavaScript가 동작할 수 있는 환경을 뜻한다.
    -> JavaScript는 브라우저라는 런타임만 가지고 있었는데, Node.js가 개발되며 브라우저 이외 다른 곳에서 동작할 수 있는 새로운 Runtime Environment(런타임 환경)이 되었다.

Node.js = 서버, 라고 이해하기보다 JavaScript가 동작할 수 있는 독립적인 환경이다. 근데 사실상 Node.js로 구성되는 대부분이 서버 구현에 많이 사용하기 때문에 서버라고 이해하는 것도 크게 무리가 되는 것은 아니다.

1) Node.js 이해
(2) Node.js 특징 : 구조 (Single thread, Non-blocking I/O)

Node.js의 구조에 따라 생기는 특징

  • Single thread
    작업을 처리하는 곳이 하나라는 뜻. JavaScript 언어의 특징을 그대로 가져왔다고 볼 수 있다.

  • Non-blocking I/O
    어떤 작업들이 연달아 있을 때, 작업들이 실행되는 순서가 요청이 들어온 순서가 아니라 먼저 끝나는 짧은 작업들이 리턴이 되는 것을 의미한다.

profile
Junior Frontend Developer

0개의 댓글