• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
[Hello world 오픈세미나]vertx&socket io
 

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

on

  • 7,597 views

 

Statistics

Views

Total Views
7,597
Views on SlideShare
1,620
Embed Views
5,977

Actions

Likes
4
Downloads
48
Comments
0

15 Embeds 5,977

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