[JavaScript] Node js

배고픈메꾸리·2020년 12월 27일
0

Advanced JavaScript

목록 보기
5/10


2009년까지는 브라우저에서만 자바스크립트를 쓸 수 있었지만 Node.js 가 탄생하면서 이야기가 달라졌다.
앞선 글에서 자바스크립트 런타임이란 브라우저에서 사용자에게 제공하는 것이라고 하였다. Node.js 는 자바스크립트 런타임 중 하나로 브라우저 밖에서도 자바스크립트를 실행할 수 있게 도와준다.

사진은 Node.js 런타임의 구조이다. 주의 깊게 볼 것은 Node.js에서는 크롬 브라우저에서 사용하던 V8 엔진을 사용하고, LIBUV를 통해서 비동기적인 I/O를 수행할 수 있다는 것이다.

이러한 Node.js는 브라우저에서 사용하던 런타임보다 많은 일을 할 수 있게 도와준다. 예를 들어 브라우저에서 자바스크립트 코드를 작성하면 사용자의 파일 시스템에 접근하는 작업을 수행하지 못한다. 만약 파일 시스템에 접근이 가능하다면 이는 엄청난 보안 문제를 야기할 것이기 때문이다.(이러한 환경을 sandbox environment(샌드박스 환경)이라고 한다.) Node.js에서는 사용자의 컴퓨터 내에 있는 파일 시스템에도 접근할 수 있기 때문에 확장성이 더욱 넓어졌다.

앞선 글에서 개발자 도구 콘솔 창에 window를 입력하면 web API들을 확인할 수 있다는 것을 배웠다. 그리고 이러한 web API는 브라우저에서 제공한다는 것을 알았으므로 Node.js 환경에서는 window 객체를 호출할 수 없다는 것이 자명하다. Node.js 환경에서 window 객체를 대신하여 사용할 수 있는 것이 바로 global 객체이다.

이 외에도 Node.js를 사용하면 얻을 수 있는 다양한 특징들이 있는데 추후에 자세하게 알아보자.

profile
FE 개발자가 되자

0개의 댓글