SlideShare una empresa de Scribd logo
1 de 152
Descargar para leer sin conexión
이흥섭
왓 스튜디오 / 넥슨코리아
<야생의 땅: 듀랑고>
서버 아키텍처
SPOF 없는 분산 MMORPG 서버
이흥섭 sub@nexon.co.kr
• 주로 게임 서버 프로그래밍
• 현재 <야생의 땅: 듀랑고>
• <카트라이더 대시 & 코인러시> - 페이스북, 카카오 MO 게임
• <한글라이즈>, <블라> 등 웹 서비스
• 틈틈이 오픈소스 활동 https://github.com/sublee
<야생의 땅: 듀랑고>?
모바일
오픈월드
MMORPG
실시간 동기화
영속성
심리스
단일세계
설계 목표와 원칙
높은 가용성
High availability
연간 다운타임 5.5분 미만
가용율 99.999%
http://status.aws.amazon.com/
https://status.github.com/
https://developers.facebook.com/status/
신축성
Elasticity
AWS

설계 목표
• 높은 가용성
• 신축성
無SPOF
=
=
=
= 
SPOF
Single point of failure
라우터
웹서버
웹서버
웹서버
라우터
웹서버
웹서버
웹서버
라우터
웹서버
웹서버
웹서버
캐시
게임서버
중앙서버
로그인
서버
DB
캐시
게임서버
중앙서버
로그인
서버
DB
캐시
게임서버
중앙서버
로그인
서버
DB
캐시
게임서버
중앙서버
로그인
서버
DB
캐시
게임서버
중앙서버
로그인
서버
DB
캐시
게임서버
중앙서버
로그인
서버
DB
부하가 몰려서 이중화
캐시
게임서버
중앙서버
로그인
서버
DB
이중화하기 쉬우니까 이중화
캐시
게임서버
중앙서버
로그인
서버
DB
고사양
무결점
인프라
고사양
무결점
AWS
모든 서버는
분명히 죽는다
빠짐 없이 이중화
無SPOF
✔ 부하 분산
✔ 중요성 분산
= 
✔ 부분적 장애
• 가정: 모든 서버는 죽는다.
• 無SPOF
• 부분적인 장애 허용
설계 원칙
파이썬
• 코드의 양 ≒ 생각의 양
• 방대한 오픈소스 커뮤니티

✔ 높은 생산성
• 느린 연산
• 멀티스레딩 미흡

✔ C로 대체
✔ I/O가 더 중요
gevent
코루틴 기반 통신 라이브러리

동기(Synchronous) I/O
value = db.load('durango')
print value 스레드 봉쇄
멀티스레딩 + 동기 I/O
스레드 개수가 동시성 한계
비동기(Asynchronous) I/O
def callback(value):
print value
db.async_load('durango', callback)
JavaScript로
db.load('durango', function(value) {
print(value);
});
db.load('durango', function(value) {
db.load(value, function(value2) {
db.load(value2, function(value3) {
print(value3);
});
});
});
db.load('durango', function(err, value) {
if (err) {
// 예외처리
} else {
print(value);
}
});
코루틴 I/O
value = yield db.load('durango')
print value
코루틴?
서브루틴main() func()
함수 호출
return/raise
코루틴main()
함수 호출
return/raise
yield
next
func()
hub() send() recv() sleep()
코루틴 I/O
value = yield db.load('durango')
print value
다른 일
try:
value = yield db.load('durango')
except NotFound:
# 예외처리
else:
print value
try:
value = yield db.load('durango')
except NotFound:
# 예외처리
else:
print value
gevent
I/O 함수들이 암시적으로 yield하도록 패치
gevent I/O
value = db.load('durango')
print value
다른 일
암시적 yield?

동기 I/O 방식으로
작성된 라이브러리를
모두 그대로 사용 가능

gevent 마이크로스레드
…
• 직관적 코드
• 오픈소스 커뮤니티
• gevent 
파이썬
서버 간 통신
=
✘
✔
P2P 네트워크
홀펀처
ØMQ
N:N 다중 연결 소켓
… … …
… …
작업큐 패턴
15 3
24
아무나 받아라
Pub/Sub 패턴
12
2 13
3
다 받아라
Pub/Sub 패턴
123 구독
=
… ……
MMORPG 분산처리
영속성 휘발성
영속성 휘발성DB
게임서버
영속성 휘발성DB
게임서버
MMORPG 분산처리
분산 데이터베이스
RDBMS?

• 분산하기 난해
• 느린 속도
• ALTER TABLE
Couchbase
NoSQL 키-밸류 저장소

• 무중단 확장/축소
• 부분적 장애 허용
• 스키마 없음
 빠른 속도 – 메모리 우선
App
DB
메모리에 저장 디스크에 저장 복제 노드에 저장
OK

✘ 내용 검색

• Elasticsearch 연동
• N1QL
SELECT studio FROM games AS game
WHERE game.name = 'durango'
• Couchbase
• 높은 가용성
• 신축성
분산 데이터베이스
MMORPG 분산처리
분산 게임서버
단일세계
심리스
영속성
상호작용 가능성 ∝
높음
낮음
1
거리
1m
100m
게임서버 A 게임서버 B
1m
100m
게임서버 A 게임서버 B
심 심심
지역 A
지역 B 지역 C 지역 D
지역분할
게임서버 A 게임서버 B
채널 A 채널 B
채널링
✘ 지역분할
✘ 채널링
무선 통신 < 서버 간 통신
게임서버 A 게임서버 B
가까우면 모아주기
✘ 필수 ✔ 권장
1m
100m
게임서버
게임서버의 시야
게임서버
개체 시야 합 = 게임서버 시야
게임서버
Pub/Sub 패턴
123 구독
= Pub/Sub 채널
게임서버
구독
구독
구독
게임서버
발행
발행
발행
발행
A
B
A
B
동기화


로그인
서버
1/n
게이머들이 돌아다니면…
• 세계를 유연하게 분할
• 게임서버의 시야
• 필요한 정보만 동기화
분산 게임서버
MMORPG 분산처리
개체 간 상호작용
if B.is_enemy_of(A):
B.damaged(A.strength)
A B공격
동기화
if B.is_enemy_of(A):
B.damaged(A.strength)
A B공격 B
or
액세서
상태를 읽기만 하는 메소드
B.is_enemy_of()
뮤테이터
상태를 변경하는 메소드
B.damaged()
액세서 뮤테이터
✔✔
✔ ✘
.is_enemy_of().is_enemy_of()
액세서 로직
액세서 로직
.damaged().damaged()
뮤테이터 로직
RPC 요청
.???().???()
• 고스트로 추상화
• 액세서는 분산
• 뮤테이터는 집중
개체 간 상호작용
현 위치
DB
게임서버
로그인
서버
ELB
✔ 부분적 장애 허용
✔ 무중단 확장/축소
✔ 높은 가용성
✔ 신축성
• 잠시 후, 진선웅
<야생의 땅: 듀랑고>의 절차적인 섬 생성 기법
• 내일 9:50, 이은석
온라인 게임의 창발적 게임플레이 디자인
• 내일 15:55, 박영준
<야생의 땅: 듀랑고>의 좌충우돌 개발 과정
질의응답
국내에 AWS 데이터센터가 없는데
한국에서 상용 서비스를 돌리기에는 느리지 않을까요?
한국 IDC에 비해 통신 속도는 다소 느립니다. 하지만 게임 디자
인 차원에서 느리고 불안정한 무선 통신을 가정하기 때문에 사
용자 경험에 영향을 주지는 않을 것 같습니다.
(요즘 일본 EC2와의 핑 지연시간은 40ms 정도 나옵니다.)
Q.
A.
gevent를 사용해도 C 라이브러리의 I/O는 봉쇄될텐데,
DB 드라이버 등의 선택에 제약이 많을 것 같습니다.
스레드를 봉쇄하는 C 라이브러리는 사용하지 않습니다.
Python 오픈소스 커뮤니티에서 적절한 도구를 찾는 데에 큰 어
려움은 없었습니다. Couchbase 드라이버의 경우 gevent를
지원하는 Python 라이브러리가 개발되어 있습니다.
Q.
A.
특정 서버에 부하가 몰려
그쪽으로 보내던 RPC가 지연되면 어떻게 되나요?
보내는 쪽에 RPC 실패 또는 타임아웃이 감지됩니다. 그 예외를
잡아 게이머에게 장애 상황을 통지합니다.
Q.
A.
MMORPG는 트랜잭션 처리가
중요할 것 같은데 어떻게 하셨나요?
Couchbase에서 문서 내 트랜잭션은 보장할 수 있고, 문서 간 트랜잭션은 보장할 수
없습니다.
예를 들어 아이템을 습득하는 경우, 아이템을 DB에 추가하고 인벤토리에 아이템
DB를 추가해 DB 상에서 갱신합니다. 두 작업은 원자적으로 실행될 수 없고 둘 중
하나가 실패할 수 있습니다. 이 경우엔 아이템 추가가 우선 끝나면 인벤토리에 연결
하는 방법으로 로직을 작성합니다. 추가됐으나 연결되지 않아서 미아가 되는 아이템
도 생길 것입니다.
이런 방식만으로는 모든 케이스가 해결되지 않는 다는 것을 알고 있고, 높은 일관성
과 복구 가능성을 확보하기 위해 노력 중입니다.
Q.
A.
뮤테이터 호출 시 액세서에서 확인한 상태가
이미 변경되었을 경우 문제가 생길 수 있지 않나요?
LBYL (Look before you leap) 방식과 EAFP (Easier to ask for forgiveness
than permission) 방식이 있습니다. 전자는 할 수 있는지 먼저 확인하고 하는 것,
후자는 일단 한 후 문제 생기면 예외처리 하는 것입니다. 분산환경에서 LBYL 방식은
실패할 확률이 높지만 EAFP 방식은 그렇지 않습니다. 그래서 저희는 EAFP 방식을
주로 사용하고 있습니다.
질문하신 케이스의 경우, 액세서의 결과가 시시각각 변하는 거라면 일단 뮤테이터를
호출하고 오류가 발생했을 때 예외처리 합니다.
Q.
A.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버

Más contenido relacionado

La actualidad más candente

[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012devCAT Studio, NEXON
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)Seungmo Koo
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 

La actualidad más candente (20)

[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 

Destacado

AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract
161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract
161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extractHyungmin Lee
 
최종본 위챗 마케팅 제안서_이형민 마케터
최종본 위챗 마케팅 제안서_이형민 마케터최종본 위챗 마케팅 제안서_이형민 마케터
최종본 위챗 마케팅 제안서_이형민 마케터Hyungmin Lee
 
위챗 매니저 소개 (wechat manager sales kit)
위챗 매니저 소개 (wechat manager sales kit)위챗 매니저 소개 (wechat manager sales kit)
위챗 매니저 소개 (wechat manager sales kit)imperator21
 
중남미 모바일 플랫폼 (Go Global)
중남미 모바일 플랫폼 (Go Global)중남미 모바일 플랫폼 (Go Global)
중남미 모바일 플랫폼 (Go Global)Andrew Kim
 
클라우드 인프라 기반 서비스 개발 - ChatON
클라우드 인프라 기반 서비스 개발 - ChatON클라우드 인프라 기반 서비스 개발 - ChatON
클라우드 인프라 기반 서비스 개발 - ChatONJay JH Park
 
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발 모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발 Jay JH Park
 
[newsletter 10월] 글로벌 모바일 매신저앱
[newsletter 10월] 글로벌 모바일 매신저앱[newsletter 10월] 글로벌 모바일 매신저앱
[newsletter 10월] 글로벌 모바일 매신저앱MezzoMedia
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개Hyogi Jung
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0Ji-Woong Choi
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?OpenStack Korea Community
 

Destacado (11)

AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract
161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract
161024 aTCHINA 위챗 모바일 쇼핑몰 제안서_extract
 
최종본 위챗 마케팅 제안서_이형민 마케터
최종본 위챗 마케팅 제안서_이형민 마케터최종본 위챗 마케팅 제안서_이형민 마케터
최종본 위챗 마케팅 제안서_이형민 마케터
 
위챗 매니저 소개 (wechat manager sales kit)
위챗 매니저 소개 (wechat manager sales kit)위챗 매니저 소개 (wechat manager sales kit)
위챗 매니저 소개 (wechat manager sales kit)
 
중남미 모바일 플랫폼 (Go Global)
중남미 모바일 플랫폼 (Go Global)중남미 모바일 플랫폼 (Go Global)
중남미 모바일 플랫폼 (Go Global)
 
클라우드 인프라 기반 서비스 개발 - ChatON
클라우드 인프라 기반 서비스 개발 - ChatON클라우드 인프라 기반 서비스 개발 - ChatON
클라우드 인프라 기반 서비스 개발 - ChatON
 
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발 모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
 
[newsletter 10월] 글로벌 모바일 매신저앱
[newsletter 10월] 글로벌 모바일 매신저앱[newsletter 10월] 글로벌 모바일 매신저앱
[newsletter 10월] 글로벌 모바일 매신저앱
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 

Similar a [야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버

[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자Yongho Ha
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Jinuk Kim
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea Strike
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdfSeung kyoo Park
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
(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
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016
SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016
SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016Amazon Web Services Korea
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS LambdaSeungho Kim
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 

Similar a [야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버 (20)

[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_Architecture
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
 
(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를 이용한 멀티테넌트 인프라 구축사례
 
Place site Design
Place site DesignPlace site Design
Place site Design
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016
SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016
SBS 콘텐츠허브의 AWS 도입 사례 :: SBS 콘텐츠허브 :: AWS Media Day 2016
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 

[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버