| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- Redux
- 리액트
- useState
- It
- 웹개발자
- 정보처리기사
- Authentication
- 스프링부트
- frontend
- 프론트엔드
- TypeScript
- 타입스크립트
- 백엔드개발자
- security
- JavaScript
- 수제비
- JS
- VUE
- 백엔드
- spring boot security
- 큐넷
- spring boot
- Node.js
- TS
- Front-End
- spring
- 자바스크립트
- 정보처리기사 실기
- React
- JWT
- Today
- Total
솔적솔적
node.js + 망고DB 본문
node.js + mongoDB를 이용하여 투두리스트를 만드는 것을 목표 진행하기전에
#node.js가 무엇인지에 대해서 알아보고 시작해요.
목표1. node.js는 무엇인지 이해하기
목표2. node.js로 서버를 만드는 이유는?
node.js란
javascript를 브라우저말고도 로컬pc에서도 실행시킬 수 있는 실행환경
여기서 javascript란 뭐죠?
네, 자바스크립트는 html에 종속된 언어로 웹페이지안에서 바꿔주는 기능을 합니다.
그럼 이 html조작과 변경이 가능한 자바스크립트는 누가 실행시키는지 아십니까?
맞아요, 브라우저예요.
요 브라우저가 자바스크립트 해석을 담당하지요.
또한 브라우저마다 자바스크립트를 해석하는 엔진이 각각있는데,
javascript의 해석엔진들은
크롬 👉 V8
모질라 👉 SpiderMonkey
익스플로우 👉 chakra
이있습니다.
여기서
자바스트립트 해석빠른 크롬의 V8을
똑! 떼어내서 이 자체로 출시를 하게되고..
그게 바로 'node.js' 인겁니다.
node.js는 원래 크롬의 자바스크립트의 해석엔진
이렇게 따로 node.js는
js언어를 꼭 브라우저 내에서 사용하는 것이 아닌, 다른 환경에서도 실행할 수 있게 하기 위해만들어졌습니다.
(브라우저를 안켜도 Node.js만 있으면 자바스크립트 문법실행이 된다는 것.)
Node.js 덕분에 JavaScript를 프로그래밍 언어처럼 사용하기 시작함(서버도 만들 수 있음)
그리고 사람들은 이 node.js로 서버를 만들기도합니다.
그럼 왜 node.js로 서버를 만들까요?
그건 바로 Non-blocking I/O 의 장점 때문입니다.
예를 들어서 요청처리하는 2개의 서버가 있다.
일반 서버 vs node.js로 만든 서버를 비교해봅시다.
샌드위치가게 서버(일반 서버)가 있는데

사람들이 한 명당 주문을 하는데 주문함과 동시에 차례대로 요청을 받고 응답을 해줍니다.
근데 이 사람들 중 한 사람이
저, 샌드위치 300개 포장 을 요청하면 그 응답대로 걸리는 시간이 많이듭니다.
그럼, 그 50개 포장하는 사람의 다음 사람은 그 걸리는 시간을 같이 기다려야하는 것이고요,

중간에 버거운 요청을 만나면, 서버가 다른 요청을 받을 수 없는 단점이 보이지요?
그럼 이제 노드.js로 만든 서버, 샌드위치가게가 있어요.
이 가게는 요청을 먼저 다 받습니다.
그 후 처리하는 것이 빠른 것부터 응답해주고 어려운 작업들은 나중에 처리하게하죠.
이게 바로 Node.js의 non-blocking i/o특징입니다.
요즘은 SNS, 채팅서비스개발을 많이하는데 이 특징은 서버가 몇 십만개의 요청을 처리할 수 있어야합니다. 이 몇십만건의 데이터요청을 처리해야하는데, 그럴려면 전통적인 서버인 경우에 서버가 멈출 수 있으나,
node.js의 경우에는 무거운 요청, 오래걸리는 요청이 있어도 멈추거나 요청 대기시간이 없다는 장점이 있다는 것입니다.
근데 사실 이런 SNS,채팅 서비스 작업을 꼭 node.js만 할 수 있다는 것은 아닙니다.
서버 스케일링 or 멀티 쓰레딩으로 동시응답처리를 할 수 있어요.
다시 돌아가서,
논블로킹 덕분에 채팅/SNS에 요즘 자주 이 node.js를 쓴다하며
또 다른 강점은 몇줄만 입력하면 비교적 쉽게 개발할 수 있는 다는 것입니다. (코드가 매우 짧고 쉬움)
또 node.js는
- 빠르게 시범을 보여야할 때도 특히 프로토타입을 만들기에도 좋습니다.
- 자바스크립트 문법만으로 프론트와 백엔드를 전부 할 수 있다는 것과
- 비교적 코드들이 짧기 때문에 초보단계에서 쉽게 접할 수 있으며,
- 갑자기 유저의 대량 요청이 들어와도 서버가 꼴까닥 죽지않고 감당가능하지요.
그럼 이렇게 다양한 장점을 가지고 있는 node.js.
다음부턴 이 node.js가 위 말이 정말인지 직접 만들어가며 알아보도록하겠습니다.
< 오늘의 기억거리 >
🍖 목표1. node.js는 무엇인지 이해하기
👉 자바스크립트를 브라우저 없이 사용할 수 있는 실행창, 실행환경이며
원래 각 크롬안의 자바스크립트 해석엔진(V8)이었으나 해석능력이 출중하여
따로 똑 떼어서 만들어낸 v8의 진화버전
🍖 목표2. node.js로 서버를 만드는 이유는?
👉 node.js는 무거운 요청, 오래걸리는 요청이 있어도 멈추거나
요청 대기시간이 없다는 장점과 몇줄만 입력하면 비교적 쉽게 개발할 수 있다. (코드가 매우 짧고 쉬움)
'Front-end > node.js + mongoDB' 카테고리의 다른 글
| Mongoose는 무엇인가, mongoDB검색하면 자주 등장하던데 써야하나? (1) | 2022.09.14 |
|---|---|
| Nodemon으로 자동화하기 그리고 이걸 왜 할까? (0) | 2022.09.05 |