node

Node.js

Node.js란? Node.js란 자바스크립트 런타임 환경 및 라이브러리 입니다. 서버 측 웹 응용 프로그램을 만드는 데 사용됩니다. 자바스크립트 런타임 이제는 JS가 컴파일, 인터프리터 언어라고 할 수 없다. 왜냐하면 엔진에 따라 다르기도 하고, 컴파일과 인터프리터 둘다 쓰이기도 한다. 노드는 자바스크립트 런타임이다. 런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻합니다. 노드는 v8과 더불어 libuv라는 라이브러리를 사용합니다. libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현하고 있습니다. 노드는 스스로를 이벤트 기반, 논블로킹 I/O 모델을 사용해 가볍고 효율적이라고 표현했다....

May 5, 2021 · nibble2
js

함수 선언문보다 함수 표현식을 권장하는 이유

JS에서는 함수 선언문보다는 함수 표현식을 더 권장한다. 그 이유는 무엇일까? 먼저 함수 선언문과 함수 표현식에 대해 알아보자 // 함수 선언문 function a () { console.log("hello world"); } // 익명 함수 표현식 var b = function () { console.log("hello world"); } Javascript라는 언어는 코드가 실행할 때 ‘호이스팅’이 발생한다. 호이스팅을 하게 되면 함수 선언문은 전체를 호이스팅을 하게되고 함수 표현식은 선언부만 끌어 올리게 된다. 함수 선언문과 함수 표현식 코드 예시 // 함수 선언문, 함수명 a가 곧 변수명 function a() { /* ....

June 24, 2021 · nibble2
js

Javascript 비동기

자바스크립트의 비동기 console.log('start'); setTimeout(() => { console.log('Hello study :>'); }, 3000); console.log('end'); 비동기 처리에 대한 이해가 없는 상태에서 예상한 결과값 /* start (3초 후) Hello study :> end */ 실제 결과값 /* start end (3초 후) Hello study :> */ callback 예시 const addSum = (a, b, callback) => { setTimeout(() => { if (typeof a !== 'number' || typeof b !== 'number') { return callback('a, b must be number!...

July 16, 2021 · nibble2

클로저(Closure) 발표 자료

클로저는 함수형 프로그래밍 언어에서 등장하는 보편적인 특성이다. JS 고유의 개념이 아니라 ECMAScript 명세서에도 클로저 정의를 다루지 않고 있다. MDN에서는 클로저를 이렇게 정의하고 있다. A closure is the combination of a function and the lexical environment within which that function was declared '클로저는 함수와 그 함수가 선언될 당시의 Lexical environment와의 상호관계에 따른 현상' 함수 내부에서 함수 외부에 있는 변수에 접근할 수 있다는 사실을 우리는 알고 있습니다. 위에서 언급하고 있는 “현상“의 의미를 알아보자...

July 1, 2021 · nibble2

Docker로 MongoDB를 사용할 때 주의할 점

상황 모든 프로그램은 보통 포트도 함께 설정이 된다. 나의 Demon MongoDB:27017(local) vs Docker MongoDB:27017가 충돌되어 DB에 접속하지 못하는 상황이 발생하였다. docker-compose.yml 포트 변경 변경된 포트를 사용하여 docker mongoDB로 접근한다. 나의 local mongoDB PORT : 27017 도커 MONGODB PORT로 접속하는 포트 : 27018 주의할점은 도커네의 몽고디비 포트는 27017이다 토론 과연 도커(Docker) 컨테이너를 통해 데이터베이스를 운영하는 게 좋은 방법일까?...

May 26, 2021 · Nibble