Javascript/Node.js (4) 썸네일형 리스트형 블로킹/논블로킹 , 동기/비동기 이해하기 CS 기술면접을 준비하다 정확하게 알고가야 되는 부분이라고 생각해서 글로 적어놓음 블로킹 / 논블로킹, 동기 / 비동기 ? 프로그래밍 관점에서 봤을때, I/O방식은 크게 4가지로 구분된다. 기본 개념을 정리하고 가자면 Blocking 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 떄까지 기다렸다가 자신의 작업을 시작한다 Non-blocking 다른 주체의 작업에 관련 없이 자신의 작업을 한다. Synchronous 요청이 들어온 순서에 맞게 하나씩 처리한다. Asynchronous 하나의 요청이 끈나기도 전에, 다른 요청을 동시에 처리할 수 있다. Synchronous와 Blocking은 무언가를 기다리게하고, Asynchronous와 Nonblocking은 기다리지 않고 바로 .. npm / yarn 서로 차이점 npm / yarn 서로 차이점? Node 개발 환경에서는 패키지 매니저로 npm 또는 yarn을 쓴다. 각각의 특징에 대해 설명하고 무슨 차이가 있는지 정리해보겠습니다. npm NPM (Node Package Manager)은 자바스크립트 언어를 위한 패키지 관리자로 Node.js의 기본 패키지 관리자이다. 전세계적으로 가장 많은 이들이 사용하고 있는 패키지 관리 툴이며 이러한 관리 툴을 이용하여 Node.js로 만들어진 모듈을 웹에서 받아 쉽게 설치하고 관리해주는 프로그램인데 개발자 입장에서는 단 몇 줄의 command로 기존 공개된 모듈들을 설치하고 활용할 수 있다. npm 명령어 npm init : package.json 생성 npm install : package.json 파일 및 해당 종속성에.. Node.js의 특징 및 장단점 ? Node.js의 특징 Node.js는 Single-Thread의 이벤트 루프 기반 비동식 방식으로 작동한다. non-blocking I/O 언어 하나로 프론트, 백엔드 전부 커버가 가능하다. JavaScript 엔진(V8 Engine)으로 빌드 된 JavaScript 런타임이다. 따라서, 사용자의 요청은 한 곳에서 받지만 작업은 실질적으로 멀티쓰레드로 운영하여 결과를 구현한다. V8 엔진 크롬V8 또는 V8이라고 불리는 친구인데, 웹 브라우저를 만드는데 기반을 제공하는 오픈 소스 자바스크립트 엔진으로 구글이 제공하고 있다. V8 자바스크립트 엔진은 기존 다른 웹 브라우저보다 자바스크립트 처리가 월등히 빠름 왜냐면 JIT(Just In Time)컴파일 방식을 사용하기 때문이다. 이 방식은 자바스크립트를 인.. Restful API, package.json (Node.js) Restful API Rest란? Rest란 웹 서비스를 만들 때 사용하는 제약 조건을 정의하는 소프트웨어 아키텍쳐 스타일입니다. CRUD Operation을 적용함 Create : 생성(POST) Read : 조회(GET) Update : 수정(PUT) Delete : 삭제(DELETE) HEAD : header 정보 조회(HEAD) REST의 장점 HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요하 없다. HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다. HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다. REST API 메세지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할.. 이전 1 다음