자바스크립트/NodeJS

노드에서는 기본적인 내장 객체와 내장 모듈을 제공한다. global 브라우저의 window와 같은 전역 객체이며, 모든 파일에서 접근할 수 있다. global 객체 내부에는 매우 많은 속성들이 들어있으며, 내부를 보려면 REPL을 이용해야 한다. $ node > global > globalThis > globalThis === global > global.console 노드 버전에 따라 콘솔 내용이 다를 수 있으며, global 객체 안에는 수십 가지의 속성이 담겨 있다. 그 속성 모두를 알 필요는 없고, 자주 사용하는 속성들만 알아보자. 전역 객체라는 점을 이용해 파일 간에 간단한 데이터를 공유할 때 사용하기도 한다. module.exports = () => global.message; const A ..
노드는 코드를 모듈로 만들 수 있다는 점에서 브라우저의 자바스크립트와는 다르다. 모듈이란 특정한 기능을 하는 함수나 변수들의 집합을 말한다. ex) 수학에 관련된 코드들만 모아서 모듈을 하나 만들 수 있다. 모듈로 만들어두면 여러 프로그램에 해당 모듈을 재사용할 수 있다. CommonJS 모듈은 표준 자바스크립트 모듈은 아니지만 노드 생태계에서 가장 널리 쓰이는 모듈이다. 아래 소스 코드에서 변수를 두 개 선언했고, module.exports에 변수들을 담은 객체를 대입했다. 다른 파일에서 이 파일을 불러오면 module.exports에 대입된 값을 사용할 수 있다. const odd = 'CJS 홀수입니다.'; const even = 'CJS 짝수입니다.'; module.exports = { odd, ..
노드는 V8과 더불어 libuv라는 라이브러리를 사용한다. V8과 libuv는 C와 C++로 구현되어 있으며, 코딩한 자바스크립트 코드는 노드가 알아서 V8과 libuv에 연결해주므로 C와 C++는 몰라도 된다. libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현하고 있다. 이벤트 기반 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미한다. 이벤트로는 클릭이나 네트워크 요청 등이 있을 수 있다. 이벤트 기반 시스템에서는 특정 이벤트가 발생할 때 무엇을 할 지 미리 등록해둬야 한다. 이를 이벤트 리스너에 콜백 함수를 등록한다고 표현한다. ex) 버튼을 클릭할 때 경고창을 띄우도록 설정하는 것을 예로 들어보자. 클릭 이벤트 리스너에 경고창을 띄우는 콜백 함수를 등록해..
이 현호
'자바스크립트/NodeJS' 카테고리의 글 목록