Vert.x
 
 Socket.IO     이해
 및
 활용12년 10월 9일 화요일
✔
 발표자                                            백기선                                            NBP
 /
 서비스플랫폼센터
 /
 웹플랫폼개발랩                                                 -
 사내
 스프링
 교육                                                 -
 RTCS
 유지
 보수                                                 -
 mod-socket-io
 개발12년 10월 9일 화요일
✔
 목차   1.
 Vert.x
 소개                                                                                                                     3.
 Socket.io
 소개
 
 :
 What
 is
 vert.x?
Upcoming SlideShare
Loading in...5
×

Vert.x&Socket.IO 이해 및 활용 | Devon 2012

18,060

Published on

0 Comments
21 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
18,060
On Slideshare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
132
Comments
0
Likes
21
Embeds 0
No embeds

No notes for slide

Vert.x&Socket.IO 이해 및 활용 | Devon 2012

  1. 1. Vert.x
  2. 2.  
  3. 3.  Socket.IO 이해
  4. 4.  및
  5. 5.  활용12년 10월 9일 화요일
  6. 6.
  7. 7.  발표자 백기선 NBP
  8. 8.  /
  9. 9.  서비스플랫폼센터
  10. 10.  /
  11. 11.  웹플랫폼개발랩 -
  12. 12.  사내
  13. 13.  스프링
  14. 14.  교육 -
  15. 15.  RTCS
  16. 16.  유지
  17. 17.  보수 -
  18. 18.  mod-socket-io
  19. 19.  개발12년 10월 9일 화요일
  20. 20.
  21. 21.  목차 1.
  22. 22.  Vert.x
  23. 23.  소개 3.
  24. 24.  Socket.io
  25. 25.  소개
  26. 26.  
  27. 27.  :
  28. 28.  What
  29. 29.  is
  30. 30.  vert.x?
  31. 31.  
  32. 32.  :
  33. 33.  Concepts
  34. 34.  in
  35. 35.  vert.x
  36. 36.  
  37. 37.   2.
  38. 38.  Vert.x
  39. 39.  프로그래밍 4.
  40. 40.  Socket.io
  41. 41.  프로그래밍
  42. 42.  
  43. 43.  :
  44. 44.  Hello
  45. 45.  Vert.x
  46. 46.  
  47. 47.  :
  48. 48.  Sending
  49. 49.  Messages
  50. 50.  
  51. 51.  Events
  52. 52.  
  53. 53.  :
  54. 54.  HttpServer
  55. 55.  
  56. 56.  HttpClient
  57. 57.  
  58. 58.  :
  59. 59.  Authorization
  60. 60.  
  61. 61.  :
  62. 62.  Using
  63. 63.  Event
  64. 64.  Bus
  65. 65.  
  66. 66.  :
  67. 67.  Using
  68. 68.  Namesapce12년 10월 9일 화요일
  69. 69. Vert.x
  70. 70.  소개12년 10월 9일 화요일
  71. 71. Vert.x
  72. 72.  :
  73. 73.  What
  74. 74.  is
  75. 75.  vert.x? ✔
  76. 76.  Vert.x
  77. 77.  is
  78. 78.  the
  79. 79.  framework
  80. 80.  for
  81. 81.  the
  82. 82.  next
  83. 83.  generation
  84. 84.   of
  85. 85.  asynchronous,
  86. 86.  effortlessly
  87. 87.  scalable,
  88. 88.  concurrent
  89. 89.   applications. java js rb py ... Vert.x Netty Hazelcast JVM12년 10월 9일 화요일
  90. 90. Vert.x
  91. 91.  :
  92. 92.  Tim
  93. 93.  Fox ✔
  94. 94.  Tim
  95. 95.  Fox
  96. 96.  
  97. 97.  :
  98. 98.  Vert.x
  99. 99.  핵심
  100. 100.  개발자
  101. 101.  
  102. 102.  :
  103. 103.  VMWare
  104. 104.  /
  105. 105.  SpringSource
  106. 106.  
  107. 107.  :
  108. 108.  creator
  109. 109.  of
  110. 110.  the
  111. 111.  HometQ
  112. 112.  
  113. 113.  :
  114. 114.  worked
  115. 115.  with
  116. 116.  the
  117. 117.  RabbitMQ12년 10월 9일 화요일
  118. 118. Vert.x
  119. 119.  :
  120. 120.  Github/vert-x/vert.x12년 10월 9일 화요일
  121. 121. Vert.x
  122. 122.  :
  123. 123.  Github/vert-x/vert.x 1257 215 1520 Commit Fork Watch12년 10월 9일 화요일
  124. 124. Vert.x
  125. 125.  :
  126. 126.  Core
  127. 127.  Concepts
  128. 128.  ::
  129. 129.  Verticle ✔
  130. 130.  vert.x에
  131. 131.  배포
  132. 132.  가능한
  133. 133.  애플리케이션
  134. 134.  단위. public
  135. 135.  class
  136. 136.  App
  137. 137.  extends Verticle ~ vertx run App.java12년 10월 9일 화요일
  138. 138. Vert.x
  139. 139.  :
  140. 140.  Core
  141. 141.  Concepts
  142. 142.  ::
  143. 143.  Vert.x
  144. 144.  Instance ✔
  145. 145.  Verticle을
  146. 146.  개별적인
  147. 147.  클래스로더를
  148. 148.  사용하여
  149. 149.  실행해 주며,
  150. 150.  손쉽게
  151. 151.  클러스터로
  152. 152.  구성할
  153. 153.  수
  154. 154.  있다. Vert.x Vert.x V V V V V V Vert.x Vert.x V V V V V V12년 10월 9일 화요일
  155. 155. Vert.x
  156. 156.  :
  157. 157.  Core
  158. 158.  Concepts
  159. 159.  ::
  160. 160.  Polyglot ✔
  161. 161.  다양한
  162. 162.  언어로
  163. 163.  Verticle을
  164. 164.  작성할
  165. 165.  수
  166. 166.  있다. load(vertx.js) require vertx include Vertx var
  167. 167.  server
  168. 168.  =
  169. 169.  vertx.createNetServer(); @server = server.connectHandler(function(sock)
  170. 170.  { NetServer.new.connect_handler { |
  171. 171.  
  172. 172.  new
  173. 173.  vertx.Pump(sock,
  174. 174.  sock).start(); socket| }).listen(1234,
  175. 175.  localhost); Pump.new(socket, socket).start }.listen(1234, localhost) function
  176. 176.  vertxStop()
  177. 177.  {
  178. 178.  
  179. 179.  server.close(); def vertx_stop } @server.close end ~ vertx run app.js ~ vertx run app.rb12년 10월 9일 화요일
  180. 180. Vert.x
  181. 181.  :
  182. 182.  Core
  183. 183.  Concepts
  184. 184.  ::
  185. 185.  Concurrency✔
  186. 186.  Verticle
  187. 187.  인스턴스당
  188. 188.  스레드
  189. 189.  한개
  190. 190.  사용.
  191. 191.  
  192. 192.  :
  193. 193.  멀티스레드
  194. 194.  프로그래밍을
  195. 195.  고려하여
  196. 196.  코딩할
  197. 197.  필요
  198. 198.  없음.
  199. 199.  
  200. 200.  :
  201. 201.  즉,
  202. 202.  locking이나
  203. 203.  Synchronization을
  204. 204.  할
  205. 205.  필요
  206. 206.  없음.
  207. 207.  
  208. 208.  :
  209. 209.  컨텍스트
  210. 210.  스위칭
  211. 211.  비용
  212. 212.  절감,
  213. 213.  스레드가
  214. 214.  소모하는
  215. 215.  메모리
  216. 216.  절약. Verticle
  217. 217.  1 I’m not using multi threads T1 T2 T312년 10월 9일 화요일
  218. 218. Vert.x
  219. 219.  :
  220. 220.  Core
  221. 221.  Concepts
  222. 222.  ::
  223. 223.  Concurrency✔
  224. 224.  Verticle
  225. 225.  인스턴스당
  226. 226.  스레드
  227. 227.  한개
  228. 228.  사용.
  229. 229.  
  230. 230.  :
  231. 231.  멀티스레드
  232. 232.  프로그래밍을
  233. 233.  고려하여
  234. 234.  코딩할
  235. 235.  필요
  236. 236.  없음.
  237. 237.  
  238. 238.  :
  239. 239.  즉,
  240. 240.  locking이나
  241. 241.  Synchronization을
  242. 242.  할
  243. 243.  필요
  244. 244.  없음.
  245. 245.  
  246. 246.  :
  247. 247.  컨텍스트
  248. 248.  스위칭
  249. 249.  비용
  250. 250.  절감,
  251. 251.  스레드가
  252. 252.  소모하는
  253. 253.  메모리
  254. 254.  절약. Verticle
  255. 255.  1 Verticle
  256. 256.  2 Verticle
  257. 257.  3 EL1 EL2 EL3 Yes, I’m12년 10월 9일 화요일
  258. 258. Vert.x
  259. 259.  :
  260. 260.  Core
  261. 261.  Concepts
  262. 262.  ::
  263. 263.  Event-based
  264. 264.  Programming
  265. 265.  Model✔
  266. 266.  이벤트
  267. 267.  기반
  268. 268.  프로그래밍
  269. 269.  모델
  270. 270.  제공.
  271. 271.  
  272. 272.  :
  273. 273.  이벤트
  274. 274.  핸들러
  275. 275.  등록과
  276. 276.  이벤트(+메시지)
  277. 277.  전송
  278. 278.  프로그래밍
  279. 279.  제공.
  280. 280.  
  281. 281.  :
  282. 282.  소켓.write(메시지)
  283. 283.  기능도
  284. 284.  Non-blocking
  285. 285.  IO로
  286. 286.  처리.
  287. 287.  
  288. 288.  :
  289. 289.  http://en.wikipedia.org/wiki/Asynchronous_I/O EventBus eb = vertx.eventBus(); HandlerMessage myHandler = new HandlerMessage() { 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);12년 10월 9일 화요일
  290. 290. Vert.x
  291. 291.  :
  292. 292.  Core
  293. 293.  Concepts
  294. 294.  ::
  295. 295.  Event
  296. 296.  Loops✔
  297. 297.  Verticle마다
  298. 298.  유일하게
  299. 299.  할당되는
  300. 300.  Thread.
  301. 301.  
  302. 302.  :
  303. 303.  Vert.x
  304. 304.  인스턴스에서
  305. 305.  여러
  306. 306.  Event
  307. 307.  Loop
  308. 308.  스레드를
  309. 309.  관리한다.
  310. 310.  
  311. 311.  :
  312. 312.  Vericle이
  313. 313.  배포되면
  314. 314.  그
  315. 315.  중
  316. 316.  한
  317. 317.  스레드를
  318. 318.  Vericle에
  319. 319.  할당한다.
  320. 320.  
  321. 321.  :
  322. 322.  Multi-reactor pattern 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 출처: http://krondo.com/wp-content/uploads/2009/08/twisted-intro.html12년 10월 9일 화요일
  323. 323. Vert.x
  324. 324.  프로그래밍12년 10월 9일 화요일
  325. 325. Vert.x
  326. 326.  Programming
  327. 327.  :
  328. 328.  Maven
  329. 329.  Dependency
  330. 330.  :
  331. 331.  vertx-core✔
  332. 332.  org.vert-x
  333. 333.  ::
  334. 334.  vertx-core
  335. 335.  
  336. 336.  :
  337. 337.  Vert.x
  338. 338.  핵심
  339. 339.  기능을
  340. 340.  담고
  341. 341.  있는
  342. 342.  라이브러리.
  343. 343.  
  344. 344.  :
  345. 345.  Vert.x
  346. 346.  사용하는
  347. 347.  프로젝트에
  348. 348.  반드시
  349. 349.  추가.
  350. 350.  
  351. 351.  :
  352. 352.  TCP/SSL,
  353. 353.  HTTP/HTTPS,
  354. 354.  WebSocket,
  355. 355.  Shared
  356. 356.  Map/Set
  357. 357.  제공 dependency ! groupIdorg.vert-x/groupId ! artifactIdvertx-core/artifactId ! version1.2.3.final/version /dependency12년 10월 9일 화요일
  358. 358. Vert.x
  359. 359.  Programming
  360. 360.  :
  361. 361.  Maven
  362. 362.  Dependency
  363. 363.  :
  364. 364.  vertx-platform✔
  365. 365.  org.vert-x
  366. 366.  ::
  367. 367.  vertx-platform
  368. 368.  
  369. 369.  :
  370. 370.  Vert.x
  371. 371.  컨테이너
  372. 372.  기능(배포,
  373. 373.  컨텍스트)을
  374. 374.  담고
  375. 375.  있는
  376. 376.  라이브러리.
  377. 377.  
  378. 378.  :
  379. 379.  Embedded
  380. 380.  모드로
  381. 381.  사용할
  382. 382.  경우
  383. 383.  생략
  384. 384.  가능.
  385. 385.  
  386. 386.  :
  387. 387.  CLI,
  388. 388.  Conatainer,
  389. 389.  Deployment
  390. 390.  제공 dependency ! groupIdorg.vert-x/groupId ! artifactIdvertx-platform/artifactId ! version1.2.3.final/version /dependency12년 10월 9일 화요일
  391. 391. Vert.x
  392. 392.  Programming
  393. 393.  :
  394. 394.  Demo ✔Hello
  395. 395.  Vert.x ✔HttpServerHttpClient ✔Using
  396. 396.  Event
  397. 397.  Bus12년 10월 9일 화요일
  398. 398. Vert.x
  399. 399.  Programming
  400. 400.  :
  401. 401.  HttpServer
  402. 402.  
  403. 403.  HttpClient DEMO12년 10월 9일 화요일
  404. 404. Vert.x
  405. 405.  Programming
  406. 406.  :
  407. 407.  Using
  408. 408.  Event
  409. 409.  Bus DEMO12년 10월 9일 화요일
  410. 410. Socket.io
  411. 411.  소개12년 10월 9일 화요일
  412. 412. Socket.io
  413. 413.  :
  414. 414.  http://socket.io/ ✔
  415. 415.  Socket.IO
  416. 416.  aims
  417. 417.  to
  418. 418.  make
  419. 419.  realtime
  420. 420.  apps
  421. 421.  possible
  422. 422.   in
  423. 423.  every
  424. 424.  browser
  425. 425.  and
  426. 426.  mobile
  427. 427.  device,
  428. 428.  blurring
  429. 429.  the
  430. 430.   differences
  431. 431.  between
  432. 432.  the
  433. 433.  different
  434. 434.  transport
  435. 435.   mechanisms12년 10월 9일 화요일
  436. 436. Socket.io
  437. 437.  :
  438. 438.  Transports ✔
  439. 439.  Supported
  440. 440.  Transports ✔
  441. 441.  Supported
  442. 442.  Browsers
  443. 443.  
  444. 444.  :
  445. 445.  WebSocket
  446. 446.  
  447. 447.  :
  448. 448.  IE
  449. 449.  5.5+
  450. 450.  
  451. 451.  :
  452. 452.  Flash
  453. 453.  Socket
  454. 454.  
  455. 455.  :
  456. 456.  Safari
  457. 457.  3+
  458. 458.  
  459. 459.  :
  460. 460.  AJAX
  461. 461.  long
  462. 462.  polling
  463. 463.  
  464. 464.  :
  465. 465.  Google
  466. 466.  Chrome
  467. 467.  4+
  468. 468.  
  469. 469.  :
  470. 470.  AJAX
  471. 471.  multipart
  472. 472.  streaming
  473. 473.  
  474. 474.  :
  475. 475.  Firefox
  476. 476.  3+
  477. 477.  
  478. 478.  :
  479. 479.  Forever
  480. 480.  Iframe
  481. 481.  
  482. 482.  :
  483. 483.  Opera
  484. 484.  10.61+
  485. 485.  
  486. 486.  :
  487. 487.  JSONP
  488. 488.  Polling
  489. 489.  
  490. 490.  :
  491. 491.  iPhone
  492. 492.  Safari
  493. 493.  
  494. 494.  :
  495. 495.  iPad
  496. 496.  Safari
  497. 497.  
  498. 498.  :
  499. 499.  Android
  500. 500.  Webkit
  501. 501.  
  502. 502.  :
  503. 503.  WebOs
  504. 504.  Webkit12년 10월 9일 화요일
  505. 505. Socket.io
  506. 506.  :
  507. 507.  사용법 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  });    }); /script12년 10월 9일 화요일
  508. 508. Socket.io
  509. 509.  :
  510. 510.  Node.js
  511. 511.  Module ~ npm install socket.io Java
  512. 512.  구현체는?12년 10월 9일 화요일
  513. 513. Socket.io
  514. 514.  :
  515. 515.  Mod-Socket-IO
  516. 516.  :
  517. 517.  https://github.com/keesun/mod-socket-io ✔
  518. 518.  Vert.x
  519. 519.  기반
  520. 520.  Socket.IO
  521. 521.  서버
  522. 522.  구현체
  523. 523.  
  524. 524.  :
  525. 525.  Vert.x
  526. 526.  모듈
  527. 527.  저장소에서
  528. 528.  이용
  529. 529.  가능.
  530. 530.  
  531. 531.  :
  532. 532.  Embedded
  533. 533.  Vericle
  534. 534.  형태로
  535. 535.  Spring
  536. 536.  MVC
  537. 537.  애플리케이션과
  538. 538.  연동
  539. 539.  가능.
  540. 540.  
  541. 541.  :
  542. 542.  Cloud
  543. 543.  형태로
  544. 544.  이용할
  545. 545.  수
  546. 546.  있도록
  547. 547.  사내
  548. 548.  플랫폼
  549. 549.  개발
  550. 550.  중.12년 10월 9일 화요일
  551. 551. Socket.io
  552. 552.  프로그래밍12년 10월 9일 화요일
  553. 553. Socket.io
  554. 554.  Programming
  555. 555.  :
  556. 556.  Demo ✔Sending
  557. 557.  Events ✔Authorization ✔Using
  558. 558.  Namespace12년 10월 9일 화요일
  559. 559. 감사합니다. mod-socket-io
  560. 560.  많이
  561. 561.  써주세요.12년 10월 9일 화요일
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×