Node.js 개념 공부

skdus·2022년 3월 24일
0
post-thumbnail

🌱 Server란?

닭갈비집 알바생이라고 생각하자. 알바생이 손님이 주문을 하면 음식을 서빙해주는 것처럼, server는 요청을 받으면 요청한 내용을 보내주는 프로그램이다.

  • 어떤 요청인가?
    요청에는 4개의 방식이 있다.
    1) 읽기(GET) - 나는 어떤 페이지를 읽고 싶어!라는 요청
    2) 쓰기(POST) - 댓글 작성, 블로그 포스트 작성해서 무언가 생성하고 싶을 때 사용, 이 글 좀 올려주세요~~할 때 요청
    3) 수정(PUT) -뭔가 수정할 때 요청
    4) 삭제(DELETE) - 뭔가 삭제할 때 요청
    => 사용자는 GET/POST/PUT/DESETE 요청 가능

이제 Node.js 환경에서 JavaScript 문법으로 서버를 만들 예정이다.

🌱 Node.js란?

JavaScript 런타임이다.

JavaScript는 HTML파일을 위해 만들어진, HTML에 종속된 언어이다. HTML은 정적인 언어라 안움직이기 때문에, JavaScript를 통해 HTML 조작과 변경을 함.

그럼 JavaScript는 누가 돌릴까? 누가 해석할까?
=> 브라우저!
그래서 브라우저마다 JavaScript를 해석할 수 있는 엔진이 존재한다. (크롬은 V8, 익스플로러는 Chakra, 모질라는 SpiderMonkey)

크롬의 JavaScript 해석엔진인 V8이 너무 뛰어나서, 해석엔진만 크롬에서 떼어내 출시를 하게 된다. 이게 바로 Node.js
즉 Node.js는 크롬의 자바스크립트 해석엔진으로 이루어짐. JavaScript라는 언어를 브라우저 내에서 말고도 다른 환경에서도 JavaScript를 실행할 수 있게 만들어놓은 것이 Node.js이다.
=> 쉽게 말하면 JavaScript 실행창, 실행환경(=런타임)이다.

Node.js로 서버도 만들 수 있는데, 왜 사용할까?
=> Non-blocking I/O가 좋기 때문이다.

🌱 Node.js를 쓰는 이유

✔ Node.js 특징

예를 들어 영화예매 웹서버를 만들 때, 다른 언어들은 요청을 한 명씩 받다가, 단체석 예매처럼 오래걸리는 작업이 들어오면 그 작업을 하는동안 멈춘다. 즉 버거운 요청이 들어오면 서버가 잠시 멈추기 때문에 뒤에 다른 작업들은 계속 대기해야한다.

Node.js는 예매하려고 줄 서 있는 사람들의 요청을 한꺼번에 다 받는다. 그리고 순서에 상관없이 처리속도가 빠른 요청부터 하나씩 처리한다. 즉 중간에 어려운 요청이 들어오면, 그거 하나 처리하느라 시간을 쏟지않고 빠르게 해결할 수 있는 것부터 처리한다. => Node.js의 Non-blocking I/O

✔ Node.js 강점

  • sns나 채팅서비스는 요청이 매우 많은데, Node.js는 요청이 많거나 오래걸리는 요청이 있어도 멈추거나 대기시간이 발생하지 않음
  • 코드가 매우 짧고 쉬워서 빠른 개발 가능 (만드는 것이 웹서비스가 아닌 경우는 비추천! 이미지 처리 서버가 필요한 경우, Node.js는 좋은 라이브러리가 없다..그럴때는 c나 python 쓰자)

🌱 참고자료

https://www.youtube.com/watch?v=k2GWnDb5zoQ

0개의 댓글