반응형

논블로킹 2

[Javascript] Tutorial(5): 싱글 스레드 기반 이벤트 루프와 비동기

이번 포스팅에서는 조금은 자바스크립트에서 벗어난 이야기를 해볼 예정입니다. 바로 이벤트 루프라는 녀석 때문입니다. 자바스크립트 튜토리얼이나 책에서 이벤트 루프에 관해서는 잘 언급하지 않습니다. 왜냐하면 정확히 이야기하자면 ECMAScrpt 스펙에는 이벤트 루프가 포함되어있지 않습니다. 이벤트 루프는 브라우저나 Node.js가 담당하는 부분이기 때문입니다. 하지만 이 튜토리얼에서 이벤트 루프를 언급하는 이유는 자바스크립트가 브라우저나 Node.js와의 연관성은 필연적이기 때문에 이 시점에서 비동기와 함께 짚고 넘어가는 것이 좋다고 생각했기 때문입니다. 이번 포스팅에서는 총체적인 접근이 조금 필요할 것 같습니다. 그래서 먼저 동기/비동기의 개념을 다루고, 자바스크립트에서 비동기가 적용되는 이벤트 루프에 대해..

Node.Js란?

Node.js 는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 RunTime(특정 언어로 만든 프로그램들을 실행할 수 있는 환경)이다. Node.js는 이벤트 기반, 논블로킹 I/O 모델을 사용해 가볍고 효율적이며, Node.js의 생태계인 npm이나 yarn은 세계에서 가장 큰 오픈 소스 라이브러리 생태계이다. 서버와 클라이언트의 관계 서버란 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램을 말한다. 서버의 대비되는 개념으로 클라이언트(client)라는 개념이 있다. 이 둘의 관계는 요청과 응답으로 볼 수 있는데, 클라이언트는 서버에게 요청하고, 서버는 이에 응답한다. 예를 들어 우리가 검색창에 www.naver.com이라고 입력을 했다고 치자. 그다음 동작으로 우리는..

반응형