Node.js
-
Node.js 구동방식 (3)Node.js 2016. 6. 1. 00:59
언제나 이론은 지겹지만 마지막으로 Node.js 에서 따르는 Common.JS 모듈을 알아본다. 간단하게 말해서 브라우저는 웹페이지에 스크립트를 올릴 때 얘네들을 다른 모든 스크립트와 공유하는 주소 공간으로 주입해 버린다. 이는 어떤 스크립트에 변수를 하나 대입하면 기존 스크립트에서 이미 정의한 또 다른 변수를 의도치 않게 덮어써버릴 수도 있다는 사실을 의미한다. Node.js 진영은 이 해결법을 Common.js 모듈 표준에서 해법을 찾는다. 다 집어치우고 코드를 보면 단번에 이해하기 쉬울 것 이다. 다음 OMG.js 파일과 StartApp.js 파일이 있다고 가정하자. OMG.js var msg = "OMG!!"; exports.saymsg = function() { console.log(msg); ..
-
Node.js 구동방식 (2)Node.js 2016. 5. 30. 10:19
(1)에 이어서 바로 예제 시작 PHP 를 예로 보자 SELECT 문을 수행하기 위해 데이터베이스에 질의를 시도 하는데, SELECT * FROM TESTS 의 질의 결과가 나오기 전 까지 어떠한 연산도 차단하게 된다. 이는 결국 스레드가 다른 프로세스를 기다리며 농땡이 친다는 것을 의미한다. (일해라 핫산!) 이런 문제 해결을 위해 많은 웹 플랫폼이 일반적으로 연결 당 단일 스레드를 사용하는 Thread pool 시스템을 구현해왔다. (스레드 풀에서 스레드들이 대기를 하며 즐거워 하는 모습이다.(?)) 이런 멀티스레드 유형이 처음에는 직관적이지만 장점만 있을수는 없는 법, 당연히 단점이 존재한다. 스래드 관리가 복잡해 지고 위에서 언급한 것 처럼 놀고 있는 스레드가 시스템 자원을 낭비하고 확장이 쉽지가..
-
Node.js 구동방식 (1)Node.js 2016. 5. 29. 14:06
Node.js 에 관한 설명은 수도 없이 많으니 간단하게 구동 방식만 알아보도록 하자. 노드는 플랫폼에서 비차단 연산을 지원하기 위해 자바스크립트의 사건 구동 특질을 이용한다. 자바스크립트는 이벤트 구동 언어이며, 이는 특정 이벤트에 코드를 등록한 다음에 이벤트가 발생하면 해당 코드가 실행 될 것임을 의미한다. 이런 개념은 나머지 프로그램의 실행을 차단하지 않고 비동기식 코드를 자연스럽게 실행하게 만든다. 이를 이해하기 위해 예제를 보자. 다음 Java 코드를 보자. 위를 보면 1행과 2행을 실행한 후에 사용자가 입력하기 전까지는 3행을 실행하지 않는다. 이는 I/O 연산이 프로그램 나머지 동작을 차단하는 동기식 프로그래밍 기법이다. but 자바스크립트는 이렇게 동작하지 않는다. 다음 Html 을 보자...