목록노드 (15)
개발스토리
화살표 함수 화살표 함수(arrow function)라는 새로운 함수가 추가되었으며, 기존의 function() {}도 그대로 사용할 수 있다. function add1(x,y){ return x+y; } const add2 = (x,y) => { return x+y; } const add3 = (x,y) => x+y; const add4 = (x,y) => (x+y); function not1(x){ return !x; } const not2 = x => !x; add1, add2, add3, add4는 같은 기능을 하는 함수다. not1, not2도 같은 기능을 하는 함수이다. 화살표 함수는 function 선언 대신 => 기호로 함수를 선언한다. 또한 변수에 대입하면 나중에 재사용할 수 있다. 화살..
서버로서의 노드 노드는 기본적으로 싱글 스레드, 논 블로킹 모델을 사용한다. 노드는(논 블로킹 방식으로 코드를 작성했다는 가정하에) libuv 라이브러리를 사용하여 I/O 작업을 논 블로킹 방식으로 처리한다. 따라서 스레드 하나가 많은 수의 I/O를 감당할 수가 있다. But, 노드는 CPU 부하가 큰 작업에는 적합하지 않다. 싱글 스레드 방식으로 서버를 운영할 때는 하나뿐인 스레드가 에러로 인해 멈추지 않도록 잘 관리해야 한다. 에러를 제대로 처리하지 못하면 하나뿐인 스레드가 죽어버려서 서버 전체가 멈추기 때문이다. 이와 같은 특성들로 노드는 개수는 많지만 크기는 작은 데이터를 실시간으로 주고받는 데 적합하다. 실시간 채팅 어플리케이션, 주식 차트 등 노드는 생산성은 매우 좋지만, Go처럼 비동기에 강..
서버 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램을 말한다. 클라이언트 : 요청을 보내는 주체로 브라우저, 데스크톱 프로그램, 모바일 앱 등 다양하다. 서버라고 해서 요청에 대한 응답만 하는 것은 아니다. 다른 서버에 요청을 보낼 수도 있다. 이 때는, 서버가 클라이언트 역할을 한다. 정리 서버는 클라이언트 요청에 대해 응답을 한다. 응답으로 수락을 할 수도 거절을 할 수도 있다. 노드 또한 자바스크립트 프로그램이 서버로서 기능하기 위한 도구를 제공하므로 서버 역할을 수행 가능하다. 자바스크립트 런타임 런타임이란 특정 언어로 만든 프로그램들을 실행할 수 있는 환경이다. 노드는 V8, libuv 라이브러리를 사용한다. V8과 libuv는 c, c++로 구현되었지만, 우리가 작..