일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springboot
- 클라우드 서비스 개발
- route 53
- Gradle
- sts
- 우리FISA
- 맥
- 우리에프아이에스 #
- https
- M2
- 맥북
- jdk
- AWS
- 클라우드 서비스 개발 #
- 도메인
- mysql
- spring
- 글로벌소프트웨어캠퍼스
- 맥OS
- 로드밸런스
- 우리FIS아카데미
- 우리에프아이에스
- 우리FIS아카데미 #
- K-디지털트레이닝
- 리눅스
- Java
- HTTP
- 우리FISA #
- dbeaver
- Today
- Total
<<개발일지>>
Node.js란? 본문
1. Node.js
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
-Node.js는 공식 홈페이지
런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다.
우선, 자바스크립트라는 언어를 알아야한다.
자바스크립트는 HTML에 종속되어있는 언어이다. HTML 조작과 변경을 위해 사용한다.
*HTML은 웹페이지에 글쓰고 그림 넣는 언어이다. (안 움직임, 글 넣고 그림 넣고 끝)
정적 언어인 HTML을 조작해서 웹페이지를 다이나믹하게 바꿔주는 기능을 하는게 자바스크립트이다.
=================================================
HTML은 자바스크립트가 조작한다면, 자바스크립트 해석은 누가하나 ?
바로 브라우저 이다. 브라우저에는 자바스크립트 해석 엔진이 있다.(브라우저의 종류에 따라 쓰는 엔진이 다르다.) 따라서 기존에는 자바스크립트를 인터넷 브라우저 위에서만 실행할 수 있었다.
그러나, 2008년 구글이 V8 엔진을 사용하여 크롬을 출시했다. V8 엔진은 엄청 빠르고, 오픈 소스로 코드도 공개되었다. V8 엔진이 너무 뛰어나서 기능을 좀 더 더해 V8 엔진 기반에 노드 프로젝트를 시작했고, Node.js(V8)이 등장했다. Node.js는 브라우저 내에서 말고도 다른 환경에서 자바스크립트를 사용할 수 있게 해주게 된다.
따라서 Node.js는 JavaScript 실행 환경(=런타임) 이다.
Node.js를 설치하면 브라우저를 키지 않아도 자바스크립트를 컴퓨터에서 수행할 수 있게 된다.
Node.js가 자바스크립트를 컴퓨터에서 쉽게 실행시켜줬기 때문에 자바스크립트를 프로그래밍 언어처럼 사용하기 시작했다.
Node.js를 설치하면 브라우저를 키지 않아도 자바스크립트를 컴퓨터에서 수행할 수 있게된다.
- Node.js 홈페이지에서 설치 후
- Windows 검색창에 cmd를 검색해서 명령 프롬프트를 열어봅시다.
- 설치가 제대로 됐는지 확인해보려면 명령 프롬프트에 node -v 를 입력 후 버전이 제대로 나오는지 확인해보면 됩니다.
- 설치 확인이 끝났으면 node를 실행시키기 위해 node 입력한 후
- console.log('헬로') 를 적어서 자바스크립트 코드가 작동하는지 확인해봅시다.
많은 사람들이 Node로 서버를 만든다.
Node.js로 서버를 만드는 이유
일반적인 서버는 요청을 순서대로 받아야 한다. 그래서 특정 요청이 많으면 뒤에 있는 요청은 그동안 기다려야 한다. 하지만 Node.js는
모든 요청을 한 번에 받는다. 그리고 순서와 상관없이 처리 속도가 빠른 것부터 결과를 가져다 준다. 처리 속도가 빠른 것부터 처리하기 때문이다. 이게 Node.js의 Non-blocking I/O의 개념이다.
Node.js의 강점
SNS나 채팅서비스에 많이 사용된다. 이런 서비스들의 특징은 요청이 매우 많다는 것이다. 일반 서버로 구현하면 요청이 많거나 오래 걸리는 요청이 있으면 멈추거나 대기 시간이 발생한다. 이때 Node.js 서버로 구현하면 요청이 많거나 오래걸리는 요청이 있어도 멈추거나 요청 대기 시간이 발생하지 않는다. 이런 Non-blocking 덕분에 채팅이나 SNS에 자주 사용된다.
이외에도 개수는 많지만 작은 데이터를 실시간 주고 받는 실시간 채팅에 사용된다.
이미 안정성과 보안성 측면의 문제도 충분히 검증되었다. 규모가 큰 에어비엔비, 넷플릭스, 링크드인 등에서 노드를 사용하고 있고, 페이팔이나 월마트 같이 결제 시스템을 사용하는 대기업에서도 노드로 서비스를 운영하고 있다.
Node.js의 단점
Node.js는 모두 스레드 하나에서 처리된다. 코드가 CPU 연산을 많이 요구하면 스레드 하나가 감당하기 어렵다. 그렇기 때문에 이미지나 비디오 처리, 대규모 데이터 처리 같이 CPU를 많이 사용하는 작업을 위한 서버로는 권장하지 않는다. 이런 부분에서 노드보다 더 적합한 언어 역시 존재한다.
'JavaScript, TS' 카테고리의 다른 글
JSON (0) | 2023.11.27 |
---|---|
JSON.parse() , JSON.stringify() 작성필요 (0) | 2023.11.27 |
요청과 응답(Request & Respnse) (0) | 2023.11.27 |
서버와 클라이언트(Server & Client) (1) | 2023.11.27 |
동기적 함수 비동기적 함수(정리해야함) (0) | 2023.11.27 |