728x90
728x90
  • 모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있음

→ 브라우저 뿐만 아니라 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에서도 사용하고 있다.

728x90
300x250

+ Recent posts