일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬
- execution context
- 자바
- OS
- Zerobase
- typeScript
- 글또
- 비동기
- python algorithm
- REACT
- JavaScript
- 컴퓨터공학
- codestates
- 프로그래머스
- algorithm
- 운영체제
- 코드스테이츠
- 알고리즘
- java
- 자료구조
- node.js
- Computer Science
- 파이썬 알고리즘 인터뷰
- 개발공부
- context switching
- 자바스크립트
- Operating System
- react 기초
- useState
- Python
- Today
- Total
Back to the Basics
[JS/Node] 비동기 - Node.js 에 대해 알아보자! 본문
[JS/Node] 비동기 - Node.js 에 대해 알아보자!
9Jaeng 2021. 10. 8. 20:52이번 포스팅은 Node.js란 무엇이고 모듈을 사용하는 방법에 대한 공부한 내용에 대한 정리 포스팅이다.
1. Node.js란??
- Node.js 의 정의 Node.js는 로컬 환경에서 JavaScript를 실행할 수 있는 자바스크립트 런타임이다. 런타임이란?
Wikipedia에 따르면 ,
"In computer science, runtime, run time, or execution time is the final phase of a computer program's life cycle, in which theon the computer's central processing unit as machine code."
이라고 한다. 간단하게 해석을 해보면 CPU에서 기계어 코드가 실행되고 있는 단계하고 보면 될 것 같다. 이해하기 어렵지만, 간단히 말해서 프로그래밍 언어가 구동되는 환경이라고 이해를 하면 된다. JavaScript에서 Web Browser에서 구동되는 경우가 있고 로컬에서 Node.js로 구동되는 경우가 있는데, 여기서 Browser와 Node.js를 런타임이라고 한다.
- code is being executed
Node.js에 대해 알아보기 위해 Node.js 공식 사이트를 방문해보았다
"As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications."
"Node.js® is a JavaScript runtime built on Chrome's V8JavaScript engine."
공식문서에서 정의하고 있는 Node.js는 ""an asynchronous event-driven JavaScript runtime, " 즉, 비동기 기반의 자바스크립트 런타임이고, Chrome V8Javascript 엔진으로 빌드된 Javascript 런타임이라고 소개를 한다.
이를 통해 Node.js는 자바스크립트를 실행하게 해주는 실행환경이라고 이해할 수 있겠다.
2. 그럼 왜 Node.js를 사용하는가?
Javascript 런타임은 위에서 언급했듯이 Node.js 말고도 Browser도 있다. 하지만 Node.js의 다양한 장점을 통해 알아보자
- 비동기 I / O 처리 : "Almost no function in Node.js directly performs I/O, so the process never blocks except when the I/O is performed using synchronous methods of Node.js standard library." 공식문서에도 설명이 되어있듯이, Node.js의 모든 API는 Asynchronous이다. Non-Blocking이라는 큰 특징은 Sever가 요청에 대한 응답을 보낼 때까지 기다리지 않고 바로 다음 API를 실행하게 한다.
- Google V8 엔진을 사용한다는 점 : 확장성이 좋고 빠른 처리 속도를 제공한다. 구글 V8 엔진은 계속해서 성능 업그레이드를 하고 있다
- npm을 통해 다양한 모듈을 제공한다 : npm을 사용하여 필요한 라이브러리와 패키지를 설치할 수 있으므로 효율성이 좋다.
- 서버를 만들 수 있다 : " Node.js is designed to build scalable network applications." 공식문서에 나와있듯이, Node.js는 확장성 있는 Notwork appications 설계를 위해 개발되었다고 한다. 즉, 서버 개발을 위해 만들어졌다. 이 특징 때문에 Node.js를 많은 회사에서 사용하고 있다.
참고 블로그들
Node.js에 대한 정의와 특징들에 대해 간단하게 정리를 하였으니, 이제 사용하는 방법에 대해 간단하게 알아보자.
2. Node.js 사용법
- Node.js 내장 모듈 목록
Node.js v14.17.0 Documentation
Node.js의 내장 모듈에 대해 알아보려면 위의 문서를 확인하자.
- Node.js 내장 모듈을 사용하는 방법?
- Node 내장 모듈을 사용하려면 모듈을 불러오는 과정이 필요한다.
브라우저에서 파일을 불러올 때에는<script> 태그를
사용했다면, Node.js에서는 코드 상단에 require 구문을 사용하여 파일을 불러온다.
const fs=require('fs'); // 파일 시스템 모듈을 불러온다.
const dns = require('dns') // DNS 모듈을 불러온다.
파일을 불러온 후 파일을 읽을 때 사용하는 fs.readFile 또는 파일을 저장할 때 사용하는 fs.writeFile 등을 사용할 수 있다.
- 3rd party module 사용
Node.js 내장 모듈이 아닌 Node.js 공식문서에는 없는 모듈을 말한다. 이를 사용하기 위해서는 npm을 사용하여 설치를 해야 한다.
npm install underscore
// npm install 후 코드에서 require 구문을 사용하여 underscore를 사용 할 수 있다
const unscore=require('underscore')
npm으로 설치하면 node_modules에 underscore가 설치된다
Node.js를 사용하는 방법뿐 아니라 모듈을 이해하고 활용하는 방법 또한 익히는 것이 더 중요하므로 라이브러리를 배울 때마다 블로깅을 통해 정리해야겠다.
'Programming Languages > JavaScript & Node.js' 카테고리의 다른 글
[JS/Node] fetch API- How to use 기초 (0) | 2021.10.12 |
---|---|
[JS/Node]비동기 - Async (0) | 2021.10.11 |
[JS/Node] 비동기 - Callback (0) | 2021.10.08 |
[JS/Node] 비동기 (Asynchronous) (0) | 2021.10.08 |
[JS/Node] 꼬리 재귀(Tail recursion in JavsScript) (0) | 2021.09.15 |