SlideShare a Scribd company logo
Inside node.js
•
•
•
•
Inside node.js
•
•
•
•
http://socialmetrics.co.kr/searchKeywordMap.html
http://www.google.com/trends/
•
•
•
•
•
•
•
•
•
•
•
•
Inside node.js
•
•
•
•
•
•
•
•
Inside node.js
•
•
•
•
http://blog.gopivotal.com/cloud-foundry-pivotal/products/future-
proofing-your-apps-cloud-foundry-and-node-js
Inside node.js
http://blog.gopivotal.com/cloud-foundry-pivotal/products/future-
proofing-your-apps-cloud-foundry-and-node-js
Inside node.js
•
•
•
•
•
C/C++ libraries
node bindings
standard libraries
application codes
javascript
C/C++
node
lib src
uv
cares
http_parser
openssl
V8
zlib
standard
libraries
node
bindings
zlib
event, non-block I/O
async DNS library
http message parser
cryptography
javascript engine
Inside node.js
Inside node.js
src/node.cc
node V8 libuv
매개변수에 따라
V8 컨텍스트 생성
및 표준 모듈 초기화
기본 루프 실행
메인 스크립트 실행
hello world 출력
IOCP 이벤트 루프 시작
open
event loopV8 I/O threadfs
fs.open()
binding
Open()
ASYNC_CALL
uv_fs_open()
fs__open()
SET_REQ_RESULT()
데이터 출력
uv_poll_ex()
uv_process_reqs()
req->cb()
•
•
listen
event loopV8 libuvnet
Server.listen()
binding
Listen()
uv_listen()
acceptex()
웹 브라우저 tcp 접속 시,
uv_process_tcp_accept_req()
TCPWrap::OnConnection()
Server.on(‘connection’)
event loopV8 libuv
StreamWrap::ReadStart
binding
uv_tcp_read_start()
uv_process_tcp_read_req()
uv_tcp_queue_read()
WSARecv()
socket.on(‘end’)
request.on(‘end’)
uv_read_start()
event loopV8 libuv
StreamWrap::WriteBuffer()
binding
uv_tcp_write()
다 전송 될 때 까지
계속 전송 시도
전송완료 후 노티
response.on(‘end’)
uv_write()
•
•
•
•
•
•
while
web browser http
페이지 요청
event loop
리스너 실행
무한 루프
묵묵부답…
서비스 불가
웹 브라우저는
계속 로딩만…
•
•
• 무한루프
•
•
•
•
Inside node.js

More Related Content

PDF
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
PDF
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
PDF
Node.js 시작하기
PPTX
Node.js + Websocket 삽질기
PDF
MEAN Stack 기반 모바일 서비스 개발 overview
PDF
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
PPTX
Soscon2017 오픈소스를 활용한 마이크로 서비스의 캐시 전략
PDF
세션3 node.js의 의미와 자바의 대안
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
Node.js 시작하기
Node.js + Websocket 삽질기
MEAN Stack 기반 모바일 서비스 개발 overview
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
Soscon2017 오픈소스를 활용한 마이크로 서비스의 캐시 전략
세션3 node.js의 의미와 자바의 대안

What's hot (20)

PDF
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
PPTX
[123] electron 김성훈
PDF
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
PPTX
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
PDF
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
PDF
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
PDF
[111217 아꿈사연말모임] 웹소켓과온라인게임
PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
PPTX
댓글 플러그인 아포가토
PPTX
Beejei node.js & web service
PPTX
자바가 디비와 사귀기 까지 벌어지는 일들
PDF
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
PDF
vuetiful korea 발표자료
PDF
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
PDF
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
PDF
Isomorphicspring Isomorphic - spring web seminar 2015
PPTX
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
PPTX
빌드 속도를 올려보자
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
[123] electron 김성훈
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
[111217 아꿈사연말모임] 웹소켓과온라인게임
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
댓글 플러그인 아포가토
Beejei node.js & web service
자바가 디비와 사귀기 까지 벌어지는 일들
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
vuetiful korea 발표자료
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
Isomorphicspring Isomorphic - spring web seminar 2015
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
빌드 속도를 올려보자
Ad

Viewers also liked (13)

PPTX
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
PPTX
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
PPTX
What’s new in c++11
PDF
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
PPTX
Rhea mmo node_for_share
PPT
Rhea_MMO_SNG_Convergence_Server_Architecture
PPTX
스마트폰 온라인 게임에서 고려해야 할 것들
PPTX
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PPTX
Testing nodejs apps
PPTX
넌프로그래머를 위한 서버/네트워크
PDF
안정적인 서비스 운영 2014.03
PDF
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
PDF
Node.js 기본
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
What’s new in c++11
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
Rhea mmo node_for_share
Rhea_MMO_SNG_Convergence_Server_Architecture
스마트폰 온라인 게임에서 고려해야 할 것들
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
Testing nodejs apps
넌프로그래머를 위한 서버/네트워크
안정적인 서비스 운영 2014.03
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
Node.js 기본
Ad

Similar to Inside node.js (20)

PPTX
Source To URL Without Dockerfile
PDF
01.모바일 프레임워크 이론
PDF
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
PDF
[OkdevTV] 2024년 9월 2일 개발 이야기
PPTX
PPTX
Datasnap web client
PDF
2020년 10월 24일 개발자 이야기
PDF
Mozilla 오픈 웹 모바일 플랫폼 (2012)
PDF
Spring boot 5장 cli
PDF
(OkdevTV) 2024년 10월 16일 개발 이야기
PDF
2020년 9월 5일 개발 이야기 정리
PDF
WebKit at the Future Web Forum 2010
PDF
도구를 활용한 더 나은 웹 개발: Yeoman
PDF
2021년 4월 10일 개발자 이야기
PDF
2020년 4월 18일 개발 이야기 정리
PDF
Social Tutorial Platform: Webbles
PDF
Jenkins를 활용한 Openshift CI/CD 구성
PDF
웹 IDE 비교
PDF
웹브라우저는 어떻게 동작하나?
PDF
CSS Round Display KIG 발표자료
Source To URL Without Dockerfile
01.모바일 프레임워크 이론
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
[OkdevTV] 2024년 9월 2일 개발 이야기
Datasnap web client
2020년 10월 24일 개발자 이야기
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Spring boot 5장 cli
(OkdevTV) 2024년 10월 16일 개발 이야기
2020년 9월 5일 개발 이야기 정리
WebKit at the Future Web Forum 2010
도구를 활용한 더 나은 웹 개발: Yeoman
2021년 4월 10일 개발자 이야기
2020년 4월 18일 개발 이야기 정리
Social Tutorial Platform: Webbles
Jenkins를 활용한 Openshift CI/CD 구성
웹 IDE 비교
웹브라우저는 어떻게 동작하나?
CSS Round Display KIG 발표자료

Inside node.js