Node.js 팀 스터디 발표자료.

2,029 views
1,851 views

Published on

2012년 9월 Node.js 팀 스터디 발표자료.

Published in: Technology
2 Comments
2 Likes
Statistics
Notes
  • @slash99 네, 조언 감사합니다. 더 큰 세상을 바라보도록 노력하겠습니다.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 이런 문법이 중요하지 않습니다. 물론, 쓰임새에 따라서는 다르겠지만 ... 프로세스에 집중하세요. code보다는 현실의 세계를 바라보시고 돈이나 재화들이 어떻게 움직이는지 확인해 보세요. 그것을 샘플링하세요. ^^
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,029
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
35
Comments
2
Likes
2
Embeds 0
No embeds

No notes for slide

Node.js 팀 스터디 발표자료.

  1. 1. 황급히
  2. 2.  배워보는
  3. 3.  Node.js 2012.09.25 asbubam@gmail.com
  4. 4. What is Node.jsCreated by Ryan Dahl starting in 2009.02 (personal project)JavaScript Runtime on V8 JavaScript engine (Google Chrome Webbrowser) basedServer Side JavaScriptimplements some CommonJS (JavaScript: not just for browsers anymore!) standard spec like Couch DB, RingoJSSingle Thread(Not Multi Thread), Single Stack, Event LoopEverything is Nonblocking I/O, But 개발자가 작성한 코드(싱글쓰레드)는 동기
  5. 5. History2009.02.09 Ryan posted “Event driven TCP library HTTPServer on chrome web browser’s V8 engine” idea.inspiration from (CouchDB, Ebb, Flow, FUSE, libebb, libeio, libev,libircclient, Merb, Mongrel, NGINX, nginx-ey-balancer, Ragel, Rubyon Rails, SqueezeBox, timber lang, XUpload)2009.02.15 created GitHub repository2009.11.07 v0.1.16 in JSConf.eu2012.09.20 v0.8.9 14,919 NPM packages
  6. 6. Advantages* 동시 접속 수에 따른 초당 요청 처리 수가 멀티쓰레딩에 비해 월등함. 100명의 동접자, 1메가 바이트 응답 node 822 req/sec nginx 708 req/sec thin 85 req/sec mongrel 4 req/sec* 2012년 9월 현재 14,919 개의 Package가 존재, 개발이 용이* JavaScript
  7. 7. DisadvantagesCPU 개수, Memory 용량을 높여도 성능이 크게 향상되지 않는다.(노드 인스턴스를 여러 개 실행함으로써 해결 가능)짧은 역사로 인해 다양한 상황에서의 검증이 이뤄지지 않음callback style 구현의 어려움
  8. 8. blocking / nonblocking* blocking (동기) puts(“이름을 입력하세요”); var name = gets(); puts(“당신의 이름은 “ + name + “입니다.”); puts(“next work.”);* nonblocking (비동기) puts(“이름을 입력하세요”); gets(function(name) { puts(“당신의 이름은 “ + name + “입니다.”); }); puts(“next work.”);
  9. 9. Coding convention* 들여쓰기 들여쓰기는 공백 2칸으로 한다.* 세미콜론 세미콜론은 항상 사용한다.* 작은따옴표 문자열 등은 큰 따옴표 대신 작은따옴표를 사용한다.* 중괄호 다음과 같이 작성한다. if (true) { //내용 }* 변수 소문자로 시작하는 카멜케이스(camel case) 사용* 클래스 대문자로 시작하는 카멜케이스 사용* 상수 모두 대문자* 동등비교 == 대신 ===를 사용한다.* 콜백함수 콜백함수에서 첫 파라미터는 에러 파라미터로 사용한다. callback(err, param1, param2)
  10. 10. ex) simple web servervar http = require(http);http.createServer(function (req, res) { res.writeHead(200, {Content-Type: text/plain}); res.end(Hello Worldn);}).listen(1337, 127.0.0.1);console.log(Server running at http://127.0.0.1:1337/);
  11. 11. ex) tcp servervar net = require(net);var server = net.createServer(function (socket) { socket.write(Echo serverrn); socket.pipe(socket);});server.listen(1337, 127.0.0.1);
  12. 12. ex) File Systemvar fs = require(fs);fs.readFile(‘./test.txt’, encoding=‘utf-8’, function(err, data) { if (err) { throw err; } console.log(data);});console.log(‘파일의 내용 : ’);//infinite loopwhile(true) {}//safesetTimeout(function() { console.log(5 secs timeout);}, 5000);
  13. 13. Node.js스러운
  14. 14.  코드
  15. 15.  작성법The Node Beginner Book http://www.nodebeginner.org/index-kr.html
  16. 16. npm (node package manager)* global install npm install 패키지명 -g* local install npm install 패키지명* uninstall npm uninstall 패키지명* update npm update* search npm search 검색어
  17. 17. Packages to Tryexpress socket.io - web framework - realtime networkingpersist async - ORM framework - async helpersdb-migrate VOWS - database migrations - BDD frameworkdnode java - RPC - bridge to Java API
  18. 18. Service using node.jsLinkedIn (http://www.linkedin.com)Trello (http://trello.com) express + socket.ioYammer (http://www.yammer.com) private social networkCloud9 IDE (http://c9.io) Node.js + Socket.io네이버 개발자 노트 (http://github.com/nforge/devnote) 마크다운 기반위키프로젝트 프로젝트 빌드/테스트 ServerSide/Front-end 모두 자바스크립트로만 작성
  19. 19. End

×