node.js 환경
Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임
런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경
브라우저마다 자바 스크립트 엔진 존재
Node.js는 크롬에서 사용하던 V8 엔진에 기능을 약간 변경하여 출시한 js 실행환경
Node.js를 통해 브라우저를 이용하지 않아도 자바스크립트를 이용 가능
=> js를 프로그래밍 언어처럼 사용할 수 있게 되었다
Node.js로 만들어진 서버는 Non-blocking 특징을 가지고 있다
=> 요청이 많거나 오래 걸리는 요청이 있어도 서버가 멈추거나 요청대기시간이 발생하지 않는다
싱글 스레드이기 때문에 이미지나 비디오 처리, 대규모 데이터 처리같은 CPU를 많이 사용하는 작업을 위한 서버로는 적합하지 않다
브라우저 환경
웹브라우저에서 실행되는 소프트웨어 환경
브라우저에서 실행되는 웹 페이지와 관련된 모든 기술과 도구를 포함
node.js 환경과 브라우저 환경의 차이점?
1. 존재 목적
브라우저는 HTML, CSS, JS를 실행하여 웹 페이지를 화면에 띄우는데 목적
Node.js는 브라우저 외부에서 자바스크립트 실행 환경을 제공 => 서버 개발 환경 제공
2. API
브라우저의 경우 유저에게 웹 페이지를 보여주기 위해 Web API를 제공
ex) UI 관련 API, DOM 객체(window, document, etc)
=> 웹페이지를 열어놓고 node.js를 실행하지 않으니까 node.js는 DOM 객체로 엑세스 할만한 대상 자체가 존재하지 않음
Node.js는 파일 시스템을 제어하거나, 데이터를 핸들링 하는 등의 보다 보안요소가 더해진 API(crypto, filesystem, etc) 제공
3. 내장함수
Node.js는 서버 개발을 위해 사용되므로 브라우저에서 제공하는 내장함수인 alert 등을 사용 불가
4. 모듈
브라우저는 ES모듈 표준을 이용
=> import를 이용해서 다른 파일의 코드를 불러온다
node.js는 CommonJS 모듈 시스템을 사용
=> require()를 이용하여 다른 파일의 코드를 불러온다
결론
Node.js는 서버 환경에서 실행되는 JavaScript 런타임, 브라우저 환경은 클라이언트 환경에서 실행되는 JavaScript 엔진
즉, Node.js는 서버 측 개발에 적합한 환경이며, 브라우저 환경은 클라이언트 측 개발에 적합한 환경
'FE Study' 카테고리의 다른 글
| JWT (0) | 2024.05.12 |
|---|---|
| 인증과 인가 (0) | 2024.05.11 |
| [FE] Vue vs React (0) | 2024.01.07 |
| [FE] 세션, 쿠키와 로컬 스토리 (1) | 2024.01.07 |
| REST API, RESTful API (0) | 2024.01.07 |