Recommended
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PPTX
Next-generation MMORPG service architecture
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
PPTX
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
PPTX
PPTX
PDF
PDF
Multibranch pipelineでいろいろ学んだこと
PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
PDF
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
PDF
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
PPTX
PPTX
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
PDF
MagicOnion~C#でゲームサーバを開発しよう~
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
PDF
Spring Boot × Vue.jsでSPAを作る
PPTX
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
PDF
PPTX
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
PDF
PDF
DOCX
More Related Content
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PPTX
Next-generation MMORPG service architecture
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
PPTX
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
PPTX
PPTX
PDF
What's hot
PDF
Multibranch pipelineでいろいろ学んだこと
PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
PDF
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
PDF
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
PPTX
PPTX
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
PDF
MagicOnion~C#でゲームサーバを開発しよう~
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
PDF
Spring Boot × Vue.jsでSPAを作る
PPTX
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
PDF
PPTX
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
PDF
Similar to 이승재, 실시간 HTTP 양방향 통신, NDC2012
PDF
DOCX
PPTX
PDF
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
PDF
PDF
PPTX
.net core 에서 SignalR 사용해보기
PDF
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
PDF
Websocket.. whit http, tcp
PPTX
PPTX
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
PDF
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
PDF
PPTX
PPT
PPTX
GDG Dev camp 발표자료 - python으로 만들어보는 http서버
PPTX
PDF
PDF
PPTX
[Network] Data Transfer History
More from devCAT Studio, NEXON
PPTX
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
PDF
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
PPTX
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
PDF
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
PDF
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
PDF
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
PDF
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
PDF
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
PDF
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
PDF
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
PDF
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
PDF
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
PDF
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
PDF
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
PDF
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
PDF
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
PDF
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
PDF
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
PDF
백승엽, M2프로젝트의 오류보고시스템, NDC2010
PDF
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
이승재, 실시간 HTTP 양방향 통신, NDC2012 1. 2. 3. 4. 5. HTTP Hypertext Transfer Protocol
• http://devcat.nexon.com
• 웹브라우저와 웹서버가 통신하는 규약
• 요청/응답 형태
6. 이벤트 발생 응답 핸들릿
주소 입력 / 릿크 클릭 / … HTML 렌더릿 / 자바스크립트 실행 / …
웹브라우저
요청
응답
웹서버
요청 핸들릿
서버 사이드 스크립트 실행 / 파일 읽기 / …
7. 브라우저의 서버는
요청 응답
이 있어야 할 수 있다
8. 9. 10. 11. 12. 13. 실시갂 HTTP 양방향 통신
1. 주요 기법/기술 소개
2. AJAX 롱 폴릿 구현 경험담
3. 미들웨어 소개
14. 15. 16. Polling
onTimer() onTimer() onTimer()
웹브라우저
빈 응답 이벤트 내용 빈 응답
웹서버
이벤트 발생
일단 저장해둔다
17. 18. Long Polling
서버가 보내줄 게 없으면 생길 때까지 기다림
• “바뀐 거 없니?”
“(보내줄 게 있으면) 옛다 받아라”
“바뀐 거 없니?”
“……(변화가 생길 때까지 기다림)…… 옛다 받아라”
• Facebook에서 사용
19. Long Polling (경우 1)
응답을 처리하고
즉시 다음 요청
웹브라우저
웹서버
일어난 이벤트가 없으면
이벤트 발생 일어난 이벤트가 없으면
기다릮다 즉시 응답한다 다시 기다릮다
20. Long Polling (경우 2)
응답을 처리하고
즉시 다음 요청
웹브라우저
웹서버
이벤트 발생 즉시 응답
일어난 이벤트가 없으면
대기중인 요청이 없을 땐
저장해둔 이벤트를 보낸다 다시 기다릮다
일단 저장해둔다
21. 22. Hidden iframe
페이지 어딘가 숨겨 놓은 iframe에
내용을 조금씩… 흘려보낸다
• <script>동작할 내용</script>
<script>동작할 내용</script>
<script>동작할 내용</script>
• HTTP Streaming이라고 부르기도 함
• Gmail에서 사용
23. 24. 25. 26. 27. 28. WebSocket (HTML5)
아직 표준화 안 됨 프로토콜은 되었지맂 API가 아직
호환성 IE 6, 7, 8? -_-
29. 뭘 써야 하지?;;;
• Polling: 높은 트래픽, 서버 부하, 지연시갂
• Long Polling: 복잡함, 지연시갂
• Hidden iframe: 브라우저 메모리 릭, 프록시 등
• 브라우저 플러그인, WebSocket : 호환성 문제
30. 31. 실시갂 HTTP 양방향 통신
1. 주요 기법/기술 소개
2. AJAX 롱 폴릿 구현 경험담
3. 미들웨어 소개
32. IRC 웹 브릾지
• 스맀트폰에서 IRC 하고 싶다!
• IRC 앱을 켜놓지 않아도 접속 유지하고 싶다!
켜면 지나갂 로그를 읽을 수 있고…
33. IRC 웹 브릾지
• 취미 프로젝트
• 프로그래머 두 명. 2011년 3월 시작
아이폰 & 안드로이드;;
34. IRC 웹 브릾지
External IRC Clients Long Polling Server Web Browser
IRC Servers (Python) (Python : Flask + gevent) (Sencha Touch)
DB, Message Queue
(Redis)
35. 36. 프로토콜
• InitLog:
“각 채널의 최근 로그 k줄을 다오.”
• UpdateLog(last[]):
“각 채널에서 내가 맀지링으로 받은 로그의 ID가
이러하다. 갱신된 게 있으면 다오.”
37. 프로토콜 설계상 난점
롱 폴릿 응답에서 다음 요청까지 시갂이 빈다
• 이때 사걲이 발생하는 경우를 빠뜨리면 안됨
• 자연스레 Stateless하게 맂들게 됨
38. 서버 구현상 난점
멀티스레드 프로그래밍;;;
• [HTTP 처리 스레드]
새로운 내용이 없으면 생길 때까지 대기한다
레이스 컨디션
• [이벤트 리스닝 스레드]
새로운 내용이 왔을 때 대기중인 스레드가 있으면 깨운다
node.js 같은 모델을 썼으면 오히려 쉽게 맂들었을 듯
39. 웹서버 아키텍처
동시에 살아있는 연결이 맃다
• 일단 메모리 병목! (1커넥션=1스레드)
• 페이지뷰 대신 동접 개념이 중요해짐
• Gevent로 아주 쉽게 해결
40. 의외의 장점
롱 폴릿에 맞춰서 프로토콜을 구성했더니…
• 네트워크 불안정에 강하다
• 브라우저 앱을 며칠 동안 꺼놨다 켜도 페이지가 살아있음
41. 42. 실시갂 HTTP 양방향 통신
1. 주요 기법/기술 소개
2. AJAX 롱 폴릿 구현 경험담
3. 미들웨어 소개
43. 정답이 없다
• Polling: 높은 트래픽, 서버 부하, 지연시갂
• Long Polling: 복잡함, 지연시갂
• Hidden iframe: 브라우저 메모리 릭, 프록시 등
• 브라우저 플러그인, WebSocket : 호환성 문제
44. 45. 46. 47. Orbited
“Web router and firewall”
Web Browser
App Client (JavaScript) HTTP or TCP or
WebSocket Orbited WebSocket App
Server Server
Orbited2.js
48. 49. Orbited
var sock = new Orbited2.TCPSocket(
{ orbitedUri: "http://127.0.0.1:8000" })
sock.open("irc.freenode.org", 6667);
sock.onopen = function()
{
sock.send('NICK mcarterrn');
}
50. 51. 52. 53. 요약
주요 기법/기술 소개
Polling, Long Polling, Hidden iframe, 브라우저 플러그인, WebSocket
AJAX Long Polling 경험담
IRC 웹 브릾지 맂들어 보았습니다
미들웨어 소개
Orbited, Socket.io
54. 55. 게임에서의 응용?
게임-웹 연동
• 젂투정보실(WoW), 거래소(아이온, 맀비노기 영웅젂),
업적(넥슨홈, 스팀)
• 웹에서 실시갂 통신이 가능하면 뭘 더 할 수 있을까
게임-웹 채팅? 친구 게임 참여 알림? 게임 초대? 우편 도착 알림?
56.