Submit Search
Upload
vert.x 소개 및 개발 실습
•
11 likes
•
2,803 views
John Kim
Follow
동영상 - https://vimeo.com/88997603 소스 - https://github.com/JohnKim/url-shortener
Read less
Read more
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례
John Kim
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
John Kim
232 deview2013 oss를활용한분산아키텍처구현
232 deview2013 oss를활용한분산아키텍처구현
NAVER D2
[Hello world 오픈세미나]varnish로 웹서버성능 향상시키기
[Hello world 오픈세미나]varnish로 웹서버성능 향상시키기
NAVER D2
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
Tom Croucher
Writing robust Node.js applications
Writing robust Node.js applications
Tom Croucher
Kubernetes #4 volume & stateful set
Kubernetes #4 volume & stateful set
Terry Cho
Java script at backend nodejs
Java script at backend nodejs
Amit Thakkar
Recommended
실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례
John Kim
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
John Kim
232 deview2013 oss를활용한분산아키텍처구현
232 deview2013 oss를활용한분산아키텍처구현
NAVER D2
[Hello world 오픈세미나]varnish로 웹서버성능 향상시키기
[Hello world 오픈세미나]varnish로 웹서버성능 향상시키기
NAVER D2
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
Tom Croucher
Writing robust Node.js applications
Writing robust Node.js applications
Tom Croucher
Kubernetes #4 volume & stateful set
Kubernetes #4 volume & stateful set
Terry Cho
Java script at backend nodejs
Java script at backend nodejs
Amit Thakkar
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
Marcus Frödin
vert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Java
Clément Escoffier
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
동수 장
Node js
Node js
Rohan Chandane
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming
Tom Croucher
Vagrant and CentOS 7
Vagrant and CentOS 7
Julien Pivotto
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
William Yeh
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Ontico
JavaScript Event Loop
JavaScript Event Loop
Thomas Hunter II
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
Remotty
Web前端性能优化 2014
Web前端性能优化 2014
Yubei Li
Nodejs Explained with Examples
Nodejs Explained with Examples
Gabriele Lana
Server Side Event Driven Programming
Server Side Event Driven Programming
Kamal Hussain
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013
Puppet
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
Colin Mackay
Integrated Cache on Netscaler
Integrated Cache on Netscaler
Mark Hillick
All aboard the NodeJS Express
All aboard the NodeJS Express
David Boyer
Getting started with Ansible
Getting started with Ansible
Ivan Serdyuk
Building your first Node app with Connect & Express
Building your first Node app with Connect & Express
Christian Joudrey
The SPDY Protocol
The SPDY Protocol
Fabian Lange
Node.js vs Play Framework
Node.js vs Play Framework
Yevgeniy Brikman
Testing frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabs
Tudor Barbu
More Related Content
What's hot
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
Marcus Frödin
vert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Java
Clément Escoffier
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
동수 장
Node js
Node js
Rohan Chandane
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming
Tom Croucher
Vagrant and CentOS 7
Vagrant and CentOS 7
Julien Pivotto
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
William Yeh
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Ontico
JavaScript Event Loop
JavaScript Event Loop
Thomas Hunter II
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
Remotty
Web前端性能优化 2014
Web前端性能优化 2014
Yubei Li
Nodejs Explained with Examples
Nodejs Explained with Examples
Gabriele Lana
Server Side Event Driven Programming
Server Side Event Driven Programming
Kamal Hussain
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013
Puppet
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
Colin Mackay
Integrated Cache on Netscaler
Integrated Cache on Netscaler
Mark Hillick
All aboard the NodeJS Express
All aboard the NodeJS Express
David Boyer
Getting started with Ansible
Getting started with Ansible
Ivan Serdyuk
Building your first Node app with Connect & Express
Building your first Node app with Connect & Express
Christian Joudrey
The SPDY Protocol
The SPDY Protocol
Fabian Lange
What's hot
(20)
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
vert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Java
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
Node js
Node js
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming
Vagrant and CentOS 7
Vagrant and CentOS 7
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
JavaScript Event Loop
JavaScript Event Loop
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
Web前端性能优化 2014
Web前端性能优化 2014
Nodejs Explained with Examples
Nodejs Explained with Examples
Server Side Event Driven Programming
Server Side Event Driven Programming
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013
Deploying VMware vCloud Hybrid Service with Puppet - PuppetConf 2013
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
Integrated Cache on Netscaler
Integrated Cache on Netscaler
All aboard the NodeJS Express
All aboard the NodeJS Express
Getting started with Ansible
Getting started with Ansible
Building your first Node app with Connect & Express
Building your first Node app with Connect & Express
The SPDY Protocol
The SPDY Protocol
Similar to vert.x 소개 및 개발 실습
Node.js vs Play Framework
Node.js vs Play Framework
Yevgeniy Brikman
Testing frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabs
Tudor Barbu
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Provectus
Advanced akka features
Advanced akka features
Grzegorz Duda
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
Ben Hall
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)
Yevgeniy Brikman
An Overview of Node.js
An Overview of Node.js
Ayush Mishra
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentation
Stuart (Pid) Williams
introduction to node.js
introduction to node.js
orkaplan
Solving anything in VCL
Solving anything in VCL
Fastly
GWT Web Socket and data serialization
GWT Web Socket and data serialization
GWTcon
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
Test Automation for NoSQL Databases
Test Automation for NoSQL Databases
Tobias Trelle
Rails Engine | Modular application
Rails Engine | Modular application
mirrec
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
Antons Kranga Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
Antons Kranga
Assurer - a pluggable server testing/monitoring framework
Assurer - a pluggable server testing/monitoring framework
Gosuke Miyashita
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
JBug Italy
Cooking with Chef
Cooking with Chef
Ken Robertson
Introduction to Node.js
Introduction to Node.js
Jack Franklin
Similar to vert.x 소개 및 개발 실습
(20)
Node.js vs Play Framework
Node.js vs Play Framework
Testing frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabs
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Advanced akka features
Advanced akka features
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)
An Overview of Node.js
An Overview of Node.js
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentation
introduction to node.js
introduction to node.js
Solving anything in VCL
Solving anything in VCL
GWT Web Socket and data serialization
GWT Web Socket and data serialization
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Test Automation for NoSQL Databases
Test Automation for NoSQL Databases
Rails Engine | Modular application
Rails Engine | Modular application
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Antons Kranga Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
Assurer - a pluggable server testing/monitoring framework
Assurer - a pluggable server testing/monitoring framework
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
Cooking with Chef
Cooking with Chef
Introduction to Node.js
Introduction to Node.js
More from John Kim
How to build Design System?
How to build Design System?
John Kim
Nginx basic configurations
Nginx basic configurations
John Kim
Play node conference
Play node conference
John Kim
플랫폼이란 무엇인가 (IoT Platform)
플랫폼이란 무엇인가 (IoT Platform)
John Kim
채팅서버의 부하 분산 사례
채팅서버의 부하 분산 사례
John Kim
2015 AWS IoT HACK DAY
2015 AWS IoT HACK DAY
John Kim
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
John Kim
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기
John Kim
More from John Kim
(8)
How to build Design System?
How to build Design System?
Nginx basic configurations
Nginx basic configurations
Play node conference
Play node conference
플랫폼이란 무엇인가 (IoT Platform)
플랫폼이란 무엇인가 (IoT Platform)
채팅서버의 부하 분산 사례
채팅서버의 부하 분산 사례
2015 AWS IoT HACK DAY
2015 AWS IoT HACK DAY
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기
vert.x 소개 및 개발 실습
1.
vert.x로개발하기 -김요한 yohany@gmail.com ! 2013.03.11 ServerSideArchitectGroup
2.
vert.x특징은? 하지만, 직접만들어봐야알지! ! 오늘중요한건, 개.발.해.보.기
3.
justintimeprogramming ! 1. 지원되는module로staticwebserver실해하기 2. mongodb를활용한모듈개발하고모듈단위테스트하기 3.
API서버모듈개발하고EventBus사용하기 4. script로모듈디플로이해서실행하기 5. auto-deploy로쉽게테스트하기 6. cluster설정하여구성하기
4.
5.
Asynchronous Modularity Polyglot vert.x 의 특징
중 3가지만,
6.
非同期(non-blocking) 8 threadsocket JavaVM threadsocket threadsocket threadsocket Traditional AP Server Vert.x threadsocket JavaVM socket socket socket socket:thread =
1:1 socket:thread = N:1 EventDispatcher Asynchronous
7.
高効率(Efficiency) 9 socket Vert.x Runtime(JVM) socket socket socket CPU Core CPU Core CPU Core CPU Core Event Loop (thread) Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle EventDispatcher Verticle Instances Asynchronous
8.
スケーラブル 10 socket Vert.x Runtime(JVM) socket socket socket Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle EventDispatcher socket Vert.x Runtime(JVM) socket socket socket Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle EventDispatcher socket Vert.x
Runtime(JVM) socket socket socket Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle EventDispatcher socket Vert.x Runtime(JVM) socket socket socket Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle Verticle EventDispatcher EventBus (BasedonHazelcast) Node#1 Node#2 Node#3 (*)デフォルトではイベントはnon-persistent Asynchronous http://www.slideshare.net/nobusue/gws-20131018-vertxhandson
9.
Modularity
10.
Modularity ClassLoader Main.class! library1.jar! library2.jar! library3.jar
11.
Modularity ClassLoader ClassLoader ClassLoader Module1.class! library1.jar! library2.jar Module2.class! library1.jar! library2.jar Module2.class! library1.jar! library2.jar Module
1 Module 2 Module 3 EventBus (vert.x)
12.
Polyglot “ Components +
Scripts = Applications ” see John Ousterhout, IEEE Computer, March ’98 http://www.stanford.edu/~ouster/cgi-bin/papers/scripting.pdf Java, Javascript, CoffeeScript, Ruby, Python or Groovy...
13.
http://vertx.io/
14.
http://www.techempower.com/benchmarks/
15.
URL Shortener 만들기 긴
URL 에 대한 Key
16.
Server Verticle Persister Worker Verticle vert.x instance EventBus Starter Verticle
17.
Server Verticle Persister Worker Verticle vert.x instance EventBus Starter Verticle Deploy script
(javascript)" - 필요한 Module 을 Deploy 해주는 역할" - 서버 프로그램 로직은 없고, 설정값 셋팅과 모듈 실행을 명령하는 script
18.
Server Verticle Persister Worker Verticle vert.x instance EventBus Starter Verticle HTTP API
Server" - /url/ [LONG URL] : 긴 URL 을 받아서 Persister Worker 가 생성한 KEY 를 반환" - / [KEY] : KEY 를 받아서 Persister Worker 에서 가져온 긴 URL 로 redirect HTTP Request ( port : 8080 )
19.
Server Verticle Persister Worker Verticle vert.x instance EventBus Starter Verticle mongoDB Persister" -
create : mongodb 로 부터 sequence 를 가져와서 bijective algorithm 으로 short key 생성하고 다시 mongodb 에 URL 정보 저장. " - get : short Key 로 mongodb 로 부터 URL 가져오기. port : 27017
20.
Server Verticle Persister Worker Verticle vert.x instance EventBus Starter Verticle [DB] url-shortener [COLLECTION]
seq [COLLECTION] urls _id documents “urlShortener” {“seq” : 2311} _id documents “Ad23f” {“url” : “http://examp. . . . . . “} “Ad23g” {“url” : “http://examp. . . . . . “} “Ad23h” {“url” : “http://examp. . . . . . “} . . . . .
21.
vert.x instance EventBus StarterVerticle ServerVerticle ServerVerticle ServerVerticle ServerVerticle PersisterWorker Verticle PersisterWorker Verticle PersisterWorker Verticle PersisterWorker Verticle PersisterWorker Verticle
22.
EventBus
23.
EventBus
24.
sequence 로 short
key 생성하기 encode(2147483647) -> cvuMLb decode(“cvuMLb”) -> 2147483647
25.
[DB] url-shortener [COLLECTION] seq
[COLLECTION] urls _id documents “urlShortener” {“seq” : 2311230} _id documents “Ad23f” {“url” : “http://examp. . . . . . “} “Ad23g” {“url” : “http://examp. . . . . . “} “Ad23h” {“url” : “http://examp. . . . . . “} . . . . . create(long url) get(key) 1. seq 에서 시퀀스를 가져오고 increment !" 2. bijective 로 시퀀스를 문자 키로 변환" 3. urls 에 URL 정보 저장 1. key 로 urls 에서 URL 찾아서 반환 2311231 -> Ad23h
26.
준비 Spring Tool Suite™
http://spring.io/tools/sts http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJDK 7 http://www.mongodb.org/downloadsmongoDB
27.
just in time
programming
28.
데모말고,라이브코딩
29.
아키텍트가뭐라고생각하세요?
Download now