• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Node.js at OKJSP
 

Node.js at OKJSP

on

  • 2,499 views

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

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

Statistics

Views

Total Views
2,499
Views on SlideShare
1,236
Embed Views
1,263

Actions

Likes
3
Downloads
39
Comments
0

8 Embeds 1,263

http://blog.outsider.ne.kr 1151
http://www.hanrss.com 51
http://feeds2.feedburner.com 31
http://dc.inogard.co.kr 23
http://reader.googleusercontent.com 3
http://127.0.0.1 2
http://feeds.feedburner.com 1
http://dev.goorm.io 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Node.js at OKJSP Node.js at OKJSP Presentation Transcript

    • 2012.2.11OutsideratOKJSP정기세미나
    • isserver-side JavaScript
    • Iexpectedit because Netscapeactuallywantedtodothat. BrendanEich,CTOatMozilla
    • Event-Loop
    • Application
    • FileSystem Application
    • Database FileSystem Application
    • Database Network FileSystem Application
    • Database Network FileSystem Application
    • Database Network File System ApplicationInput/Output
    • 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
    • varresult=db.query(쿼리);//result를사용한다.
    • varresult=db.query(쿼리);//result를사용한다.db.query(쿼리,function(result){//result를사용한다.});
    • varresult=db.query(쿼리);//result를사용한다. Syncdb.query(쿼리,function(result){//result를사용한다.}); Async
    • 코드실행
    • DB조회코드실행
    • DB조회코드실행 코드실행
    • DB조회 파일조회코드실행 코드실행
    • DB조회 파일조회코드실행 코드실행 코드실행
    • DB조회 파일조회코드실행 코드실행 코드실행 코드실행
    • DB조회 파일조회코드실행 코드실행 코드실행 DB조회 코드실행
    • DB조회 파일조회코드실행 코드실행 코드실행 파일조회 DB조회 코드실행
    • DB조회 파일조회코드실행 코드실행 코드실행 파일조회 DB조회 코드실행 콜백실행
    • DB조회 파일조회코드실행 코드실행 코드실행 파일조회 DB조회 코드실행 콜백실행 콜백실행
    • Sync DB조회 파일조회코드실행 코드실행 코드실행 파일조회 Async DB조회 코드실행 콜백실행 콜백실행
    • varserver=require(http);server.createServer();server.on(request,function(req,res){});server.listen(3000,localhost);console.log(서버가시작되었습니다.);
    • 드  실행코 varserver=require(http); server.createServer(); server.on(request,function(req,res){ }); server.listen(3000,localhost); console.log(서버가시작되었습니다.);
    • 드  실행코 varserver=require(http); server.createServer(); 너  등록 트리스이벤 server.on(request,function(req,res){ }); server.listen(3000,localhost); console.log(서버가시작되었습니다.);
    • 드  실행코 varserver=require(http); server.createServer(); 너  등록  실행 트리스 콜 백이벤 server.on(request,function(req,res){ }); server.listen(3000,localhost); console.log(서버가시작되었습니다.);
    • EverythingisNon-blockingI/O
    • varresult=db.query(쿼리);//result를사용한다.db.query(쿼리,function(result){//result를사용한다.});
    • varresult=db.query(쿼리);//result를사용한다. Blockdb.query(쿼리,function(result){//result를사용한다.}); non-B lock
    • JavaScriptonV8
    • SingleThread SingleStack
    • console.log(HelloWorld); HelloWorld
    • setTimeout(function(){console.log(World);},2000);console.log(Hello); HelloWorld
    • setTimeout(function(){console.log(World);},2000);console.log(Hello);while(true){} HelloWorld
    • nodeexecutionstack ev_loop()
    • index.html페이지요청 nodeexecution stack ev_loop()
    • index.html페이지요청 socket_readable(1) nodeexecution stack ev_loop()
    • index.html페이지요청 http_parse(1) socket_readable(1) nodeexecution stack ev_loop()
    • index.html페이지요청 load(“index.html”) http_parse(1) socket_readable(1) nodeexecution stack ev_loop()
    • index.html페이지요청 http_parse(1) socket_readable(1) nodeexecution stack ev_loop()
    • index.html페이지요청 socket_readable(1) nodeexecution stack ev_loop()
    • index.html페이지요청 nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 socket_readable(2) nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 http_parse(2) socket_readable(2) nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 http_respond(2) http_parse(2) socket_readable(2) nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 http_parse(2) socket_readable(2) nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 socket_readable(2) nodeexecution stack ev_loop()
    • 메모리에대한두번째요청 nodeexecution stack ev_loop()
    • index.html페이지요청 nodeexecution stack ev_loop()
    • index.html페이지요청 file_loaded() nodeexecution stack ev_loop()
    • index.html페이지요청 http_respond(1) file_loaded() nodeexecution stack ev_loop()
    • index.html페이지요청 file_loaded() nodeexecution stack ev_loop()
    • index.html페이지요청 nodeexecution stack ev_loop()
    • CommonJS
    • require(모듈명)
    • //app.jsvarapp=module.exports={};//another.jsvaranother=require(./app)
    • Questions...?Blog:http://blog.outsider.ne.krTwitter:@outsiderisemail:outsideris@gmail.com