Node.js 란?
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 환경입니다.
이벤트 기반, 비동기 I/O 모델을 사용하여 가볍고 효율적입니다. 주로 서버 사이드 애플리케이션 개발에 사용되지만, 다양한 종류의 프로그램을 만드는 데 활용됩니다.
1. 글로벌 객체 (Global Object)
Node.js의 글로벌 객체는 애플리케이션 어디서나 접근 가능한 객체입니다. 브라우저의 window 객체와 유사한 역할을 합니다.
* 주요 글로벌 객체 및 함수
- global : 전역 네임스페이스 객체
- process : 현재 Node.js 프로세스에 대한 정보와 제어를 제공
- console : 콘솔 출력 기능 제공
- Buffer : 바이너리 데이터를 다루는 클래스
- __dirname : 현재 실행중인 스크립트의 파일 이름
- __filename : 현재 실행 중인 스크립트의 파일 이름
- require() : 모듈을 불러오는 함수
- module : 현재 모듈에 대한 정보
- exports : 모듈에서 내보내는 객체
* 타이머 함수
- setTimeout() , setInterval() , setImmediate()
- clearTimeout() , clearInterval() , clearImmediate()
2. 모듈 시스템
Node.js는 CommonJS를 기반으로 한 모듈 시스템을 사용합니다.
ES6 모듈 시스템도 지원합니다.
* CommonJS모듈
* ES6 모듈 (파일 확장자를 .mjs로 하거나 package.json에 "type" : "module" 설정)
3. 파일 시스템(fs 모듈)
fs 모듈은 파일 시스템과 상호 작용하는 기능을 제공합니다.
4. 이벤트(Events 모듈)
Node.js의 많은 핵심 API는 이벤트 기반으로 구축되어 있습니다.
5. HTTP 서버 생성
Node.js의 http 모듈을 사용하여 간단한 웹 서버를 만들 수 있습니다.
6. 비동기 프로그래밍
Node.js는 비동기 프로그래밍을 위한 다양한 패턴을 지원합니다.
- 콜백
- Promise
- async / await
7. 스트림(Streams)
스트림은 데이터를 청크 단위로 처리하는 방식으로 대용량 데이터를 효율적으로 다룰 수 있게 해줍니다.
8. 버퍼(Buffer)
버퍼는 바이너리 데이터를 직접 다루는 방법을 제공합니다.
'Back-end > Node.js' 카테고리의 다른 글
JWT 토큰 이란?? (1) | 2024.11.02 |
---|---|
Node.js 트랜잭션(Transaction) (0) | 2024.09.12 |