스터디에서 사용하려고 작성한 글입니다. (내용이 별로 없습니다😅)

Node.js

2009년 라이언 달 (Ryan Dahl)이 만든 V8(자바스크립트 엔진)으로 빌드 된 이벤트 기반 자바스크립트 런타임

Node.js_logo (1).svg

런타임(runtime): 프로그래밍 언어가 구동되는 환경

JavaScript가 탄생하고, Javascript를 브라우저 밖에서 사용하기 위한 노력이 이어짐.
2008년 V8 엔진이 등장하고 서버사이드 Javascript에 대한 아이디어가 발현되고,
이를 위해서 모듈화 문제를 해결하고 표준화가 필요해짐.

1_AKKvE3QmN_ZQmEzSj16oXg.png

지속적인 노력으로 모듈의 정의와 사용방법에 대한 명세인 CommonJS가 만들어짐.
CommonJS 명세를 구현한 대표적인 프로젝트가 Node.js
bg2015052201.png

Node.js를 어떻게 사용하고 있을까?

node가 제공하는 자바스크립트 런타임 2가지

  • REPL (Read, Eval, Print, Loop) /
  • 자바스크립트 파일 실행
// REPL
> node
> const a = 1;
=> undefined
> a + 5;
=> 6

// 파일 실행
> node ./index.js

Node Online REPL(https://repl.it/languages/nodejs)

왜 서버사이드 영역일까?

asdasd.png

http 모듈로 구현한 서버

const http = require('http');

http.createServer((request, response) => {
    response.statusCode = 200;
      response.setHeader('Content-Type', 'text/plain');
    response.end('Hello World');
  })
  .listen(3000);

console.log('Server running at http://127.0.0.1:3000/');

express 프레임워크로 구현한 서버

const express = require('express');
const app = express();

app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000, () => console.log('Example app listening on port 3000!'));

Next..?

js-fest-2019-ryan-dahl-deno-a-new-way-to-javascript-1-638.jpg

Deno는 Node와 비슷한 문제를 푸는 JavaScript,
그리고 TypeScript를 실행하기 위한 새로운 Command-line Runtime

참고

https://d2.naver.com/helloworld/12864
https://perfectacle.github.io/2017/06/18/what-is-node-js/
https://github.com/denoland/deno
https://blog.ull.im/engineering/2019/04/14/deno-ryan-dahl-2019-04-04.html