1. Node.js 언어
ㅇ Node.js : V8 + libuv 기반의 비동기 이벤트 구동 서버 런타임
- V8 : Chrome V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임
. 런타임 : 특정 언어로 만들어진 프로그램이 실행되는 환경의 제공
- libuv : 전용 라이브러리 :
. 이벤트 기반, 논 블로킹 I/O 모델 구현 (비동기 I/O 처리)
ㅇ node REPL 환경 : (자바스크립트 코드 즉시 실행/테스트 가능)
- 진입 : 운영체제 프롬프트 상에서, node 입력 후 Enter키
2. Node.js 특징
ㅇ 웹브라우저 밖에서도 JavaScript 실행 가능
ㅇ 서버 구현에 특히 적합
ㅇ 단일 스레드 기반 + 이벤트 루프 구조
3. Node.js 주요 모듈
ㅇ HTTP 계층
- http 모듈 : HTTP 서버/클라이언트 구현
- https 모듈 : TLS 기반 보안 HTTP
ㅇ 전송 계층 (TCP/소켓)
- net 모듈 : TCP 소켓 직접 제어
. 소켓 객체 : 연결 자체를 추상화, 데이터 송수신 담당
. 서버 객체 : 연결 요청 수신, 소켓 생성 및 관리
. (동작 흐름) : 클라이언트 접속 → 서버 → 소켓 생성 → 데이터 송수신
ㅇ 보안 계층
- tls 모듈 : TLS(SSL) 기반 암호화 통신, net 위에서 동작 (TCP + 보안)
- (관계) https (HTTP + TLS) → tls (보안 추가) → net (TCP)
ㅇ 파일 시스템
- fs 모듈 : 파일 읽기/쓰기, 비동기/동기 API 모두 제공
- (例) fs.readFile(), fs.writeFile()