Chapter12 웹 워커 & 웹 소켓 HTML5 Programming. Contents 1. 웹 워커 2. 웹 소켓 2 웹 워커 & 웹 소켓 Chapter12.

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

노인복지론 담당교수 : 최 병태 교수님 학과 : 보건복지경영학과 학번 : 이름 : 김 태인 날짜 :
2 Ⅰ 2016 수출연계형 기술사업화 프로그 램 사업설명회 3 4 구 분지원분야비고 시각디자인 외국어 종이 카탈로그, 외국어 포장디자인 멀티미디어 외국어 전자 카탈로그, 외국어 동영상, 외국어 모바일용 앱, 외국어 홈페이지 디자인 제품디자인 종합디자인 해당분야 모든.
제 11 장 여성복지. Contents 1. 여성복지의 이해 2. 우리나라 여성 복지의 발달 3. 여성복지의 접근방법 4. 여성복지의 과제 2.
일본주식시장의 신 고레가와긴조 투자전략 6 조 안승권. 신문수 발표자 : 신 문 수. 출 생 : 1897 효고현에서 출생 학 력 : 초등학교졸업, 사업가 1992 년 95 세 사망 유일한 자서전 1981 년 스미토모 금속광산 주식매매 200 억엔 벌다⇒ 일본 소득세 납세.
2009개정 중등 국어과 교육과정 울산광역시교육청 교육과정 컨설팅단 : 정일진.
아름다운 이들의 행복한 길음안나의 집.
朝鲜语视听(一) 辽宁省教育软件大赛参赛作品.
달라지는 노동법 개정 내용 노무법인 正道 잠시나마… 주요 노동관계법 개정내용 3. 마무리 Contents
미국경제의 신용위기가 한국경제에 미치는 영향
①신생아기의 신체발달 ②신생아기의 운동발달 ③신생아기의 감각기관의 발달 ☞차례. ①신생아기의 신체발달 ②신생아기의 운동발달 ③신생아기의 감각기관의 발달 ☞차례.
Chapter14 위치 정보 & 모바일 HTML5 Programming.
AVR 5관절 로봇 암 활용 예제.
아하! 청소년의 성교육은 이렇게!.
소비자 만족도 설문조사 결과.
2009,성지순례계획 (추진안) 일시 : 2009년 하반기 (9월경) 장소 : 중동3개국 10일 예정
2017 북부문화사업단 공모지원사업 교부·정산 설명회.
채팅 서버 만들기 10장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
AJAX 커머스아이 박준열.
Software Engineering Project
Java의 정석 제 1 장 JDK설치 및 설정 Java 정석 남궁성 의
Java의 정석 제 1 장 JDK설치 및 설정 Java 정석 남궁성 의
진상현 노현철 박주호 김민구 이보라 박종빈 Ajax.
Web Socket.
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
낮과 밤 알아보기 슬기로운 생활 2학년 1학기 4. 빛과 그림자>낮과 밤( 4/8 )
가천대학교 단기해외수업 설명회 (일) 법인영업팀
Chapter11 웹 스토리지 & 웹 데이터베이스
1. 하나투어 프로모션 페이지 수정사항 정리 – 리오타노 이태리 세미극세사 차렵이불_그레이
JSP Programming with a Workbook
2018년 2월 00일~3월 31일 출발 여행상품 예약하시는 모든 회원님께 드려요!
119 신고방법.
Chapter13 파일 접근 & 오프라인 접근 HTML5 Programming.
HTML, PHP, MySQL, Javascript
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
국제의료관광 관련 법, 제도.
Super Mario Yo-si Run -2D Game Programming 고미향.
Super Mario Yo-si Run -2D Game Programming 고미향.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 09. C언어의 핵심! 함수!
17장 웹 사이트 제작 완성 한빛미디어(주).
학교 밖의 여럿이 쓰는 물건 알기 바른 생활 1학년 2학기
주문완료메일 보험료 간편 조회 go > 여행 전 꼭 챙기세요! All about Travel | 여행자보험도 하나샵
CHAPTER 06 청소년의 행동문화 : 폭력(따돌림), 위험행동, 참여.
UX 기반 소프트웨어 및 디지털콘텐츠 UI 설계
커 GO 비 의 to 홈 게임공학과 박혜원.
Ⅱ. 프론트샵 구축 가이드.
남아메리카 선교 김수정, 이하정 전희진, 장성경.
사회복지사무소 시범사업 안내 보 건 복 지 부
판촉왕 공식인증센터_PC
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
샘플앱 제작 안내 2016/05/18.
CONTENTS Ⅰ. 대회목적 Ⅱ. 대회개요 Ⅲ. 대회요강 Ⅳ. 대회규정 Ⅴ. 운영계획 Ⅵ. 홍보계획 Ⅶ. 예산계획.
신상품 개발 및 신시장 개척에 따른 웅진식품㈜ 경제적 부가가치 창출 사례
Chapter 08 조건문.
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
거래처 매뉴얼 리 얼 시 스 템 주 식 회 사.
홍미영 부평구 재정 및 운영방향 인천광역시 부평구.
주요공지로 정할 글을 올립니다. 제목과 주소를 복사해둡니다
2018년 2월 00일~3월 31일 출발 여행상품 예약하시는 모든 회원님께 드려요!
경영학의 상황학파에 대해서… 경제학과 3학년 최준용 회계학과 4학년 진현빈
거래처 매뉴얼 리 얼 시 스 템 주 식 회 사.
Jre 설치 확인 방법 규제정보화 시스템 운영팀.
코 칭 결 과 센 터 구성센터 (모바일) 코칭대상 프로 (엔지니어) 코칭일시
1. 하나투어 프로모션 페이지 수정사항 정리 – 인따르시아 여행용 파우치 5p (핑크)
1. 하나투어 프로모션 페이지 수정사항 정리 – [트래블이지] 비비드접이식가방 NO.1278
Java Programming for Beginners
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 02. C언어 기반의 C++ 2.
2009개정 중등 국어과 교육과정.
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
실습#5 인터랙티브 프로토타입 2011년 2학기 숙명여자대학교 임순범.
Presentation transcript:

Chapter12 웹 워커 & 웹 소켓 HTML5 Programming

Contents 1. 웹 워커 2. 웹 소켓 2 웹 워커 & 웹 소켓 Chapter12

웹 워커  스레드 하나의 프로그램 내에서의 실행 단위를 나타내는데 보 통의 프로그램들은 멀티 스레드를 지원하기 때문에 하 나의 프로그램에서 동시에 여러 기능이 이루어질 수 있음 웹 워커 & 웹 소켓 Chapter12 3

웹 워커  웹 워커 멀티 스레드 구현이 가능 웹 브라우저에서 메인이 아닌 백그라운드로 여러 가지 처리가 가능하게 되어 복잡한 처리도 웹 브라우저에서 실행이 가능 브라우저 지원 현황 웹 워커 & 웹 소켓 Chapter12 4

멀티 태스킹과 멀티 스레드  멀티 태스킹 (MultiTasking) 운영체제는 CPU 의 시간을 쪼개어 각각의 프로그램에 할당하여 동시에 실행하는 것처럼 보이게 하는 것 예 : 컴퓨터에서 음악을 들으며 웹 서핑을 하는 것  멀티 스레드 (MultiThread) 하나의 프로그램 내에서 여러 개의 기능이 동시에 이 루어지는 것 예 : MP3 파일을 재생하는데 MP3 플레이어에서 자동 으로 MP3 파일의 압축을 해제하며 동시에 음악을 재 생하는 것 웹 워커 & 웹 소켓 Chapter12 5

워커 생성 및 메시지 전달  웹 워커 메인에서 동작하는 UI 스레드와는 별개로 백그라운드에서 여러 개의 워커들이 각각의 기능을 하며 처리 동작을 하고 있는 형태 로 이루어져 있음 워커를 생성하기 위해서는 메인 UI 페이지에서 워커 역할을 하는 자바스크립트를 호출하여 워커의 인터페이스 생성자를 호출하면 됨 웹 워커 & 웹 소켓 Chapter12 6

워커 생성 및 메시지 전달  워커 생성 및 메시지 워커에서 생성한 함수나 변수는 외부에서 호출이 불가능함. 그러 므로 워커에서 작업한 내용을 메인 UI 스레드에서 알기 위해서는 메시지를 주고받아야 함 메시지를 주고받기 위해서는 postMessage() 메서드와 onmessage 이벤트 핸들러를 사용 postMessage() 메서드는 데이터를 보내기 위해 사용하는 것이며 onmessage 이벤트 핸들러는 postMessage() 메서 드에 담겨 온 데이터를 수신하기 위해 사용 웹 워커 & 웹 소켓 Chapter12 7

워커 생성 및 메시지 전달  메시지 전달 메인 스레드에서 생성한 워커에 “ 데이터 ” 라는 문자열 을 postMessage() 메서드를 보낼 경우 웹 워커 & 웹 소켓 Chapter12 8

워커 생성 및 메시지 전달  메시지 수신 메인 UI 스레드에서 워커로 보낸 데이터를 워커에서 받기 위해서는 onmessage 이벤트 핸들러를 사용 웹 워커 & 웹 소켓 Chapter12 9

워커 생성 및 메시지 전달  메시지 전달 워커에서 postMessage() 메서드를 사용할 때는 전역 으로 호출하면 자동으로 워커를 생성 한 곳으로 메시 지를 전달하게 됨 만약 워커에서 처리 결과인 “result” 문자열을 메인 UI 로 전달할 경우 웹 워커 & 웹 소켓 Chapter12 10

워커 생성 및 메시지 전달  메시지 수신 메인 UI 스레드에서는 메시지 수신받을 대상 워커의 객체에 대해 onmessage 핸들러를 지정하여 처리 웹 워커 & 웹 소켓 Chapter12 11

워커 생성 및 메시지 전달  워커 종료 워커에서의 작업이 종료되어 더 이상 메시지를 주고 받을 일이 없다면 워커를 종료해야 함 워커를 종료할 때는 객체에 대하여 terminate() 메서 드를 호출 웹 워커 & 웹 소켓 Chapter12 12

프로그램 12-1 웹 워커 & 웹 소켓 Chapter : 02: 03: 04: 05: 웹 워커 06: 07: var worker; 08: 09: function calc() 10: { 11: var num = document.getElementById("num").value; 12: 13: worker = new Worker("calc.js"); 14: 15: worker.onmessage = function(event) 16: { 17: alert(" 약수의 개수 : " + event.data); 18: }; 19: 20: worker.onerror = function(event) 21: { 22: alert(" 에러 : " + event.message); 23: }; 24: 25: worker.postMessage(num); 26: }

프로그램 12-1 웹 워커 & 웹 소켓 Chapter : function stop() 29: { 30: worker.terminate(); 31: } 32: 33: 34: 35: 값 입력 : 36: 37: 38: 39: 01: onmessage = function(event) 02: { 03: var num = event.data; 04: var total = 0; 05: var i; 06: 07: for(i=num; i>0; i--) 08: { 09: if(num % i == 0) 10: total++; 11: } 12: 13: postMessage(total); 14: };

공유 워커의 사용  공유 워커 워커는 기본적으로 하나의 워커 객체와 백그라운드의 프로세스가 일대일로 대응하는 형태로 되어 있음. 하지만 여러 개의 워커 객체가 하나의 백그라운드 프 로세스를 공유해서 사용 할 수도 있음 객체를 생성할 때 ShareWorker() 생성자를 호출 인수로는 워커와 마찬가지로 자바스크립트 파일명 이 들어가며 추가로 워커의 이름도 지정 웹 워커 & 웹 소켓 Chapter12 15

공유 워커의 사용  공유 워커 객체를 따로 생성하더라도 같은 이름의 자바스크립트 파일명과 워커 이름을 사용하면 백그라운드 프로세스 를 공유하게 됨 웹 워커 & 웹 소켓 Chapter12 16

공유 워커의 사용  데이터 전달 메인 UI 스레드에서 공유 워커로 데이터를 보내기 위 해서는 워커와 마찬가지로 postMessage() 메서드를 사용 생성한 객체의 port 속성을 사용하여 데이터를 전달 해야 함 웹 워커 & 웹 소켓 Chapter12 17

공유 워커의 사용  데이터 수신 port 속성은 메인 UI 스레드와 공유 워커와의 통신을 위한 채널이라고 할 수 있음 port 속성을 사용하여 전달한 데이터는 공유 워커에 서 onconnect 이벤트 핸들러를 사용하여 전달받아야 함 웹 워커 & 웹 소켓 Chapter12 18

공유 워커의 사용  데이터 전달 메인 UI 스레드와 연결되어 있는 포트는 onconnect 이벤트 핸 들러를 통해 전달받은 이벤트 객체의 ports 속성을 사용하여 확 인 할 수 있음 공유 워커에서 메인 UI 스레드에 데이터를 전달하기 위해서는 onconnect 이벤트 핸들러를 통하여 확인한 포트의 postMessage() 메서드를 사용하면 됨 웹 워커 & 웹 소켓 Chapter12 19

공유 워커의 사용  데이터 수신 메인 UI 스레드에서는 메시지 수신받을 대상 워커의 객체의 포트에 대하여 onmessage 핸들러를 지정하 여 처리 웹 워커 & 웹 소켓 Chapter12 20

프로그램 12-2 웹 워커 & 웹 소켓 Chapter : 02: 03: 04: 05: 웹 워커 06: 07: var worker; 08: 09: function calc() 10: { 11: var num = document.getElementById("num").value; 12: 13: var worker = new SharedWorker("sharecalc.js", "share"); 14: 15: worker.port.onmessage = function(event) 16: { 17: alert(" 약수의 개수 : " + event.data); 18: }; 19: 20: worker.port.onerror = function(event) 21: { 22: alert(" 에러 : " + event.message); 23:}; 24: 25: worker.port.postMessage(num); 26: }

프로그램 12-2 웹 워커 & 웹 소켓 Chapter : function stop() 29: { 30: worker.port.terminate(); 31: } 32: 33: 34: 35: 값 입력 : 36: 37: 38: 39: 01: onconnect = function(event) 02: { 03: var port = event.ports[0]; 04: 05: port.onmessage = function(event) 06: { 07: var num = event.data; 08: var total = 0; 09: var i; 10: 11: for(i=num; i>0; i--) 12: { 13: if(num % i == 0) 14: total++; 15: } 16: 17: port.postMessage(total); 18: }; 19: };

웹 소켓  웹 페이지 요청 어떠한 정보를 보기 위해서는 항상 클라이언트에서 서 버에 페이지 요청을 해야 함 웹 워커 & 웹 소켓 Chapter12 23

웹 소켓  웹 소켓 별도의 플러그인이 필요 없는 순수한 웹 환경에서 양 방향 통신이 가능 실시간으로 데이터들을 주고받을 수 있음 브라우저 지원 현황 웹 워커 & 웹 소켓 Chapter12 24

웹 소켓 클라이언트  웹 소켓 클라이언트 서버 연결, 데이터 송신, 데이터 수신만 정의하면 됨 서버 연결을 위해서는 WebSocket 객체를 생성해야 함 URL 을 지정할 때는 일반적인 http 나 https 를 사용 하지 않고 일반 통신인 경우에는 ws 를 사용하며 보 안 통신일 경우에는 wss 를 사용 웹 워커 & 웹 소켓 Chapter12 25

웹 소켓 클라이언트  웹 소켓 클라이언트 서버와의 연결이 완료되면 서버와의 데이터를 주고받 을 준비가 완료된 것 클라이언트에서 서버로 데이터를 보내기 위해서는 send() 메서드를 사용 send() 메서드의 인수로는 보내고자 하는 데이터 문자열을 지정 웹 워커 & 웹 소켓 Chapter12 26

웹 소켓 클라이언트  웹 소켓 클라이언트 서버에서 보내는 데이터를 받기 위해서는 이벤트를 사용 onopen 이벤트와 onclose 이벤트는 서버와의 연결이 설정되거 나 끊어질 경우에 대한 처리를 하면 되고 서버에서 보내는 데이 터는 onmessage 이벤트를 사용 웹 워커 & 웹 소켓 Chapter12 27

웹 소켓 클라이언트 웹 워커 & 웹 소켓 Chapter12 28

웹 소켓 서버  웹 소켓 서버 별도의 소켓 서버를 만들어야 함 다양한 오픈 소스가 제공되고 있음 파이썬 pywebsocket ( PHP phpwebsocket ( 자바 jWebSocket ( 루비 web-socket-ruby ( 자바스크립트 Socket.IO-node ( 웹 워커 & 웹 소켓 Chapter12 29

jWebSocket  1 단계 jWebSocket 은 자바로 되어 있기 때문에 자바 가상머 신이 설치되어 있어야 함 자바 가상머신인 JRE 를 설치하기 위해서는 오라클 홈 페이지 ( x.html) 에 접속하여 JRE 를 다운로드 받음 다운로드받은 후에는 환경 변수 설정 웹 워커 & 웹 소켓 Chapter12 30

jWebSocket  2 단계 웹 페이지에서 jWebSocket 라이브러리를 다운로드받음 웹 워커 & 웹 소켓 Chapter12 31

jWebSocket  3 단계 서버 구동을 위하여 jWebSocketServer 을 다운로드 받은 후 압축을 해제 환경 변수에 JWEBSOCKET_HOME 의 경로를 지정 웹 워커 & 웹 소켓 Chapter12 32

jWebSocket  4 단계 압축을 해제한 폴더 안으로 들어가 bin 폴더의 jWebSocketServer.bat 파일을 실행 웹 워커 & 웹 소켓 Chapter12 33

jWebSocket  5 단계 서버 구동이 완료되면 jWebSocketClient 를 다운받 은 후 압축을 해제 웹 워커 & 웹 소켓 Chapter12 34