Node.js? Server? Non-Blocking I/O?

ouneno·2023년 7월 20일
0

Node.js

목록 보기
1/7

💻 Server(서버)

❓일단, 서버가 뭘까?

Server

: 섬기는[시중드는] 사람, 봉사자, 근무자

그냥 쉽게 말해, 무엇을 요청했을 때 가져다 주는 것 !
ex) 음식점에서 서빙(serving)을 하는 서버(server/근무자)에게 "OO을 해주세요" 라고 주문하는 것과 같다.

❓그럼 서버가 하는 일은?

  1. 조회(GET)
    => 페이지를 클릭했을 때 조회해준다.
  2. 작성(POST)
    => 게시물 작성, 댓글 작성 등 모든 생성을 말한다.
  3. 수정(PUT)
    => Update!
  4. 삭제(DELETE)
    => 말 그대로 삭제를 뜻한다.

💻 Node.js

❓Node.js는 뭐야 ?

우선 공식 홈페이지에서는 Node.js에 대해서 어떻게 설명을 할까? -> [ Node.js 공식홈페이지 ]
Node.js에 대해 찾아보면 Node.js는 "JavaScript Runtime" 이라는 말이 자주 보인다.


_Node.js는 크롬의 V8으로 빌드된 이벤트 기반 JavaScript Runtime이다?

1. JavaScript에 대해서 잠깐 알아보고 가자.

기존의 움직임 없이 글 뙇! 그림 뙇! 만 넣을 수 있는 언어의 역할을 한 HTML
JavaScript를 사용해서 웹페이지를 다이나믹하게 바꿀 수 있게 되었다.

2. 크롬의 V8이 뭘까?

JavaScript는 누가 해석해주냐? 브라우저(Chrome, Explorer 등)가 해석해준다.
각 브라우저들 마다 JavaScript를 해석해주는 해석엔진이 존재한다!
1. Chrome - V8(브라우저 중에서도 JS를 가장 잘 해석함. 속도가 빠름)
2. Explorer - Chakra
3. FireFox - SpiderMonkey

3. Chrome의 해석엔진인 V8을 따로 떼어내 살을 붙인게 Node.js다.

V8엔진의 JavaScript를 잘 해석한다는 강점을 활용한다는거!

브라우저를 따로 실행하지 않더라도 Node.js만 있으면 cmd창에서도 console.log를 찍을 수 있다.


❓ 그렇다면 왜 하필 Node.js로 서버를 만들까?

Non-blocking I/O 특징이 좋아서!

엥? Non-blocking I/O? 논블로킹 I/O라고?

Block

: <길 등을> 막다, 봉쇄하다, 방해하다

일반적인 서버 같은 경우는 과도한 업무가 요청들어왔을 경우 순차적 처리업무로 멈춤이나 대기가 있을 수 있다.(Blocking이 존재한다)
Non-blocking은 말그대로 Bloking이 존재하지 않는 부분으로서, 채팅이나 SNS같이 과도한 요청이 많을 경우 순차 처리가 아닌, 처리속도가 빠른 것부터 처리를 해줌으로서 멈춤이나 대기 현상을 줄여준다.

profile
지속적인 성장을 추구하는 새싹 개발자입니다🌱

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

글이 잘 정리되어 있네요. 감사합니다.

답글 달기