Node.js at OKJSP

3,419 views

Published on

2월 11일 OKJSP 정기세미나에서 발표한 발표자료입니다.

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,419
On SlideShare
0
From Embeds
0
Number of Embeds
1,521
Actions
Shares
0
Downloads
50
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Node.js at OKJSP

  1. 1. 2012.2.11OutsideratOKJSP정기세미나
  2. 2. isserver-side JavaScript
  3. 3. Iexpectedit because Netscapeactuallywantedtodothat. BrendanEich,CTOatMozilla
  4. 4. Event-Loop
  5. 5. Application
  6. 6. FileSystem Application
  7. 7. Database FileSystem Application
  8. 8. Database Network FileSystem Application
  9. 9. Database Network FileSystem Application
  10. 10. Database Network File System ApplicationInput/Output
  11. 11. I/Olatency L1 1ns L2 4.7ns RAM 83ns DISK 13,700,000nsInternet 80,000,000ns http://duartes.org/gustavo/blog/post/what-your-computer-does-while-you-wait
  12. 12. varresult=db.query(쿼리);//result를사용한다.
  13. 13. varresult=db.query(쿼리);//result를사용한다.db.query(쿼리,function(result){//result를사용한다.});
  14. 14. varresult=db.query(쿼리);//result를사용한다. Syncdb.query(쿼리,function(result){//result를사용한다.}); Async
  15. 15. 코드실행
  16. 16. DB조회코드실행
  17. 17. DB조회코드실행 코드실행
  18. 18. DB조회 파일조회코드실행 코드실행
  19. 19. DB조회 파일조회코드실행 코드실행 코드실행
  20. 20. DB조회 파일조회코드실행 코드실행 코드실행 코드실행
  21. 21. DB조회 파일조회코드실행 코드실행 코드실행 DB조회 코드실행
  22. 22. DB조회 파일조회코드실행 코드실행 코드실행 파일조회 DB조회 코드실행
  23. 23. DB조회 파일조회코드실행 코드실행 코드실행 파일조회 DB조회 코드실행 콜백실행
  24. 24. DB조회 파일조회코드실행 코드실행 코드실행 파일조회 DB조회 코드실행 콜백실행 콜백실행
  25. 25. Sync DB조회 파일조회코드실행 코드실행 코드실행 파일조회 Async DB조회 코드실행 콜백실행 콜백실행
  26. 26. varserver=require(http);server.createServer();server.on(request,function(req,res){});server.listen(3000,localhost);console.log(서버가시작되었습니다.);
  27. 27. 드 실행코 varserver=require(http); server.createServer(); server.on(request,function(req,res){ }); server.listen(3000,localhost); console.log(서버가시작되었습니다.);
  28. 28. 드 실행코 varserver=require(http); server.createServer(); 너 등록 트리스이벤 server.on(request,function(req,res){ }); server.listen(3000,localhost); console.log(서버가시작되었습니다.);
  29. 29. 드 실행코 varserver=require(http); server.createServer(); 너 등록 실행 트리스 콜 백이벤 server.on(request,function(req,res){ }); server.listen(3000,localhost); console.log(서버가시작되었습니다.);
  30. 30. EverythingisNon-blockingI/O
  31. 31. varresult=db.query(쿼리);//result를사용한다.db.query(쿼리,function(result){//result를사용한다.});
  32. 32. varresult=db.query(쿼리);//result를사용한다. Blockdb.query(쿼리,function(result){//result를사용한다.}); non-B lock
  33. 33. JavaScriptonV8
  34. 34. SingleThread SingleStack
  35. 35. console.log(HelloWorld); HelloWorld
  36. 36. setTimeout(function(){console.log(World);},2000);console.log(Hello); HelloWorld
  37. 37. setTimeout(function(){console.log(World);},2000);console.log(Hello);while(true){} HelloWorld
  38. 38. nodeexecutionstack ev_loop()
  39. 39. index.html페이지요청 nodeexecution stack ev_loop()
  40. 40. index.html페이지요청 socket_readable(1) nodeexecution stack ev_loop()
  41. 41. index.html페이지요청 http_parse(1) socket_readable(1) nodeexecution stack ev_loop()
  42. 42. index.html페이지요청 load(“index.html”) http_parse(1) socket_readable(1) nodeexecution stack ev_loop()
  43. 43. index.html페이지요청 http_parse(1) socket_readable(1) nodeexecution stack ev_loop()
  44. 44. index.html페이지요청 socket_readable(1) nodeexecution stack ev_loop()
  45. 45. index.html페이지요청 nodeexecution stack ev_loop()
  46. 46. 메모리에대한두번째요청 nodeexecution stack ev_loop()
  47. 47. 메모리에대한두번째요청 socket_readable(2) nodeexecution stack ev_loop()
  48. 48. 메모리에대한두번째요청 http_parse(2) socket_readable(2) nodeexecution stack ev_loop()
  49. 49. 메모리에대한두번째요청 http_respond(2) http_parse(2) socket_readable(2) nodeexecution stack ev_loop()
  50. 50. 메모리에대한두번째요청 http_parse(2) socket_readable(2) nodeexecution stack ev_loop()
  51. 51. 메모리에대한두번째요청 socket_readable(2) nodeexecution stack ev_loop()
  52. 52. 메모리에대한두번째요청 nodeexecution stack ev_loop()
  53. 53. index.html페이지요청 nodeexecution stack ev_loop()
  54. 54. index.html페이지요청 file_loaded() nodeexecution stack ev_loop()
  55. 55. index.html페이지요청 http_respond(1) file_loaded() nodeexecution stack ev_loop()
  56. 56. index.html페이지요청 file_loaded() nodeexecution stack ev_loop()
  57. 57. index.html페이지요청 nodeexecution stack ev_loop()
  58. 58. CommonJS
  59. 59. require(모듈명)
  60. 60. //app.jsvarapp=module.exports={};//another.jsvaranother=require(./app)
  61. 61. Questions...?Blog:http://blog.outsider.ne.krTwitter:@outsiderisemail:outsideris@gmail.com

×