SlideShare a Scribd company logo
1 of 56
Download to read offline
MMO 와 SNG 의 컨버전스 :
프로젝트 S 로 살펴보는 서버전략
드래곤플라이 S 팀
김익중
이 PPT 자료는 2013 년 4 월 24 일 넥슨에서 주최한
NDC 13 에서 발표한 것입니다 .
배포를 위해 수정된 부분들이 있으며
기술 내용의 권리는 드래곤플라이에 있습니다 .
About Me
- Game Developer
- NeowizGames, 네시삼십삼분
- Dragonfly
- Technical Director / Server Programmer
- http://rhea.pe.kr
- https://twitter.com/rheastrike
- 최근에는 콘텐츠보다 데이터 다루는 것에 재미를 붙였습니다 .
1. 자유를 위한 계획
Tragedy of WIFI & 3G(or LTE)
Session Storage Server
접속은 끊겨도 세션은 유지
- 게임 서버 기준으로 서버의 유령 유저 다수 존재
쿠키 표준안
- RFC 2109
- 쿠키는 300 개까지
- 최대 크기는 4,096 바이트
- 하나의 호스트나 도메인에서 최대 20 개
Front 서버를 믿지 말고 세션 저장 서버로 로긴 판단
Session Storage Server
Server
1
Server
1
Server2Server2
Server
…n
Server
…n
STSSTS
Business TierBusiness Tier
1) 접속 , 로긴
2) 세션 검증
3) 로긴 / 재로긴 OK
4) 일반 작업 수행
REST based Comet
- Representational state transfer
- 이럴봐엔 차라리 Comet 을 쓰겠어 !
게임에 Comet 이 말이 되냐 ?
- 신조어 , 비동기 게임 기획자 용어
SNGSNG
Back to the PC-Online
WebSocket
Mercury Project
- node.js 를 기본으로 한 SNS 프로젝트
- PC/ 스마트 디바이스 동시 지원
Venus Project
-C++ 을 기본으로 한 재활용 가능한 MMO 콘텐츠 서버 프로젝트
-DB 의존성 최소화
-클라이언트 , 서버 동일한 콘텐츠 레이어 유지
Earth Project
- C# 을 기본으로 한 REST 서버
-Redis 를 이용한 Database Memory Cache 서버
Neptune Project
- SE, DBA 기쁨 프로젝트
Architecture
Switch
Server
Switch
Server
LobbyLobby
Chat
Server
Chat
Server
Non-
Realtime
Server
Non-
Realtime
Server
STS/
DB
Cache
STS/
DB
Cache
DatabaseDatabase
Realtime
Game
Server
Realtime
Game
Server
PC
Client
PC
Client
Smart
Device
Client
Smart
Device
Client
REST
RESTREST
WebSocket
2. Mercury Project
node.js
Node.jsNode.jsCommon ServerCommon Server
C++ or C#
IOCP Model
Lua, Python
Script Engine
By C++
Script Engine
Based
Contents
libuv
V8
JavaScript
Engine
JavaScript
Based
Contents
IOCP: node.js
I/O Complete Port
Benchmark
Boost::Asio vs. Node.js
메모리를 더 차지하나 속력은 만족
- V8 의 메모리
총 데이터 (Recv/Send) : 516,000,000/516,000,000
시도 서버 연결 개수 메모리 (Max) CPU(Max) 스레드 서버 총 처리 시간 클라 총 Send 시간 클라 총 Recv 시간
1 차
Asio 1000 276,544 25 2 0:55 0:39 0:54
Node 1000 665,004 12 3 1:04 1:02 1:07
2 차
Asio 1000 276,496 25 2 0:57 0:40 0:55
Node 1000 664,596 12 4 1:05 1:02 1:06
3 차
Asio 1000 276,420 25 2 1:05 0:45 1:02
Node 1000 662,024 13 4 1:16 1:14 1:20
Socket.IO
Node.js 의 소켓을 이용하여
“WebBrowser 에서” 실시간 네트워킹
net module vs. Socket.IO
- Websocket
- Smart Phone
- Rooms
WebBrowser 임베딩이냐 C/S 구현이냐 ?
Socket.IO
벤치마킹
- CPU E5-2650 2.00Ghz(2 processors)
- 4.00 GB
- x64 Windwos Server
- 153byte Echo test
접속수 2253 3257 4053
초당 에코성공 1690 2178 2681
초당 에코성공 1741 2174 2612
초당 에코성공 1684 2225 2225
Native Problem
Win32 Client 에서는 어떻게 받지 ?
- WebSocket 을 C/C++ 로 구현
- RFC 6455 및 Socket.IO 프로토콜 직접 구현
1) 서버 접속
2) Session ID 와 Transport ID 받음
3) Socket 혹은 XMLHTTPRequest 로 받을 것인지 선택
4) XMLHTTPRequest 라면 클라이언트가 계속 폴링
5) Socket 이라면 새 Transport 연결 획득
6) 지정된 시간만큼 핸드쉐이킹
7) Socket.IO 프로토콜 추가
1) 서버 접속
2) Session ID 와 Transport ID 받음
3) Socket 혹은 XMLHTTPRequest 로 받을 것인지 선택
4) XMLHTTPRequest 라면 클라이언트가 계속 폴링
5) Socket 이라면 새 Transport 연결 획득
6) 지정된 시간만큼 핸드쉐이킹
7) Socket.IO 프로토콜 추가
Websocket Protocol
GET /mychat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key:
x3JJHMbDL1EzLkh9GBhXDw=
=
Sec-WebSocket-Protocol: chat
Sec-WebSocket-Version: 13
Origin: http://example.com
GET /mychat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key:
x3JJHMbDL1EzLkh9GBhXDw=
=
Sec-WebSocket-Protocol: chat
Sec-WebSocket-Version: 13
Origin: http://example.com
Websocket Protocol
Socket.IO 클라이언트 (js) 가 하는 일
Websocket Protocol
Caloris
Socket.IO 용 Win32 C++ 클라이언트 라이브러리
-https://github.com/RheaStrike/Caloris
Redis
Redis 와의 첫만남
- node.js 의 Scale up
- 서로 다른 node.js 서버에 접속한 유저들끼리의 통신
- Scale up 은 전통적인 웹개발자들에게 최대의 난관
CMN1
(node.js/Socket.IO
)
CMN1
(node.js/Socket.IO
)
CMN2
(node.js/Socket.IO
)
CMN2
(node.js/Socket.IO
)
??????
MS Open Tech
IOCP: Redis
Pub/Sub
Socket.IO 의 친구 Redis
동접의 증가를 고려
Architecture
Switch
Server
Switch
Server
LobbyLobby
Chat
Server
Chat
Server
Web
Server
Web
Server
STS/
DB
Cache
STS/
DB
Cache
DatabaseDatabase
Realtime
Game
Server
Realtime
Game
Server
PC
Client
PC
Client
Smart
Device
Client
Smart
Device
Client
REST
RESTREST
WebSocket
Basic Community System
CMN1
(node.js
/ Socket.IO)
CMN1
(node.js
/ Socket.IO)
CMN2
(node.js
/ Socket.IO)
CMN2
(node.js
/ Socket.IO)
CBS
(Redis)
CBS
(Redis)
Push
Gateway(C#)
Push
Gateway(C#)
Demo
Socket.IO
I/O 문제 해결
PC 와 스마트 디바이스 동시해결
But,
- node.js 가 싱글 쓰레드
- 빈약한 자료구조 , C++ 에 비해 부족한 함수
- 재연결시 세션 문제는 여전히 존재
- 카톡 , 라인과 같은 프로토콜로 대체
- 혹은 아예 새로운 RFC 를 ?
남는 CPU 를 다른 서버 자
원으로 쓸수 없을까 ?
MPI, MP
남는 CPU 를 다른 서버 자
원으로 쓸수 없을까 ?
MPI, MP
3. Earth Project
One World
목표 : 서버 구분이 없는 SNS 커뮤니티
그런데 기존 온라인 게임 말고는 전부 구분이 없다 .
내가 SNS 를 하는 이유는 트잉여가 아니라 서버 분석 때문이다아 ~~~!!!
One World
Database Caching
보이는 것과 보이지 않는 것
서버 구분은 서버가 아니라 DB 이야기
- SNS 등장 이후 기술적 화두는 전부 캐시 구성 이야기
DB 캐시 서버가 견딘다면 One World 는 자동 해결된다 .
- Cache + Big Data + Session Storage + Logic
Architecture
수비 믿고 던지면 안 되지
네가 잡아야지
네가 이겨야 한다
이 타자를 무조건 잡아야 한다
삼진으로 무조건 잡아야 한다
이런 생각으로
Architecture
Switch
Server
Switch
Server
LobbyLobby
Chat
Server
Chat
Server
Web
Server
Web
Server
STS/
DB
Cache
STS/
DB
Cache
DatabaseDatabase
Realtime
Game
Server
Realtime
Game
Server
PC
Client
PC
Client
Smart
Device
Client
Smart
Device
Client
REST
RESTREST
WebSocket
Database Partitioning
눈팅 위주의 평범한 게시판
ClientClient
DatabaseDatabase
DatabaseDatabase DatabaseDatabase DatabaseDatabase
쓰기
복제
읽기
Database Partitioning
Database
1
Database
1
Database
3
Database
3
Database
2
Database
2ClientClient
Dic.Dic.
어디에 있니
?
3 번에 있어
Strategy & Tech
게임은 [ 쓰기 ] 가 압도적으로 많다 .
-아이템과 머니 때문임
그냥 NoSQL 로 밀어버릴까 ?
-트랜잭션은 누가 책임 ?
메모리 DB 를 만들자
-COM+
-ADO.NET 의 DataSet
-Linq
-201X 년에도 이런 짓을 ?
VS
.
Memcached vs. Redis
이미 질렀으니 Redis
- 스펙비교는 각자 살펴보세요 .
- 오직 Hash 테이블만 사용
- Expires
어차피 프로그램은 필요하다 .
- C++ vs. C#
- Hiredis vs. ServiceStack.Redis vs. BookSleeve
- 직관적인 클라이언트 라이브러리 때문에 C# + BookSleeve 선택
- with Linq + JSON
- C# 용 클라이언트 라이브러리 직접 만들 계획
Database Caching
Why?
- 우리들은 프로그래머니까 .
- 비용절감
- 도전하고 싶어서 .
- 먹고 사는데 도움이 될꺼야…
DatabaseDatabase
ClientClient
Cache
Server
Cache
Server
쓰기
복제
읽기
Caching strategy
-인력세팅에 따른 사용법 고안 : 우린 DBA 가 있어요 ~
작업 중에 DB 에
새 쿼리가 필요하
다
작업 중에 DB 에
새 쿼리가 필요하
다
DBA 에게 쿼리를
요청한다
DBA 에게 쿼리를
요청한다
DBA 에게 쿼리를
받는다
DBA 에게 쿼리를
받는다
캐시 서버에 SP 를
등록한다
캐시 서버에 SP 를
등록한다
캐시 서버에 JSON
형태로 요청한다
캐시 서버에 JSON
형태로 요청한다
캐시 서버는 자신이 갖고
있으면 그대로 응답하며
없으면
DB 에게 질의해 돌려준
다 .
Write 는 캐시 갱신후
DB 반영
캐시 서버는 자신이 갖고
있으면 그대로 응답하며
없으면
DB 에게 질의해 돌려준
다 .
Write 는 캐시 갱신후
DB 반영
Caching sharding
Caching sharding
성능은 맛봤으니 이제 Scale up 할 차례
- 아직 Redis 는 Cluster 가 불가능 , 오직 Master/Slave 복제만 가능
- ZooKeeper, Sentinel 고려
- 대기표 시스템 , 정확한 실시간이 아닐 경우 , 고장감래…
애당초 게임을 위한 솔루션들은 아니었다
Caching sharding
Cache
Server 1
Cache
Server 1
Cache
Server 3
Cache
Server 3
Cache
Server 2
Cache
Server 2
Cache
Server
n
Cache
Server
n
Redis 1Redis 1
Redis 3Redis 3
Redis 2Redis 2
Redis
n
Redis
n
Game
Server 1
Game
Server 1
Game
Server 3
Game
Server 3
Game
Server 2
Game
Server 2
Game
Server
n
Game
Server
n
ProxyProxy
Sharding
Manager
Sharding
Manager
Redis
1
Redis
1
Redis
3
Redis
3
Redis
2
Redis
2
Redis
n
Redis
n
Architecture
Switch
Server
Switch
Server
LobbyLobby
Chat
Server
Chat
Server
Web
Server
Web
Server
STS/
DB
Cache
STS/
DB
Cache
DatabaseDatabase
Realtime
Game
Server
Realtime
Game
Server
PC
Client
PC
Client
Smart
Device
Client
Smart
Device
Client
REST
RESTREST
WebSocket
REST API
ASP.NET
- 왜죠 ?
REST API
- GET 서버와 POST 서버의 분리
FireWallFireWallREST API
- 내부 / 외부 포트를 나누어 사용
- ADO 대신 Cache Server 를 이용
- Client 는 SSL 을 지원해야함
ClientClient
Web
Server
Web
Server
Other
Server
Other
Server
Port 443
STS/
Cache
Server
STS/
Cache
Server
Port XXX
Conclusion
최근 쏟아지는 기술들중 필요한 것들만 챙기면 됩니다 .
MMO 가 아니라 SNG 라면 REST 구조만 들고가도 됩니다 .
어떤 서버에서 작업하든 Socket/HTTP 로 변환가능해야 합니다 .
Conclusion
참고자료
-http://helloworld.naver.com/helloworld/233847
-http://helloworld.naver.com/helloworld/294797
-http://oldblog.antirez.com/post/redis-as-LRU-cache.html
-http://www.slideshare.net/ryanlecompte/handling-redis-failover-with-zookeeper

More Related Content

What's hot

Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기JeongHun Byeon
 
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발주항 박
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래JeongHun Byeon
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCore.Today
 
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji DonghyunCoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji DonghyunCore.Today
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
Beejei node.js & web service
Beejei   node.js & web serviceBeejei   node.js & web service
Beejei node.js & web serviceBumjin Kim
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsSuwon Chae
 
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기Jinuk Kim
 
공성대전 C# 사용기
공성대전 C# 사용기공성대전 C# 사용기
공성대전 C# 사용기Myoung-gyu Gang
 
Node.js
Node.jsNode.js
Node.jsymtech
 
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안GangSeok Lee
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 

What's hot (20)

Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기
 
Node.js at OKJSP
Node.js at OKJSPNode.js at OKJSP
Node.js at OKJSP
 
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park Jihun
 
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji DonghyunCoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
Beejei node.js & web service
Beejei   node.js & web serviceBeejei   node.js & web service
Beejei node.js & web service
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
 
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
 
공성대전 C# 사용기
공성대전 C# 사용기공성대전 C# 사용기
공성대전 C# 사용기
 
Node.js
Node.jsNode.js
Node.js
 
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 

Viewers also liked

Testing nodejs apps
Testing nodejs appsTesting nodejs apps
Testing nodejs appsfelipefsilva
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안Jeongsang Baek
 
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
Amazon web service를 활용한 모바일 게임 서버 개발   퍼즐 주주의 사례를 중심으로Amazon web service를 활용한 모바일 게임 서버 개발   퍼즐 주주의 사례를 중심으로
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로Seok-ju Yun
 
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례Jeongsang Baek
 
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자![NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!Jeongsang Baek
 
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권freeNAVER D2
 
[Hello world 오픈세미나]vertx&socket io
[Hello world 오픈세미나]vertx&socket io[Hello world 오픈세미나]vertx&socket io
[Hello world 오픈세미나]vertx&socket ioNAVER D2
 
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법Jeongsang Baek
 
JavaScript defer & async
JavaScript defer & asyncJavaScript defer & async
JavaScript defer & asyncSeung-Hyun PAEK
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교iFunFactory Inc.
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 jbugkorea
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the StreamsCascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streamsmattpodwysocki
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍NAVER D2
 
Functional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwiftFunctional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwift선협 이
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 

Viewers also liked (20)

Testing nodejs apps
Testing nodejs appsTesting nodejs apps
Testing nodejs apps
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
 
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
Amazon web service를 활용한 모바일 게임 서버 개발   퍼즐 주주의 사례를 중심으로Amazon web service를 활용한 모바일 게임 서버 개발   퍼즐 주주의 사례를 중심으로
Amazon web service를 활용한 모바일 게임 서버 개발 퍼즐 주주의 사례를 중심으로
 
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
 
Inside node.js
Inside node.jsInside node.js
Inside node.js
 
What’s new in c++11
What’s new in c++11What’s new in c++11
What’s new in c++11
 
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자![NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!
 
Project bs oss
Project bs ossProject bs oss
Project bs oss
 
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
 
[Hello world 오픈세미나]vertx&socket io
[Hello world 오픈세미나]vertx&socket io[Hello world 오픈세미나]vertx&socket io
[Hello world 오픈세미나]vertx&socket io
 
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
NDC15_백정상_최종_모바일_앱의_실시간_운영을_위한_유저분석과_타게팅_기법
 
JavaScript defer & async
JavaScript defer & asyncJavaScript defer & async
JavaScript defer & async
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the StreamsCascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streams
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
 
Functional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwiftFunctional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwift
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 

Similar to Rhea_MMO_SNG_Convergence_Server_Architecture

[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista Community
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 jeong seok yang
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista Community
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista Community
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)Taegil Heo
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로Amazon Web Services Korea
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
Play node conference
Play node conferencePlay node conference
Play node conferenceJohn Kim
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3Amazon Web Services Korea
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista Community
 
광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx
광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx
광안 1반 2팀 엠퀴즈 최종 발표 자료.pptxYeongKiKim1
 

Similar to Rhea_MMO_SNG_Convergence_Server_Architecture (20)

[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
CDN overview
CDN overviewCDN overview
CDN overview
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
Play node conference
Play node conferencePlay node conference
Play node conference
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx
광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx
광안 1반 2팀 엠퀴즈 최종 발표 자료.pptx
 

Rhea_MMO_SNG_Convergence_Server_Architecture