node JS란?
- 브라우저 밖에서 자바스크립트 코드를 실행할 수 있다.
- 크롬에서 사용하는 v8엔진을 사용한다.
- 이벤트 기반의 비동기 I/O 프레임워크
- Common JS를 구현한 모듈 시스템
이벤트 기반의 비동기 I/O 프레임워크?
--> 이벤트 기반의 프레임워크
이벤트: 클라이언트가 인입되면 이벤트가 발생함.
메인잡은 이벤트 루프에서 처리할 수 있지만 무거운 잡의 경우 다른 워커(worker)가 처리해야함.
메인이 되는 이벤트 루프가 하나의 thread 로만 구성됭어 있기 때문에 single thread 라고 함.
--> 비동기?
요청이 들어오자마자 하나씩 진행하는걸 동기 프레임워크라함. (java / php)
노드의 경우 순차적으로 진행하긴 하지만 single thread 이지만 worker가 또 다른 일을 처리하고 있음. 이렇게 병렬적으로 처리하는 것을 비동기적이라 함.
<비동기세계>
노드는 기본적으로 비동기로 동작함
readFile() vs readFileSync()
Common JS를 구현한 모듈 시스템
- 브라우저에서는 윈도우 컨텍스트를 사용하거나, RequireJS같은 의존성 로더를 사용함
- 노드는 파일 형태로 모듈을 관리할 수 있는 CommonJS로 구현
- 기본모듈(ex, util)
- 써드파티 모듈(제3자가 공유)
- 사용자정의 모듈(직접 만들 수 있음)
'웹개발' 카테고리의 다른 글
중앙처리장치 CPU (0) | 2021.01.07 |
---|---|
스터디 : 컴퓨터 구조 (0) | 2021.01.06 |
스프링 웹개발 용어정리:: Spring Interceptor (0) | 2020.10.24 |
스프링 웹개발 용어정리:: Web Service? (0) | 2020.10.06 |
스프링 웹개발 용어정리:: DAO 란? (0) | 2020.09.28 |