4th May 2021 Node.js 정리

알파·2021년 5월 4일
0

Node.js

목록 보기
1/6

서버란?

  • 클라이언트에게 네트워크를 통해 정보나 서비스를 전달하는 컴퓨터 혹은 프로그램
    -> 요청을 받으면 데이터를 보내주는 기계

HTTP 요청 (4가지 종류)
1. 읽기 (GET)

  • 나 이런 페이지 읽고 싶음! 이라는 요청 가능
  1. 쓰기 (POST)
  • 댓글작성, 포스트 작성
  1. 수정(PUT)
  2. 삭제(DELETE)

-> Node.js를 이용해서 JavaScript 문법으로 서버를 짤 것임!

JavaScript

HTML 페이지에 종속된 언어
HTML은 웹페이지에 글을 쓰거나 그림을 넣는 언어 (정적임)
정적인 HTML을 동적으로 바꿔주는 것이 JavaScript

JavaScript 해석은 누가 하는가?
-> 브라우저(크롬-V8, 엣지-Chakra, 파이어폭스-SpiderMonkey 등)
JavaScript 해석 엔진을 따로 갖고 있다.

Node.js의 정체

이리도 성능이 월등하게 뛰어난 V8 해석엔진이 변모한 것이 Node.js의 기원이다-!
Node.js는 브라우저 내에서 말고도 다른 환경에서도 JavaScript를 실행할 수 있게 도와준다.
쉽게 말하면 자바스크립트 실행창, 실행환경이라 볼 수 있다(=런타임)
따라서, 브라우저를 켜지 않아도 Node.js만 있으면 자바스크립트 문법이 실행이 되고, 덕분에 JavaScript를 프로그래밍 언어처럼 사용하기 시작했다.

Node.js로 서버를 만드는 이유

  • Non-blocking I/O라는 장점때문에!

_이렇게 4개의 요청이 차례로 들어왔을 경우, 일단 접수부터 다 받고 빨리 완료된 것부터 처리해줍니다.
누가 먼저 왔는지 상관없습니다. 그냥 빨리 결과가 나오는 순으로 예매해주는 것입니다.
아마 처리 순서는 요청1 – 요청2 – 요청4 – 요청3 이런게 되겠죠.
그래서 아까 요청4 했던 사람도 빠르게 영화표를 받아볼 수 있습니다.

Node.js는 그냥 이렇게 완료가 빨리된 것부터 처리할 수 있게 설계된 런타임입니다._

즉, SNS, 채팅서비스(요청이 매우 많음)을 구현할 때 요청이 많거나 오래 걸리는 요청이 있어도 멈추거나 요청 대기시간이 없다. (일반 서버는 서버스케일링 혹은 멀티쓰레딩을 통해 가능)

  • 코드가 매우 짧고 쉬워서 빠른 개발이 가능하다
profile
I am what I repeatedly do

0개의 댓글