- 모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있음
→ 브라우저 뿐만 아니라 node.js 도
→ 브라우저 환경 또는 Node.js 환경에서 실행할 수 있음
- 브라우저와 node.js 의 용도 차이Node.js : 브라우저 외부에서 자바스크립트 실행 환경을 제공해주는것
- 브라우저 : html, css, 자바스크립트 실행 환경을 제공
→ 모두 ECMAScript를 실행할 수 있지만 이를 제외한 추가로 제공하는 기능을 호환되지 않음
ex) 파싱된 Html요소를 선택하거나 조작하는 기능의 집합인 DOM API를 기본적으로 제공
But node.js는 제공하지 않음 → 브라우저 외부 환경에서는 Html 요소를 파싱해서 객체화한 DOM을 직접 다룰 필요가 없음
<aside> 💡 웹 크롤링 : 서버에서 웹사이트의 콘텐츠를 수집하기 위해 웹사이트에서 html문서를 가져온 다음, 이를 가공해서 필요한 데이터만 추출하는 경우가 있다. 이를 웹 크롤링이라고 한다. 서버 환경은 DOM API를 제공하지 않음으로 cheerio 같은 DOM 라이브러리를 사용해 HTML문서를 가공하기도 한다
</aside>
- cheerio란?
cheerio는 Node.js에서 사용하는 DOM 조작 라이브러리 중 하나로, jQuery와 유사한 문법을 사용하여 HTML 요소를 파싱하고 데이터를 추출하는 기능을 제공한다.
→ Node.js에서는 파일을 생성하고 수정할 수 있는 파일 시스템을 기본 제공하지만 브라우저는 이를 지원하지 않음.
(FileReader 객체를 사용해 사용자가 지정한 파일을 읽어들이는건 가능)
만약 브라우저를 통해 다운로드되어 실행되는 자바스크립트가 사용자 컴퓨터의 로컬 파일을 삭제하거나 수정하고 생성할 수 있다면, 이는 사용자 컴퓨터가 악성 코드에 그대로 노출된 것과 마찬가지이다.
→ 보안상의 이유로 브라우저 환경의 자바스크립트는 파일 시스템을 제공하지 않음
→ 근데 혹시나 몰라서 나는 토어 브라우저 실행시 자바스크립트 사용 끈다 ^^
이처럼 브라우저는 ECMAScrip와 DOM, BOM, Cancas, 등등과 같은 클라이언트 사이드 Web API를 지원함.
Node.js는 클라이언트 사이드 Web API를 지원하지 않고 ECMAScript 와 Node.js 고유의 API를 지원한다.
크롬 브라우저의 V8 자바스크립트 엔진은 Node.js에서도 사용하고 있다.
'2023 공부한것들' 카테고리의 다른 글
[3-3] Node.js (0) | 2023.06.28 |
---|---|
[3-2] 개발자 도구 / 콘솔 / 브라우저에서 자바스크립트 실행/ 디버깅 (0) | 2023.06.28 |
20230628 오후 회고록 (0) | 2023.06.28 |
[코딩애플 html/css] 10강 : 배경 예쁘게 넣는 스킬들 & margin collapse (0) | 2023.06.28 |
[코딩애플 Html/css] 9강 : 셀렉터를 이용해 css 코드 양 줄이기 (0) | 2023.06.28 |