2012.2.11
OutsideratOKJSP정기세미나
is
server-side
 JavaScript
Iexpectedit
             because
 Netscapeactually
wantedtodothat.

            BrendanEich,CTOatMozilla
Event-Loop
Application
File
System



                Application
Database


 File
System



                           Application
Database         Network


 File
System



                           Application
Database         Network


 File
System



                           Application
Database         Network


  File
 System



                            Application

Input/Output
I/Olatency

       L1                                                              1ns
       L2                                                          4.7ns
     RAM                                                             83ns
    DISK                                          13,700,000ns
Internet                                          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를사용한다.          Sync

db.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('서버가시작되었습니다.');
Everythingis
Non-blockingI/O
varresult=db.query('쿼리');
//result를사용한다.



db.query('쿼리',function(result){
//result를사용한다.
});
varresult=db.query('쿼리');
//result를사용한다.         Block

db.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페이지요청




    node
execution
    stack
                    ev_loop()
index.html페이지요청




                    socket_readable(1)
    node
execution
    stack
                        ev_loop()
index.html페이지요청




                      http_parse(1)
                    socket_readable(1)
    node
execution
    stack
                        ev_loop()
index.html페이지요청


                    load(“index.html”)
                      http_parse(1)
                    socket_readable(1)
    node
execution
    stack
                        ev_loop()
index.html페이지요청




                      http_parse(1)
                    socket_readable(1)
    node
execution
    stack
                        ev_loop()
index.html페이지요청




                    socket_readable(1)
    node
execution
    stack
                        ev_loop()
index.html페이지요청




    node
execution
    stack
                    ev_loop()
메모리에대한두번째요청




    node
execution
    stack
                         ev_loop()
메모리에대한두번째요청




                    socket_readable(2)
    node
execution
    stack
                         ev_loop()
메모리에대한두번째요청




                      http_parse(2)
                    socket_readable(2)
    node
execution
    stack
                         ev_loop()
메모리에대한두번째요청


                     http_respond(2)
                      http_parse(2)
                    socket_readable(2)
    node
execution
    stack
                         ev_loop()
메모리에대한두번째요청




                      http_parse(2)
                    socket_readable(2)
    node
execution
    stack
                         ev_loop()
메모리에대한두번째요청




                    socket_readable(2)
    node
execution
    stack
                         ev_loop()
메모리에대한두번째요청




    node
execution
    stack
                         ev_loop()
index.html페이지요청




    node
execution
    stack
                    ev_loop()
index.html페이지요청




                    file_loaded()
    node
execution
    stack
                     ev_loop()
index.html페이지요청




                    http_respond(1)
                     file_loaded()
    node
execution
    stack
                       ev_loop()
index.html페이지요청




                    file_loaded()
    node
execution
    stack
                     ev_loop()
index.html페이지요청




    node
execution
    stack
                    ev_loop()
CommonJS
require('모듈명')
//app.js
varapp=module.exports={};


//another.js
varanother=require('./app')
Node.js at OKJSP
Questions...?

Blog:http://blog.outsider.ne.kr
Twitter:@outsideris
email:outsideris@gmail.com

More Related Content

PDF
Node.js 자바스크립트로 서버사이드 개발하기
PDF
Node.js 현재와 미래
PPTX
Node.js
PPTX
Leadweb Nodejs
PDF
Javascript everywhere - Node.js | Devon 2012
PDF
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
PPTX
Rhea mmo node_for_share
PDF
Node.js 시작하기
Node.js 자바스크립트로 서버사이드 개발하기
Node.js 현재와 미래
Node.js
Leadweb Nodejs
Javascript everywhere - Node.js | Devon 2012
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
Rhea mmo node_for_share
Node.js 시작하기

What's hot (20)

PDF
세션3 node.js의 의미와 자바의 대안
PPTX
Node.js의 도입과 활용
PPTX
Nodejs, PhantomJS, casperJs, YSlow, expressjs
PDF
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
PPTX
Node.js + Websocket 삽질기
PPTX
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
PPTX
Nodejs 발표자료
PDF
Play node conference
PPTX
Startup JavaScript 7 - Node.JS 기초
PPTX
공성대전 C# 사용기
PDF
Node.js in Flitto
PPTX
Startup JavaScript 9 - Socket.IO 실시간 통신
PDF
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
PDF
Node.js 팀 스터디 발표자료.
PPTX
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
PPTX
What is the meteor?
PDF
Node.js 기본과정
PDF
Node.js 심화과정
PPTX
Vert.x
PPTX
[세미나] Vagrant 이지원
세션3 node.js의 의미와 자바의 대안
Node.js의 도입과 활용
Nodejs, PhantomJS, casperJs, YSlow, expressjs
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
Node.js + Websocket 삽질기
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
Nodejs 발표자료
Play node conference
Startup JavaScript 7 - Node.JS 기초
공성대전 C# 사용기
Node.js in Flitto
Startup JavaScript 9 - Socket.IO 실시간 통신
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Node.js 팀 스터디 발표자료.
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
What is the meteor?
Node.js 기본과정
Node.js 심화과정
Vert.x
[세미나] Vagrant 이지원
Ad

Similar to Node.js at OKJSP (20)

KEY
Html5 performance
PPTX
Jdk(java) 7 - 5. invoke-dynamic
PPTX
Node js[stg]onimusha 20140822
PDF
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
PDF
Node.js 첫걸음
PDF
막하는 스터디 첫 번째 만남 Node.js
PPTX
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
PDF
vert.x 를 활용한 분산서버 개발하기
PPTX
Startup JavaScript 8 - NPM, Express.JS
PDF
Nginx basic configurations
PDF
Scala for play
PDF
Node.js 기본
PPTX
Spark sql
PPTX
ARTIK 710 IoT class 02
PDF
[2D4]Python에서의 동시성_병렬성
PPTX
Java Virtual Machine, Call stack, Java Byte Code
PDF
Ji 개발 리뷰 (신림프로그래머)
PDF
세션1. block chain as a platform
PDF
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
PDF
[232] 성능어디까지쥐어짜봤니 송태웅
Html5 performance
Jdk(java) 7 - 5. invoke-dynamic
Node js[stg]onimusha 20140822
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
Node.js 첫걸음
막하는 스터디 첫 번째 만남 Node.js
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
vert.x 를 활용한 분산서버 개발하기
Startup JavaScript 8 - NPM, Express.JS
Nginx basic configurations
Scala for play
Node.js 기본
Spark sql
ARTIK 710 IoT class 02
[2D4]Python에서의 동시성_병렬성
Java Virtual Machine, Call stack, Java Byte Code
Ji 개발 리뷰 (신림프로그래머)
세션1. block chain as a platform
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
[232] 성능어디까지쥐어짜봤니 송태웅
Ad

More from JeongHun Byeon (20)

PDF
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
PDF
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
PDF
오픈소스에 기여할 때 알면 좋을 개발 프로세스
PDF
DevOps를 가속화하는 플랫폼 엔지니어링
PDF
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
PDF
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
PDF
Citizen 개발기
PDF
오픈소스 뒤에 메인테이너 있어요
PDF
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
PDF
Lessons from maintaining Mocha, an open source project
PDF
개발 관련 기술 블로그 운영하기
PDF
Terraform을 이용한 Infrastructure as Code 실전 구성하기
PDF
오픈소스 생태계 일원으로서의 개발자(자막 버전)
PDF
오픈소스 생태계 일원으로서의 개발자
PDF
Node.js API 서버 성능 개선기
PDF
더 나은 개발자 되기
PDF
블로그 주도 개발
PDF
Front-end Development Process - 어디까지 개선할 수 있나
PDF
Nodejs Production 적용기
PDF
Sublime Text tips & trikcs
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
오픈소스에 기여할 때 알면 좋을 개발 프로세스
DevOps를 가속화하는 플랫폼 엔지니어링
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
Citizen 개발기
오픈소스 뒤에 메인테이너 있어요
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
Lessons from maintaining Mocha, an open source project
개발 관련 기술 블로그 운영하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기
오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자
Node.js API 서버 성능 개선기
더 나은 개발자 되기
블로그 주도 개발
Front-end Development Process - 어디까지 개선할 수 있나
Nodejs Production 적용기
Sublime Text tips & trikcs

Node.js at OKJSP