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 | 31 |
Tags
- aws devops
- node.js
- 마이에스큐엘
- 리액트
- git
- Azure
- CI/CD
- Pull
- 자동화
- 데브옵스
- github
- 도커
- azure deveops
- MySQL
- 클라우드
- nginx
- devops
- react
- 배포
- azure devops
- CSS
- deveops
- AWS
- docker
- 자동배포
- 조인
- slack
- PIPELINE
- 데이터타입
- 배포자동화
Archives
- Today
- Total
Full_Stack developer
Node.js 란? 본문
Node.js
- 서버 측 자바스크립트 런타임 환경
- 브라우저 밖에서 자바스크립트를 사용할 수 있음
- 자바스크립트 실행 엔진으로 구글 크롬에서 사용하는 V8 엔진을 탑재해 실행 속도 빠름
- 이벤트 기반, 비동기 I/O 모델을 사용해 가볍고 효율적
- NPM 패키지 매니저는 세계에서 가장 큰 오픈 소스 라이브러리
런타임이란?
Node.js 특징
- 자바스크립트 언어 사용
- Single Thread
- Non-blocking I/O
- 비동기적 Event-Driven
특징1. JavaScript 언어 사용
- JavaScript 언어는 원래 웹 브라우저 환경에서만 동작하였음
- Node.js 의 등장으로 터미널에서도 브라우저 없이 바로 실행 가능!
- JavaScript 언어 한가지로 프론트엔드와 백엔드(서버)를 모두 만들 수 있게 되었음
특징 2. Single Thread
프로세스
- 실행 중인 프로그램
- 운영체제에서 할당하는 작업의 단위
Thread(스레드)
- 프로세스 내에서 실행되는 흐름의 단위
- 하나의 프로세스에는 n개의 스레드가 존재하며 동시에 작동할 수 있다.
콜 스택 (Call Stack)
- 현재 어떤 함수가 동작하고 있는지, 그 함수 안에서 어떤 함수가 동작하고 있으며 다음에는 어떤 함수가 호출되어야 하는 지 등을 제어
- 싱글 스레드 = 콜 스택이 하나만 있음 = 한 번에 하나의 작업만 가능
특징 3. Non-Blocking I/O
- I/O
- 입출력(input/output) 작업
- ex. 파일 시스템 접근 (읽기, 쓰기, 만들기 등), 네트워크 요청 등
- Node는 I/O 작업을 할 때 논블로킹 방식으로 처리
특징4. 이벤트 기반(Event-Driven) 아키텍처
- 이벤트가 발생할 때 미리 지정해둔 작업을 수행
- 이벤트 ex) 클릭, 네트워크 요청, 타이머 등
- 이벤트 기반 아키텍처에서는 특정 이벤트가 발생할 때 무엇을 할지 미리 등록해야 함
- 이벤트 리스너 (Event Listener): 이벤트 등록 함수
- 콜백 함수 (Callback Function): 이벤트가 발생했을 때 실행되는 함수
Node.js 의 역할
- 간단한 로직
- 대량의 클라이언트가 접속하는 서비스 ( 입출력이 많은 서비스 )
- 빠른 개발 요구
- 빠른 응답시간 요구
- 비동기 방식에 어울리는 서비스 ( 스트리밍 서비스, 채팅 서비스 등 )
서버 외의 Node
모듈이란?
- 특정한 기능을 하는 함수나 변수들의 집합
- 재사용 가능한 코드 조각
모듈의 장점
- 코드 추상화
- 코드 캡슐화
- 코드 재사용
'BE > node.js & express' 카테고리의 다른 글
Sequelize 와 ORM (3) | 2024.02.16 |
---|---|
nodejs 환경변수 (0) | 2024.02.16 |
Node.js MVC 패턴 (1) | 2024.02.07 |