[Hello world 오픈세미나]vertx&socket io
Upcoming SlideShare
Loading in...5
×
 

[Hello world 오픈세미나]vertx&socket io

on

  • 8,141 views

 

Statistics

Views

Total Views
8,141
Views on SlideShare
1,876
Embed Views
6,265

Actions

Likes
4
Downloads
57
Comments
0

16 Embeds 6,265

http://helloworld.naver.com 5958
http://www.hanrss.com 245
http://cloud.feedly.com 27
http://feedly.com 10
http://rss.devsearch.co.kr 5
http://news.google.com 4
http://www.feedspot.com 3
http://translate.googleusercontent.com 2
http://www.google.co.kr 2
http://cafe.naver.com 2
https://www.google.co.kr 2
http://rss.com 1
http://mail.sensmail.com 1
http://210.94.199.216 1
http://plus.url.google.com 1
http://www.google.com 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

[Hello world 오픈세미나]vertx&socket io [Hello world 오픈세미나]vertx&socket io Presentation Transcript

  • Vert.x
  •   &
  •   Socket.IO 이해
  •   및
  •   활용 13년 7월 12일 금요일
  • 백기선 NBP
  •   /
  •   서비스플랫폼센터
  •   /
  •   웹플랫폼개발랩 -
  •   (현)
  •   
  •   YOBI
  •   개발 -
  •   RTCS2
  •   Cloud
  •   개발 ✔
  •   발표자 -
  •   사내
  •   스프링
  •   교육 13년 7월 12일 금요일
  • ✔
  •   목차 1.
  •   Vert.x
  •   소개 
  •   
  •   :
  •   Vert.x란
  •   무엇인가? 
  •   
  •   :
  •   Vert.x
  •   주요
  •   개념 
  •    2.
  •   Vert.x
  •   프로그래밍 
  •   
  •   :
  •   Hello
  •   Vert.x 
  •   
  •   :
  •   HttpServer
  •   &
  •   HttpClient 
  •   
  •   :
  •   EventBus 3.
  •   Socket.io
  •   소개 
  •   
  •   :
  •   Socket.io란
  •   무엇인가? 
  •   
  •   :
  •   Vert.x
  •   기반
  •   Socket.io 
  •    4.
  •   Socket.io
  •   프로그래밍 
  •   
  •   :
  •   메시지와
  •   이벤트
  •   주고받기 
  •   
  •   :
  •   인증 
  •   
  •   :
  •   네임스페이스
  •   사용하기 13년 7월 12일 금요일
  • Vert.x
  •   소개 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   What
  •   is
  •   vert.x? ✔
  •   Vert.x는
  •   매우
  •   쉽게
  •   확장
  •   가능한
  •   차세대
  •   비동기
  •   애플 리케이션
  •   개발
  •   플랫폼 JVM Vert.x java js rb py ... Netty Hazelcast 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Tim
  •   Fox ✔
  •   Tim
  •   Fox 
  •   
  •   :
  •   creator
  •   of
  •   the
  •   Vert.x 
  •   
  •   :
  •   Red
  •   Hat
  •   (now) 
  •   
  •   :
  •   VMWare
  •   /
  •   SpringSource 
  •   
  •   :
  •   creator
  •   of
  •   the
  •   HornetQ 
  •   
  •   :
  •   worked
  •   with
  •   the
  •   RabbitMQ 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Github/vert-x/vert.x 13년 7월 12일 금요일
  • Commit 1000+ Star 2243 Fork 422 Vert.x
  •   :
  •   Github/vert-x/vert.x 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Verticle Verticlepublic
  •   class
  •   App
  •   extends ✔
  •   vert.x에
  •   배포
  •   가능한
  •   애플리케이션
  •   단위. ~ > vertx run App.java Vert.x V 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Vert.x
  •   Instance ✔
  •   Verticle을
  •   개별적인
  •   클래스로더를
  •   사용하여
  •   실행해 주며,
  •   손쉽게
  •   클러스터로
  •   구성할
  •   수
  •   있다. Vert.x V V V Vert.x V V V Vert.x Vert.x V V V V V V 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Polyglot ✔
  •   다양한
  •   언어로
  •   Verticle을
  •   작성할
  •   수
  •   있다. ~ > vertx run app.js load('vertx.js') var
  •   server
  •   =
  •   vertx.createNetServer(); server.connectHandler(function(sock)
  •   { 
  •   
  •   new
  •   vertx.Pump(sock,
  •   sock).start(); }).listen(1234,
  •   'localhost'); function
  •   vertxStop()
  •   { 
  •   
  •   server.close(); } require "vertx" include Vertx @server = NetServer.new.connect_handler { | socket| Pump.new(socket, socket).start }.listen(1234, 'localhost') def vertx_stop @server.close end ~ > vertx run app.rb 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Concurrency ✔
  •   Verticle
  •   인스턴스당
  •   스레드
  •   한개
  •   사용. 
  •   
  •   :
  •   멀티스레드
  •   프로그래밍을
  •   고려하여
  •   코딩할
  •   필요
  •   없음. 
  •   
  •   :
  •   즉,
  •   locking이나
  •   Synchronization을
  •   할
  •   필요
  •   없음. 
  •   
  •   :
  •   컨텍스트
  •   스위칭
  •   비용
  •   절감,
  •   스레드가
  •   소모하는
  •   메모리
  •   절약. T1 T2 T3 Verticle
  •   1 이런 모양이 아니에요. 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Concurrency ✔
  •   Verticle
  •   인스턴스당
  •   스레드
  •   한개
  •   사용. 
  •   
  •   :
  •   멀티스레드
  •   프로그래밍을
  •   고려하여
  •   코딩할
  •   필요
  •   없음. 
  •   
  •   :
  •   즉,
  •   locking이나
  •   Synchronization을
  •   할
  •   필요
  •   없음. 
  •   
  •   :
  •   컨텍스트
  •   스위칭
  •   비용
  •   절감,
  •   스레드가
  •   소모하는
  •   메모리
  •   절약. EL1 EL2 EL3 Verticle
  •   1 Verticle
  •   2 Verticle
  •   3 이런 모양 입니다. 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Event-based
  •   Programming
  •   Model ✔
  •   이벤트
  •   기반
  •   프로그래밍
  •   모델
  •   제공. 
  •   
  •   :
  •   이벤트
  •   핸들러
  •   등록과
  •   이벤트(+메시지)
  •   전송
  •   프로그래밍
  •   제공. 
  •   
  •   :
  •   소켓.write(메시지)
  •   기능도
  •   Non-blocking
  •   IO로
  •   처리. 
  •   
  •   :
  •   http://en.wikipedia.org/wiki/Asynchronous_I/O EventBus eb = vertx.eventBus(); Handler<Message> myHandler = new Handler<Message>() { public void handle(Message message) { System.out.println("I received a message " + message.body); } }; eb.registerHandler("test.address", myHandler); eb.publish("test.address", "hello world"); 13년 7월 12일 금요일
  • Vert.x
  •   :
  •   Core
  •   Concepts
  •   ::
  •   Event
  •   Loops ✔
  •   Verticle마다
  •   유일하게
  •   할당되는
  •   Thread. 
  •   
  •   :
  •   Vert.x
  •   인스턴스에서
  •   여러
  •   Event
  •   Loop
  •   스레드를
  •   관리한다. 
  •   
  •   :
  •   Vericle이
  •   배포되면
  •   그
  •   중
  •   한
  •   스레드를
  •   Vericle에
  •   할당한다. 
  •   
  •   :
  •   Multi-reactor pattern 출처: http://krondo.com/wp-content/uploads/2009/08/twisted-intro.html Event Loop Run Loop Event Dispatcher Message Dispatcher Message Pump “The purpose of a run loop is to keep your thread busy when there is work to do and put your thread to sleep when there is none.” - iOS docs 13년 7월 12일 금요일
  • Vert.x
  •   프로그래밍 13년 7월 12일 금요일
  • Vert.x
  •   Programming
  •   :
  •   Maven
  •   Dependency
  •   :
  •   vertx-core ✔
  •   org.vert-x
  •   ::
  •   vertx-core 
  •   
  •   :
  •   Vert.x
  •   핵심
  •   기능을
  •   담고
  •   있는
  •   라이브러리. 
  •   
  •   :
  •   Vert.x
  •   사용하는
  •   프로젝트에
  •   반드시
  •   추가. 
  •   
  •   :
  •   TCP/SSL,
  •   HTTP/HTTPS,
  •   WebSocket,
  •   Shared
  •   Map/Set
  •   제공 <dependency> ! <groupId>org.vert-x</groupId> ! <artifactId>vertx-core</artifactId> ! <version>1.3.1.final</version> </dependency> 13년 7월 12일 금요일
  • Vert.x
  •   Programming
  •   :
  •   Maven
  •   Dependency
  •   :
  •   vertx-platform ✔
  •   org.vert-x
  •   ::
  •   vertx-platform 
  •   
  •   :
  •   Vert.x
  •   컨테이너
  •   기능(배포,
  •   컨텍스트)을
  •   담고
  •   있는
  •   라이브러리. 
  •   
  •   :
  •   Embedded
  •   모드로
  •   사용할
  •   경우
  •   생략
  •   가능. 
  •   
  •   :
  •   CLI,
  •   Conatainer,
  •   Deployment
  •   제공 <dependency> ! <groupId>org.vert-x</groupId> ! <artifactId>vertx-platform</artifactId> ! <version>1.3.1.final</version> </dependency> 13년 7월 12일 금요일
  • Vert.x
  •   Programming
  •   :
  •   Demo ✔Hello
  •   Vert.x ✔HttpServer&HttpClient ✔Using
  •   Event
  •   Bus 13년 7월 12일 금요일
  • Socket.io
  •   소개 13년 7월 12일 금요일
  • Socket.io
  •   :
  •   http://socket.io/ ✔
  •   Socket.IO는
  •   전송
  •   방식을
  •   추상화하여
  •   모든
  •   브라우저 와
  •   모바일
  •   기기용
  •   실시간
  •   애플리케이션을
  •   개발을
  •   가능 케
  •   하는
  •   것이
  •   목적이다. 13년 7월 12일 금요일
  • Socket.io
  •   :
  •   Transports ✔
  •   Supported
  •   Transports 
  •   
  •   :
  •   WebSocket 
  •   
  •   :
  •   Flash
  •   Socket 
  •   
  •   :
  •   AJAX
  •   long
  •   polling 
  •   
  •   :
  •   AJAX
  •   multipart
  •   streaming 
  •   
  •   :
  •   Forever
  •   Iframe 
  •   
  •   :
  •   JSONP
  •   Polling ✔
  •   Supported
  •   Browsers 
  •   
  •   :
  •   IE
  •   5.5+ 
  •   
  •   :
  •   Safari
  •   3+ 
  •   
  •   :
  •   Google
  •   Chrome
  •   4+ 
  •   
  •   :
  •   Firefox
  •   3+ 
  •   
  •   :
  •   Opera
  •   10.61+ 
  •   
  •   :
  •   iPhone
  •   Safari 
  •   
  •   :
  •   iPad
  •   Safari 
  •   
  •   :
  •   Android
  •   Webkit 
  •   
  •   :
  •   WebOs
  •   Webkit이 모두를 동일한 API로 사용할 수 있습니다. 13년 7월 12일 금요일
  • Socket.io
  •   :
  •   사용법 var  app  =  express.createServer()    ,  io  =  io.listen(app); app.listen(80); io.sockets.on('connection',  function  (socket)  {    socket.emit('news',  {  hello:  'world'  });    socket.on('my  other  event',  function  (data)  {        console.log(data);    }); }); <script  src="/socket.io/socket.io.js"></script> <script>    var  socket  =  io.connect('http://localhost');    socket.on('news',  function  (data)  {        console.log(data);        socket.emit('my  other  event',  {  my:  'data'  });    }); </script> 13년 7월 12일 금요일
  • Socket.io
  •   :
  •   Node.js
  •   Module ~ > npm install socket.io Java
  •   구현체는? 13년 7월 12일 금요일
  • Socket.io
  •   :
  •   Mod-Socket-IO
  •   :
  •   https://github.com/keesun/mod-socket-io ✔
  •   Vert.x
  •   기반
  •   Socket.IO
  •   서버
  •   구현체 
  •   
  •   :
  •   Vert.x
  •   모듈
  •   저장소에서
  •   이용
  •   가능. 
  •   
  •   :
  •   Embedded
  •   Vericle
  •   형태로
  •   Spring
  •   MVC
  •   애플리케이션과
  •   연동
  •   가능. 
  •   
  •   :
  •   Cloud
  •   형태로
  •   이용할
  •   수
  •   있도록
  •   사내
  •   플랫폼
  •   개발
  •   중. 13년 7월 12일 금요일
  • Socket.io
  •   프로그래밍 13년 7월 12일 금요일
  • Socket.io
  •   Programming
  •   :
  •   Demo ✔Sending
  •   Events ✔Authorization ✔Using
  •   Namespace 13년 7월 12일 금요일
  • mod-socket-io
  •   많이
  •   써주세요. 감사합니다. https://github.com/keesun/mod-socket-io 13년 7월 12일 금요일