서버 란?
- 클라이언트에서 요청을 받으면 요청한 데이터를 제공하는 프로그램
서버 요청의 방식
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 처리방식은 다른언어에서도 비슷하게 구현가능하다.
'UXUI Development > 공부기록' 카테고리의 다른 글
[스파르타 코딩] Chat GPT (0) | 2023.04.18 |
---|---|
ChatGPT 사용가이드 (데이터 재활용금지 설정하기) (0) | 2023.04.18 |
[Node.js/MongoDB] 6. MongoDB 세팅 (0) | 2022.05.23 |
[Node.js] 5. REST API (0) | 2022.05.23 |
[Node.js] 4. Form 태그 기능개발 (POST요청) (0) | 2022.05.23 |
[Node.js] 3. 자바스크립트 콜백 함수 (0) | 2022.05.03 |
[Node.js] 2. Express라이브러리 (0) | 2022.05.02 |