Programming/node.js 17

io.js

io.js로 넘어갔다. node.js 0.12 버전을 fork했다고 한다. (오픈소스 프로그램의 소스를 그대로 사용하는 것을 이야기하는 듯 하다.) node.js가 2013년에 0.12 버전을 내놨는데도 2015년까지 1.0 버전이 나오지 않았고 그간 민주적으로 개발자들의 요구가 수용되지 않았다고 한다. 그래서 node.js 핵심 개발자들끼리 io.js라는 것을 따로 만든 것인데 자바스크립트 V8 엔진과 그 외 기술적으로 node.js에서 업데이트 시키지 않은 것들을 지속적으로 시키면서 지금은 2.3까지 나왔다. 지속적인 피드백이 이루어지는 진영이 더 유리하다 생각해 node.js에서 io.js로 넘어왔다. 단, io.js를 만든 이유는 node.js에 대항하기 위한 것이 아닌 node 진영을 풍요롭게 ..

Programming/node.js 2015.06.15

socket.io 기초

참고 : http://bcho.tistory.com/899 io.socket.on('connection', function(socket){ callback 함수가 받은 매개변수인 socket을 아래와 같이 사용할 수 있다. 이벤트를 보내기socket.emit('이벤트명', {메시지})현재 연결되어 있는 클라이언트 소켓에 '이벤트명'을 통해 메시지를 전달한다. socket.broadcast.emit('이벤트명', {메시지});이벤트를 발생시킨 클라이언트나 서버를 제외한 모든 클라이언트나 서버에 메시지를 전달한다. io.sockets.emit('이벤트명', function(data){});socket이 개별 클라이언트 소켓을 대표하는 객체라면, io는 모든 socket을 대표하는 객체이다. 연결된 모든 클라..

Programming/node.js 2015.05.15

socket.io로 채팅을 해볼까

브라우저에 Input Box를 만들고 여기에 문자열을 입력하면 서버에 접속한 모든 브라우저에 메시지를 보내는 node.js 프로그램이다. var io = require('socket.io').listen(server); io.sockets.on('connection', function(socket){ socket.emit('toclient', {msg:'Welcome!!'}); socket.on('fromclient', function(data){ socket.braodcast.emit('toclient', data); socket.emit('toclient', data); console.log('Message from client : ' + data.msg); }); }); var io = requir..

Programming/node.js 2015.05.13

socket.io를 써보자

그 전에 설명하는 배경참고 : http://bcho.tistory.com/896참고 : http://blog.naver.com/musasin84/60190946052 웹 소켓의 등장 배경초창기 웹은 콘텐츠를 전달하는 역할만을 수행했다. 그래서 초창기 CERN과 같은 연구기관에서 사용했던 것과 같은 전형적인 브라우저 랜덩링 방식인 HTTP 요청에 대한 HTTP 응답을 받아서 브라우저의 화면을 모두 지우고 받은 내용을 새로 표시하는 방식을 사용해도 문제가 없었다. 하지만 Ajax와 같이 사용자와 긴밀히 상호작용하는 RIA(Rich Internet Application)와 같은 웹 서비스가 발달하면서 웹 소켓이 등장하게 되었다. 이러한 방식은 숨겨진 프레임(Hidden Frame)을 이용하거나 Long Pol..

Programming/node.js 2015.05.13

express 페이지 라우팅

참고 : http://blog.naver.com/musasin84/60190674500 express version 4.12.1 라우팅(Routing) 클라이언트로부터 요청 받은 URL과 뷰(View)를 매치시키는 것. 라우팅에서 사용하는 정보는 호스트 이름을 제외하고 나머지 경로를 표시한 문자. eg. http://localhost:3000/hello/wolrd URL : http://localhost:3000/hello/wolrd Path : /hello/world -> 이 정보를 라우팅에서 사용하는 것이다. Page Routing은 express 프로젝트 중 routes 폴더 내의 index.js, users.js에 정의되어 있다. var express = require('express'); var..

Programming/node.js 2015.05.12

express

express 경량화 웹 개발 프레임워크. 노드를 이용한 웹 서비스, 어플리케이션 개발에 가장 널리 쓰이는 확장 모듈이다. http 모듈을 이용해 웹 서버를 구축하고 데이터를 표시하는 방식을 추상화하여 수월한 개발을 지원한다. express version 4.12.1 express로 다음과 같이 프로젝트를 만들 수 있다. express [프로젝트명] server의 포트에 대한 정의는 전 버전에서는 app.js에서 기술했지만 4.12.1에서는 express 프로젝트에서 bin 폴더의 www.js에 기술해 놓았다. #!/usr/bin/env node /** * Module dependencies. */ var app = require('../app'); var debug = require('debug')('..

Programming/node.js 2015.05.12

http 요청과 응답

웹 서버가 하는 일은 요청과 응답의 연속이다. 이 때 사용하는 객체가 Response와 Request이다. Response 객체writeHead(statusCode, object) : Response 헤더 작성 statusCode는 다음과 같은 의미를 가진다.1XX : 처리 중2XX : 성공3XX : Redirect4XX : 클라이언트 오류5XX : 서버 오류 object로는 {'Content-Type' : '[Type]'} 형태의 매개변수를 가진다. Content-Type은 응답하는 데이터의 형태이다. Content-Type에는 다음과 같은 것을 사용할 수 있다. text/plain : 기본 텍스트text/html : html 문서text/javascript : 자바스크립트 파일text/css : CS..

Programming/node.js 2015.05.11

http

http 모듈 HTTPTCP/IP 기반의 프로토콜. HTML 페이지 전송, 파일 전송 등에 사용한다. 요청과 응답으로 이루어졌으며 Request Header와 Response Header를 주고 받으며 통신한다. express 모듈의 바탕이 된다. HTTPSTSL/SSL 모듈에 기반하여 보안성을 강화한 HTTP. 이벤트requset : 클라이언트 요청 발생connection : 클라이언트가 접속close : 서버가 종료될 때 발생checkContinue : 클라이언트가 계속 연결되어 있는지 확인upgrade : 클라이언트가 HTTP 업그레이드를 요청clientError : 클라이언트에서 오류 발생 server 객체메서드listen(port, [callback])서버 실행close()서버 종료 이벤트 예제..

Programming/node.js 2015.05.11
반응형