발생일: 2013.09.26 키워드: 노드웹킷, Node Webkit, NW, NW.js, 일렉트론, Electron, 크로미엄, Chromium, 크로스 플랫폼, cross platform 문제: 얼마 전에 노드웹킷(Node Webkit)을 사용해 프로토타이핑 하는 작업을 맡았었다. 나도 처음 접해보는 거였고, 살펴보면서 메모해둔 게 있어 옮겨둔다. 해결책: https://github.com/rogerwang/node-webkit 소개 크로미엄과 노드를 활용해 네이티브 애플리케이션을 만들 수 있는 환경.HTML, JavaScript, CSS 같은 웹 기술로 네이티브 앱을 만들 수 있다. node-webkit slidehttps://speakerdeck.com/zcbenz/node-webkit-app-r..
발생일: 2013.10.04 문제: 어디서 보고 읽게 된 건진 잘 기억나지 않지만,노드에서 자식 프로세스를 실행하는 `spawn`과 `exec` 메서드의 차이를 잘 정리해둔 포스트가 있었다. 포스트를 읽으면서 메모해둔 게 있어 옮겨둔다. 해결책: http://www.hacksparrow.com/difference-between-spawn-and-exec-of-node-js-child_process.html `spawn`과 `exec`가 하는 작업은 동일하지만, `spawn`은 스트림(stream)을 리턴하고, `exec`는 버퍼(buffer)를 리턴한다. `spawn`은 `stdout`과 `stderr` 스트림을 포함한 객체를 리턴한다.자식 프로세스의 표준 출력을 `stdout` 객체로 받아 처리할 수 ..
발생일: 2013.04.29 문제: Express 서버를 띄운 후에, 예기치 않은 오류가 발생해서 서버가 종료됐다.서버를 다시 시작하려니 아래와 같은 메시지가 나오면서 시작되지 않는다. $ node app.js events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:770:11) at Server._listen2 (net.js:910:14) at listen (net.js:937:10) at Server.listen (net.js:986:5) at Object. (/Users/ohgyun/mywork/git-workspace/everydaywordbook/sr..
발생일: 2013.03.09 문제: 작은 node 앱에 Express 를 사용하고 있다.기본 HTTP 모듈과 Express 의 역할에 대해선 잘 알겠는데,Connect 에 대해선 명확히 감이 잡히지 않는다. Connect 는 정확히 뭐고, 세 모듈의 관계는 어떻게 될까? 해결책: 간략한 결론 먼저.노드는 기본적으로 HTTP 모듈을 가지고 있고,Connect 는 HTTP 모듈에 여러 플러그인(정적 파일, 로깅, 캐싱, 압축 등)을 추가할 수 있는 미들웨어 프레임워크다.Express 는 Connect 를 내장하고 있는 웹 애플리케이션 프레임워크다. 좀더 자세히,Connect 위주로 찬찬히 살펴보면, 다음과 같다. node.js 에서는 기본적으로 HTTP 모듈을 내장하고 있고,아래와 같이 createServe..
발생일: 2013.02.01 문제: 1월부터 팀원들과 함께 노드 스터디를 진행하려고 'node.js 프로그래밍'이란 책을 샀더랬다.헌데, 갑자기 팀이 나뉘어 모두 헤어지게 된 터라(ㅠ ㅠ),스터디도 자연스럽게 해체됐고 읽다만 책만 덩그러니 남았다. 첫 몇 장의 내용이 꽤 괜찮았던 터라, 어제부터 남은 부분을 쭉- 읽어봤다. 중요한 요소 요소를 예제를 들어가며 이해하기 쉽게 잘 설명하고 있다.예전에 몇몇 모듈을 만들어보다 겪었던 문제들에 대한 내용도 잘 설명되어 있더라.미리 읽어봤더라면 시간을 많이 절약할 수 있었을 텐데...라는 생각이 들었다.^^ 나중에 인덱스 용도로 참고할 목적으로 작성한 메모를 옮겨둔다. 여기선 4장부터의 내용만 메모했다.1장의 내용은 이전 포스트를 참고하면 되고,2장과 3장은 설치..
발생일: 2012.01.15 문제: 팀에서 노드(Node.js) 스터디를 하고 있다. 노드가 처음은 아니고, 얼마 전 노드로 작은 모듈을 만들어보기도 했지만,책을 읽으니 확실히 좋다. :) 지금은 '노드제이에스 프로그래밍'이란 책으로 스터디를 진행하고 있는데,글도 매끄럽고 쉽게 잘 읽혀져 좋다. http://book.naver.com/bookdb/book_detail.nhn?bid=6818977 책의 1장에 노드의 탄생 배경에 대한 내용이 있는데,꼭 알아두면 좋을 것 같아 메모해둔다. (노드 예찬론자였던 양형이 생각난다. ㅎㅎ) 해결책: var result = db.query('SELECT * FROM table');// result를 사용 일반적인 프로그래밍 언어나 플랫폼에서는 Blocking I/O ..
발생일: 2013.01.10 문제: node 에 포함된 npm(Node Package Manager)으로 패키지를 관리할 수 있다.헌데 node 자체의 버전 관리는 어떻게 하나~? 해결책: 노드 버전 관리 매니저가 있다. nave & nvm 대표적으로 nave와 nvm이 있고, 명령어나 사용법은 거의 동일하다. nave - Virtual Environments for Node - https://github.com/isaacs/nave - npm 패키지로 등록되어 있어서 npm을 통해 설치하면 된다. `npm install -g nave` nvm - Node Version Manager - https://github.com/creationix/nvm - curl이나 wget으로 install.sh을 다운로..
발생일: 2012.11.06 문제: 지난 주말엔 회사에서 주최하는 해커톤(hackathon) 행사에 참석했었다. 이번엔 모바일 브라우저에서 PC 브라우저의 마우스를 컨트롤 할 수 있는 리모트 컨트롤러를 만들었다. 컨트롤러는 트위터 부트스트랩과 Raphael.js로 꾸미고, require.js로 모듈화했고,통신은 웹소켓으로 하고, 소켓 서버는 node.js를 사용했다. 작업한 코드는 github에 넣어뒀다.https://github.com/ohgyun/remote-controller 여기까지 작업하는데 대략 10시간 정도 걸린 것 같다. 비몽사몽이라 기억이.. @_@ 여튼, 작업 중간중간 메모해둔 게 있어 옮겨둔다. 해결책: node.js 웹소켓 서버 https://npmjs.org/package/webs..
발생일: 2012.10.17 문제: 조만간 진행할 미니 프로젝트에서 node.js를 사용하기로 했다. node.js는 어깨 너머로 보기만 했지, 실제로 사용해본 적은 없었다. 이참에 연습도 할 겸,얼마 전 만든 라이브러리의 새 버전 배포 알람 메일링 배치 파일을 node.js 로 만들어봤다. 아래는 작업하면서 메모해둔 내용을 정리한 것이다. 해결책: 시작하기, 완전 초보 가이드 http://nodeguide.com/beginner.html 오래된 버전이지만, 기본적인 개념에 대해 명료하게 설명한다. 유용한 라이브러리나 모듈을 가져다 쓰려면? https://npmjs.org/ Node Package Manager에서 가져온다. npm 간단 사용법 http://howtonode.org/introduction..