보관물

Posts Tagged ‘Node.js’

개발 메모 : 6월 7일 (2012년)

– CSS를 이용해서 이미지에 필터효과를 주는 몇가지 방법이 담겨져 있는 아티클 : http://goo.gl/Z7GGL

– CSS 미디어 쿼리를 잘 정리해 둔 글이 있습니다. : http://goo.gl/adA4g

– 웹앱 50개 정리해 둔 아티클인데.. 써본게 몇개 안되네요. 시간 날때 하나씩 골라서 써봐야겠어요. 몇개는 API를 엮으면 작품 하나 나올 듯도 한데요. : http://goo.gl/cd1ce

– cocos2d 책 샘플 소스가 모여 있는데요. 하나씩 꺼내보면 좋을 것 같네요. : http://cocos2dbook.com/cocos2d/sourcecode/

– node.js에서 비동기 코딩에 대한 감을 잡을 수 있는 내용을 번역해 둔 자료가 있습니다. : http://goo.gl/HCHr4

node.js 뉴스 : 12월 29일.

– node.js에 대해 처음 시작할 때 유용해 보이는 아티클이 있어 공유합니다. : http://www.nodebeginner.org/

– node.js에 대한 좋은 한글 자료들이 많이 있는 곳이네요. : http://nodejs-kr.org/insidejs/

– 웹페이지 스크랩 관련 설명이 있는 아티클. : http://goo.gl/ElTbN

node.js 뉴스 : 12월 5일.

– node.js가 비동기 방식으로 동작하면서 매우 좋은 성능을 보인다는 얘기는 많이 하고 있습니다. 하지만, 이런 좋은 성능을 유지하기 위해서는 다양한 경험과 고려가 필요합니다. 그런데, LinkedIn에서 좋은 사례를 기반으로 한 팁을 개발 블로그에 개시해서 소개 드립니다.
간단하게 제목만 소개하면 아래와 같습니다.

놀랍도록 빠른 node.js: 링크드인 모바일에서 사용한 10가지 성능 팀 (Blazing fast node.js: 10 performance tips from LinkedIn Mobile)

1. 동기 방식 코드를 피해라. (Avoid synchronous code)
2. 소켓 풀링을 꺼라. (Turn off socket pooling)
3. 이미지나 CSS와 같은 정적리소스는 node.js에서 서비스하지 마라. -별도의 웹서버로 서비스해라.- (Don’t use Node.js for static assets)
4. 페이지 렌더링은 클라이언트 사이드에서 해라. 정적 리소스라고 볼 수 있는 HTML과 데이터를 분리해서 node.js에서는 데이터만 서비스해라. (Render on the client-side)
5. 요청 응답에 gzip을 사용해라. (Use gzip)
6. 병렬로 처리해라. (Go parallel)
7. 세션을 사용하지 마라. – 서버측에서 상태 유지를 하지 마라.- (Go session-free)
8. 가능한 경우 자바스크립트 대신 바이러리 빌드를 사용해라. (Use binary modules)
9. 스탠다드 구글 V8을 사용해라. (Use standard V8 JavaScript instead of client-side libraries)
10. 코드를 작게 유지하라. (Keep your code small and light)

원문 : http://goo.gl/44lhi

카테고리:node.js 태그:, , ,

node.js 뉴스 : 12월 1일.

– node.js에 대한 정보와 활용하여 만들어지는 여러가지 파생 기능을 모아둔 아티클. 한번 쭉 둘러보기를 권장합니다. : http://goo.gl/btXVh

카테고리:node.js 태그:

Node.js on Android.

개인적으로 node.js가 어디에 쓸모가 있을지를 고민해본 적이 있습니다.
그래서 내린 결론 중의 하나는 node.js는 유비쿼터스한 환경에서 작은 단말들이 연결성을 갖게 될 때, 그 작은 단말들의 통신을 책임져 주는 구조가 될 것이라고 생각을 했습니다.
그런데, 최근에 Android에 node.js를 올리는 시도를 하고 있는 프로젝트가 있네요. 아직은 아주 초기 단계이지만 관심 가져볼 만 합니다.
링크 : http://goo.gl/zsMeS

카테고리:node.js 태그:,

Node.js + ObjC = NodObjC.

node.js를 이용해서 재미있는 프로젝트가 무엇이 있는지를 찾던 중에 발견한 것입니다. 간단히 설명되어 있는 것은 objective-c와 node.js의 다리(bridge)라고 하는 군요.

몇가지 링크와 간단한 예제를 통해 맛을 보도록 하겠습니다.
프로젝트 홈페이지 – https://github.com/TooTallNate/NodObjC
간단한 윈도우를 띄운 예제 (이 예제를 조금 변경해서 실행해 보겠습니다.) – https://gist.github.com/1204212

위의 프로젝트 홈페이지를 통해 프로젝트를 다운 받습니다.
다운 받은 후에 예제의 자바스크립트 파일을 만듭니다. 그리고 node 커맨드로 실행만 하면 맥 윈도우를 만들 수 있습니다.

위의 예에서 보시는 것 처럼 창 타이틀에 제 블로그 주소와 Welcome이 보입니다.
그럼 위 윈도우를 실행하는 소스 코드를 보겠습니다.


var $ = require('[NodObjc의 폴더 위치]')

$.import('Cocoa')

var pool = $.NSAutoreleasePool('alloc')('init')
  , app  = $.NSApplication('sharedApplication')

app('setActivationPolicy', $.NSApplicationActivationPolicyRegular)

var menuBar = $.NSMenu('alloc')('init')('autorelease')
  , appMenuItem = $.NSMenuItem('alloc')('init')('autorelease')

menuBar('addItem', appMenuItem)
app('setMainMenu', menuBar)

var appMenu = $.NSMenu('alloc')('init')('autorelease')
  , appName = $._('Jongryong.wordpress.com. Welcome...')
  , quitTitle = $._('Quit ')('stringByAppendingString', appName)
  , quitMenuItem = $.NSMenuItem('alloc')('initWithTitle', quitTitle
                                        ,'action', 'terminate:'
                                        ,'keyEquivalent', $._('q'))('autorelease')
appMenu('addItem', quitMenuItem)
appMenuItem('setSubmenu', appMenu)

var styleMask = $.NSTitledWindowMask
              | $.NSResizableWindowMask
              | $.NSClosableWindowMask
var window = $.NSWindow('alloc')('initWithContentRect', $.NSMakeRect(0,0,200,200)
                                ,'styleMask', styleMask
                                ,'backing', $.NSBackingStoreBuffered
                                ,'defer', false)('autorelease')
window('cascadeTopLeftFromPoint', $.NSMakePoint(20,20))
window('setTitle', appName)
window('makeKeyAndOrderFront', window)

// set up the app delegate
var AppDelegate = $.NSObject.extend('AppDelegate')
AppDelegate.addMethod('applicationDidFinishLaunching:', 'v@:@', function (self, _cmd, notif) {
  console.log('got applicationDidFinishLauching')
  console.log(notif)
})
AppDelegate.register()

var delegate = AppDelegate('alloc')('init')
app('setDelegate', delegate)

app('activateIgnoringOtherApps', true)
app('run')

위 소스코드를 자세히 소개하지는 않겠습니다. 사실, 저도 잘 모릅니다. ^^;
아무튼 역시나 node.js를 이용한 다양한 시도중에 하나네요. 이런 클라이언트 기반 코드와 node의 통신 환경을 이용하면 간단한 맥용 클라이언트용 툴을 쉽게 만들 수도 있을 것 같습니다.
물론, 아직은 기본적인 것만 지원하는 것으로 보입니다.

Node.js 뉴스 : 9월 7일.

– node.js 라면 역시 비동기 동작이 기본이겠죠. 물론, javascript를 사용하면서 상당히 비동기에 대해서 느낌이 있었지만, 동기 방식과 비동기 방식을 비교한 이 아티클에서 다시 한번 각성을 시켜주네요.
기본 동작을 비동기로 바꾸는게 어렵게 느껴지시는 분들에게 추천합니다. : http://goo.gl/SSRKH

카테고리:node.js 태그:, ,

node.js 뉴스 : 9월 1일

– iis에서 node.js를 올리는 것에 대한 아티클 입니다. 더 이상 WCF는 RESTful 지원을 위한 필요가 없는 걸까요? : http://goo.gl/P3MpJ

– DeviceOrientation과 node.js를 이용해서 간단한 게임을 만든 예제. 오늘 사내 기술 세미나에서 두가지 기술을 이용한 세미나를 진행했었는데. 하지만, 아직 반응속도가 느리네요. : http://goo.gl/6zznk

카테고리:node.js 태그:, ,

HTML5 뉴스 : 9월 1일

– iOS기반의 모바일 웹을 만들어서 홈화면에 등록할 때 시작 이미지, 아이콘을 넣는 방법. (간단한 내용이라 나중에 필요할 때 참조하면 될 듯합니다.) : http://paulofierro.com/archives/568/

– jQuery용 plug-in 10개를 모아두었는데. 이미지 줌 투어와 같은 것은 매우 멋지네요. 다른 것도 괜찮으니 한번 둘러볼 만 합니다. : http://goo.gl/4smjF

– node.js를 이용한 웹게임. 자세히 뜯어 봐야겠습니다. 게임도 나름 전략적이네요. : http://goo.gl/G0iDy
게임링크 : http://o.smus.com/client/

– 아직 모두 지원되지 않는 WebGL을 대체할 수 있는 대안으로 3d를 javascript로 구현할 수 있는 라이브러리가 있나 봅니다. : http://goo.gl/N35Nm

– 브라우져 상단에 표시되는 팦 노티피케이션 작성 아티클 : http://goo.gl/LYqPL

카테고리:HTML5 관련 자료, node.js 태그:, , ,

node.js를 서비스에 활용하는 회사들.

최근에 node.js에 관심을 가지면서 그 활용에 대한 예를 찾아보고 싶었습니다.

그러던 중에 node.js를 사용하는 회사들에 대한 아티클를 보게 되었습니다. (보기 : http://goo.gl/o39pD)
Yammer가 눈에 들어오네요. 역시, 많이 알려진 회사이기 때문이겠죠.
Yammer는 node.js를 proxy로 사용한다는 구문이 있네요. cross domain을 위한 방법이 기존에도 있었지만 (참고, Always Renewal 블로그) 이벤트 기반의 non-blocking 환경에 세션에 대한 리소스 비용을 적게 이용하는 node.js는 정말 proxy와 같은 환경에는 최적이라는 생각이 듭니다.
다른 회사들은 어떨까요? 트윗에 대한 필터링 크롬 익스텐션을 제공하는 Proxlet의 경우는 noSQL인 mongoDB와 node.js를 사용하네요. 특히, 속도에 집중하는 mongoDB와도 node.js는 찰떡궁합일 듯 합니다.

최근(’11/12/5)에 알게된 다른 활용 사례가 있어 소개합니다. 링크드인이 자사의 모바일 웹 관련 서비스를 위해서도 활용하고 있으며, 관련 정보를 제공하고 있어 블로그를 했습니다. 좀 더 구체적인 사례들이 많이 나오고 있네요. 링크드인의 경우도 node.js와 mongoDB를 활용하고 있다고 합니다. 관련 블로그. -> http://goo.gl/3KY2y

최근(’12/01/24)에 알게된 다른 활용 사례가 있어 소개합니다. 월마트에서도 자신들의 모바일 앱의 백엔드 서비스를 위해서 노드를 활용하기 시작한 모양입니다. 관련한 내용은 블로그에 담아두겠습니다. 주로, 하이브리드 앱 스타일로 구성하고, 대부분의 기능은 노드를 통해 서버 사이드에서 기능하도록 해둔 모양입니다. DevBeat 기사-Why walmart is using Node.js

위에서 볼 수 있듯이 node.js의 장점은 분명 존재합니다. 단점으로 지적되는 아직 어린 환경을 극복하고 다양한 기능과 확장을 제공한다면 최근과 같이 서비스에 접근하는 단말이 기하급수적으로 늘어나는 환경에서 node.js는 상당히 선전을 할 수 있을 것이라고 생각되네요.

주.
proxy는 두가지 방식이 있습니다.
forward-proxy라고 불리는 방식과 reverse-proxy라고 불리는 방식입니다.
forward-proxy는 우리가 일반적으로 알고 있는 proxy방식으로 사용하는 단말에 proxy 서버를 설정하면 해당 서버를 통해 목적지로 이동하는 방식입니다.
reverse-proxy의 경우는 사용자는 아무 설정도 없지만 사용자가 proxy를 목적지로 알고 접근하면 그 사용자에 맞는 동작을 하는 진짜 목적지에서 정보를 받아서 반환하는 역할을 합니다.
proxy를 사용하는 다양한 이유가 있지만 익명성도 하나의 목적 중에 하나 입니다. 그런 측면에서는 최근에는 토르 프로젝트라는 것이 있네요. 아직 정확하게 이해는 하지 못했지만 네트워크에 운영되는 시스템에 익명성을 줄 수 있는 프로젝트이고, 중국 등과 같이 검열이 심한 국가를 위해 지원도 하고 있다고 합니다.

%d 블로거가 이것을 좋아합니다: