Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- JWT
- 서블릿 컨테이너
- 쿠버네티스
- docker compose
- securitycontextholderfilter
- kafka
- Routing Key
- JPA
- DI
- Spring Data JPA
- @Transactional
- Spring
- DLQ
- dockerhub
- docker
- 스프링 부트
- 지연 로딩
- @ComponentScan
- JdbcTemplate
- MSA
- redis
- mybatis
- 페이징
- Web
- Dead Letter Queue
- 컨테이너
- CORS
- Spring Container
- JPQL
- AWS
Archives
- Today
- Total
look-forest
Node.js란? 본문

#1 Node.js란?
Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임.
웹 브라우저에 종속적인 자바스크립트를 여러 OS 환경에서 실행할 수 있도록 함.

Node.js는 Chrome의 V8엔진을 이용하여 브라우저에서 JavaScript를 해석하듯이
서버에서 JavaScript를 동작할 수 있도록 하는 환경(플랫폼)
말그대로 환경(플랫폼)이기 때문에 Node.js 자체로는 아무것도 못한다. 구현해야 한다.
확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용된다. (웹 서버 기능 내장)
#2 컨셉
경량 코어, 경량 모듈 철학
#3 장점
1. 개발 생산성
풀스택 개발, JSON 사용, 비동기 프로그래밍
2. JSON 지원
JSON은 데이터 표현을 위한 실질적 표준.
javascript 언어 자체가 JSON을 지원하므로 데이터 처리에 필요한 코드 양이 간결해짐.
MongoDB를 사용할 경우 데이터 저장부터 노출까지 모든 레이어에 걸쳐 JSON 형식으로 데이터 표현이 통일됨
-> ORM이나 객체와 JSON사이의 변환이 없어도 된다!
3. 쉬운 비동기 프로그래밍
비동기 프로그래밍은 동기 프로그래밍 보다 성능이 좋으나 어려웠음.

- 비동기 논블록킹 i/o 와 이벤트 주도 기술
Node.js 라이브러리 내의 API는 모두 비동기식.
None-Blocking 즉 멈추지 않는다.
Network, File I/O와 같이 오래걸리는 작업이 완료되기까지 기다리지 않고 다음 API를 실행.
비동기 작업이 값을 반환하면 이벤트 루프가 이를 확인하고 값을 받아옴.
//asynchronous : A-C-B
console.log('A');
fs.readFile('sample.txt','utf-8', (err, result)=>{
console.log(result);
});
console.log('C');
//synchronous : A-B-C / 동기식 함수를 따로 제공
console.log('A');
let result = fs.readFileSync('sample.txt','utf-8');
console.log(result);
console.log('C');


- 이벤트 메커니즘을 통해 서버가 멈추지 않고 반응.
Chrome의 V8 JavaScript 엔진을 사용하여 빠른 코드 실행을 제공하며, 버퍼링 X.
위와 같은 특징을 가지고 있어 데이터를 실시간으로 다루는 애플리케이션이나 싱글페이지 애플리케이션(SPA), 입출력이 잦은 애플리케이션을 개발할 때 뛰어난 효율성을 발휘.
단, 싱글 쓰레드 모델이기 때문에 하나의 작업 자체가 시간이 많이 걸리면 전체 시스템의 성능이 아주 급격하게 나빠지므로 CPU 사용률이 높은 애플리케이션에선 Node.js 사용을 권장 X
다음 글을 참고하여 작성했습니다.
https://medium.com/@yeon22/node-js-node-js%EB%9E%80-410ae3749c56
https://d2.naver.com/helloworld/4994500
'Web > Node.js' 카테고리의 다른 글
| Passort.js - Node.js의 인증 미들웨어 (0) | 2021.01.28 |
|---|---|
| Express - node.js 위에서 동작하는 웹 프레임워크 (0) | 2021.01.23 |
| Node.js에 MySQL 연동하기 (0) | 2021.01.23 |
| [공부 방향] Node.js로 웹 개발 큰 숲 보기 (0) | 2021.01.23 |