서버 란? 

- 클라이언트에서 요청을 받으면 요청한 데이터를 제공하는 프로그램

 

서버 요청의 방식

1. GET (읽기) 요청

웹페이지를 읽을 때

2. POST (쓰기) 생성

- 로그인 할 때

- 댓글작성

- 블로그 포스트작성

3. PUT (수정)

- 글이나 댓글 수정

4. DELETE (삭제)

- 글이나 댓글 삭제

 

 

Node.js 기초설명

Javascript

Html에 종속된 언어, 즉 html(웹페이지)의 조작과 변경을 위해 만들어진 언어이다.

웹페이지를 다이나믹하게 바꿔주기 가능

 

JavaScript 구동 엔진 V8

Javascript의 동작을 위해서 크롬,익스플로러,파이어폭스  등의 브라우저들이 읽고 해석하는 역할을 합니다.

각 브라우저들마다 Javascript 해석 엔진이 있는데

크롬 - V8 / Firefox - SpiderMonkey / Explorer - Chakra

 

자바스크립트를 빠르게 읽고 해석하면 렌더링 성능도 빨라지니

브라우저 개발자들은 자바스크립트를 해석할수 있는 엔진 개발에 열성이였다고 함 

 

여기서 크롬의 V8이라는 해석엔진의 성능이 매우 뛰어나서 별도로 떼어내 출시를 하게 됬고 그 프로그램이 Node.js 가 됬다고 함. 

 

Server는 그냥 요청 처리하는 기계

 

Node.js

Javascript를 브라우저말고도 다른환경에서도 실행시켜줄 수 있는 환경(런타임)을 말합니다.

Node.js를 실행하면 로컬PC에서도 자바스크립트 실행이 가능하게 된다. 

Node.js를 사용하면 간단하게 서버를 만들 수 있습니다.

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

- Non-blocking I/O라는 장점때문인데 

 

일반 프로그래밍언어로 만든 서버의 요청에 대한 처리방식의 경우 요청온 순서대로 차례로 하나씩 처리해줍니다. 

 

Event-driven, Non-blocking I/O 

일단 들어온 요청을 다받고 순서에 상관없이 빨리 되는거부터 처리 

동작원리는 Event Loop 라고 합니다.

  • Event Loop : 이벤트 루프는 call stack이 다 비워지면 callback queue에 존재하는 함수를 하나씩 call stack으로 옮기는 역할을 한다.

 

Node.js 장점

- SNS, 채팅서비스에 특화됨 (요청처리에 힘든 수학적 연산을 요구하지 않는다)

- 스타트업, 프로토타입 만들기에도 많이 사용됨. 

- 초보자에게 쉽다

- 빠르게 서버를 만들수 있다.

- 자바스크립트 문법만으로 프론트, 백엔드 전부 가능하다

 

Node.js의 단점

- 처리속도가 떨어질 수 있다.

- 수학연산이나 이미지처리 같은 라이브러리가 부족할 수 있다.

- Node.js가 제공하는 Non-blocking 처리방식은 다른언어에서도 비슷하게 구현가능하다. 

 

 

반응형

+ Recent posts