전체 글 123

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

Syntax Highlighter

1. Syntax Highliter Downloadhttp://alexgorbatchev.com/SyntaxHighlighter/download 2. Upload다운 받은 파일의 압축을 풀고 scripts, styles 폴더 내의 모든 파일을 티스토리에 업로드한다. 3. HTML 수정티스토리 HTML/CSS 편집에서 태그 안에 다음의 내용을 추가한다. 태그의 태그를 다음과 같이 바꾼다. 4. 적용 에디터 모드에서 이 사이에 코드를 작성하면 된다. 원하는 언어는 다음과 같이 쓰면 된다 c -> cpp, ccss -> cssjava -> javajavascript -> js, jscript, javascriptperl -> perl, plsql -> sql

In My Up Top 2015.05.12

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

비동기 이벤트 프로그래밍, events

참고 : http://bcho.tistory.com/885 비동기 이벤트 프로그래밍(event driven programming) 기존의 프로그래밍 언어들은 함수를 부르며 코드를 순차적으로 진행시키는 형태의 구조이다. 이를 procedural programming model이라고 한다. 이 때 코드의 진행 순서를 알 수 있다. 특정 이벤트가 발생하면 미리 이벤트에 맵핑된 함수가 실행되는 형태를 event driven programming, 비동기 이벤트 프로그래밍이라고 한다. node.js가 이 형태의 언어이다. 이 때 해당 함수가 언제 호출되는지는 예측할 수 없다. 즉, event driven programming은 이벤트에 의해서 함수가 호출된다. 이와 비슷한 것으로 윈도우즈, 자바 SWING 등의 ..

Programming/node.js 2015.05.11
반응형