본문으로 이동
[NDC] CAP 이론을 통한 네트워크 동기화 기법
컨퍼런스

[NDC] CAP 이론을 통한 네트워크 동기화 기법

NDC 넥슨 · YouTube

원문 보기

AI 핵심 요약

멀티플레이어 게임의 네트워크 동기화를 분산 시스템 문제로 보고, CAP 이론을 바탕으로 서버 동기화와 락스텝의 일관성·가용성 차이를 설명했다. 테라의 공간 검색에서는 스레드별 자료구조와 업데이트 큐를 도입해 락 대기를 줄이고 최종 일관성을 적용한 사례를 소개했다. 실시간 게임에서는 반응성을 위해 서버 동기화를 사용하되, 공정성을 보완하는 서버 되감기로 클라이언트가 본 과거 시점의 상태를 재판정할 수 있다. 동기화 설계에서는 게임 특성에 맞는 방식 선택과 함께 결정성을 깨뜨릴 수 있는 난수, 멀티스레딩, 부동소수점 연산 등을 고려해야 한다.

  • CAP 관점에서 동기화 방식을 고를 때는 일관성과 가용성 중 무엇을 우선할지 게임의 요구사항에 맞춰 판단한다.
  • 락 경합이 병목이라면 스레드별 자료구조와 업데이트 큐를 활용해 읽기를 비동기적으로 처리할 수 있다.
  • 서버 동기화는 클라이언트의 조작 반응성을 우선하지만, 틱레이트와 관심 영역을 조정해 CPU·대역폭·보안의 균형을 맞춰야 한다.
  • 서버 되감기는 모든 월드 상태를 저장하기보다 판정에 중요한 상태와 허용 지연 범위를 중심으로 적용한다.
  • 결정적 시뮬레이션에는 난수 시드뿐 아니라 스레드 실행 순서, 부동소수점 연산, 메모리 주소 기반 정렬도 영향을 준다.

소개

NDC 2018 [CAP 이론을 통한 네트워크 동기화 기법] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 구승모 2. 발표자 소개 : 넥슨 오렌지카운티 스튜디오에서 기술 책임자 역할을 맡고 있습니다. 이전에는 Amazon Games의 수석 엔지니어로서 게임서비스에 관련된 일을 하였으며, NHN NEXT의 게임전공 교수로 재직하며 다수의 게임 소프트웨어 엔지니어들을 키워낸 경험도 있습니다. 참여했던 게임 프로젝트는 다수의 소규모 게임을 포함한 NCSOFT L3, Bluehole TERA 등이 있습니다. 3. 세션 소개 : 이번 세션에서는 멀티플레이어 게임 동기화에 대한 깊이 있는 내용을 다룹니다. 멀티 플레이어 게임은 사실상 하나의 분산 시스템입니다. 분산 시스템을 디자인 하기 위해서는 CAP theorem을 그 출발점으로 삼는 경우가 대부분입니다. 그래서, 이 CAP 개념이 게임 동기화 메커니즘 구현시에 어떻게 적...

비슷한 학습 자료

컨퍼런스 NDC

NDC 2019 [아무도 가르쳐 주지 않는 게임 스토리 구조의 비밀] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이진희 2. 발표자 소개 : 현재 놈게임스토리라는 게임 시나리오 컨설팅 회사를 운영 중. 엔씨소프트와 엠게임을 비롯한 여러 회사를 거치며 〈블레이드 앤 소울〉, 〈열혈강호2〉, 〈아이언리그〉 등 각종 게임의 기획자로 활동했으며, 주로 퀘스트와 게임 시나리오 같은 콘텐츠 기획 업무를 담당. 게임 개발자 컨퍼런스에서 게임의 스토리텔링을 주제로 다수의 발표한 경험이 있으며, 게임 시나리오 작법서인 〈이론과 실전으로 배우는 게임 시나리오〉를 출판함. 3. 세션 소개 : 국내 게임의 문제점으로 항상 지적 받는 것 중의 하나가 스토리입니다. 비난을 하는 쪽이나 비난을 받는 쪽 모두 그 이유에 대해서는 많은 고민을 하지 않습니다. 이번 세션에서는 국내에서 만들어 온 게임의 스토리가 왜 재미없었는 지에 대한 근본적인...

게임 기획

컨퍼런스 NDC

NDC 2019 [게임 서버의 목차 - 시작부터 출시까지] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 홍성우 2. 발표자 소개 : 데브캣 기반개발팀 소속으로 〈실버바인 서버엔진 2〉 개발에 참여하고 있습니다. 〈마비노기 듀얼〉 서버 개발에 참여하고, 〈마블 배틀라인〉 서버 개발을 리드했습니다. NDC 2018 에서 〈게임 프로그래머는 어떻게 가르치나요?〉, NDC 2017 에서 〈내가 만든 언어로 게임 만들기〉 세션을 발표했습니다. 3. 세션 소개 : 수 년간 현업에서 근무해온 서버 개발자라면 누구나 한번쯤 자문해본 적이 있을겁니다. "내가 개발 업무를 하면서 서버 개발에 관한 여러가지 지식을 쌓았는데, 이걸로 게임 서버 전체를 만들 수 있을까?" 서버 개발자를 지망하고 준비하는 학생이라면 궁금할 겁니다. "게임 서버 개발에 도움이 되는 여러가지 공부를 해왔는데, 빠지거나 치우친 것은 없을까?" 게임 출시를 앞...

백엔드 게임 프로그래밍

컨퍼런스 NDC

NDC 2018 [소프트웨어 2.0을 활용한 게임 어뷰징 검출] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김정주 2. 발표자 소개 : 현재 웹젠에서 TD로서 게임 로그 수집 및 분석을 담당하고 있습니다. 이전에는 NHN과 NPLUTO에서 게임 엔진 개발 및 기술 지원 역할을 하였습니다. 지난 NDC 2016에서 게임 어뷰징 검출, PyConKR 2017에서 강화학습 관련 내용을 발표한 바 있습니다. 이번 발표에서는 참관객 여러분들에게 소프트웨어 2.0의 개념과, 이를 이용해 좀 더 고도화된 게임 어뷰징 검출 방법을 소개해 드릴 예정입니다. 3. 세션 소개 : 최근 기계학습과 딥러닝의 대두는 인공지능에 대한 다양한 우려를 불러일으키고 있습니다. 그러나, 저는 개인적으로 인공지능을 데이터를 학습하여 기능을 구현하는 진보된 형태의 소프트웨어 패러다임 정도로 보고 있습니다. 딥러닝의 대가 안드레이 카패시의 소프트웨어...

딥러닝 · 머신러닝

컨퍼런스 NDC

NDC 2018 [억! 소리나는 게임 서비스 플랫폼을 지탱하는 알고리즘 - 해쉬, 확률적 자료구조, 불변데이터] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전이삭 2. 발표자 소개 : 현재 블리자드 엔터테인먼트 배틀넷 부문 데이터 팀에서 빅데이터 수집/분석 시스템을 개발하고 있습니다. 2001년부터 PC 및 모바일용 패키지 소프트웨어, 게임 클라이언트, 게임 배포 및 서비스 플랫폼, 서버 프레임워크, 소스 코드 정적 분석 툴 등 다양한 프로젝트들에 참여했습니다. 참여한 프로젝트들로는 나모 웹 에디터, 나모 핸드스토리, 한게임 바둑, 월드 오브 워크래프트 게임 런처, 월드 오브 워크래프트 실시간 게임 다운로드 Play on Demand 라이브러리, 배틀넷 데스크톱 앱, 오버워치 게임 클라이언트 등이 있습니다. 작년 NDC2017에서는 '더 좋은 코드를 위한 함수형 프로그래밍 - 모던 C++를 중심으로'라는 제목의 세...

알고리즘 · 자료구조

컨퍼런스 NDC

NDC 2018 [Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산 처리 자동화 인프라 구축] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 박주홍 2. 발표자 소개 : 데브시스터즈에서 데이터 분석 및 인프라 팀장을 맡고 있습니다. 쿠키런 For Kakao 서버를 개발하고 라인 쿠키런의 글로벌 서버 구현을 총괄하였으며, 데이터 분석을 위한 Hadoop 기반의 인프라 구축을 진행했습니다. 카이스트와 서울대에서 데이터 분석 연구를 진행했고 Line Developer Day 에서 글로벌 게임 서버 구축, CHI Conference 에서 게임 데이터 분석 발표를 하였습니다. 이번에는 게임 데이터 분석을 위한 데이터 분산 처리 자동화 인프라 구축에 대해 발표하고자 합니다. 게임을 사랑하고 좋아하며, 데이터를 통해 게임을 보다 더 잘 이해하고 재미있게 만들고 싶습니다. 데이터 분석과 인프라...

데이터베이스 데브옵스 · 인프라

컨퍼런스 NDC

NDC 2018 [golang으로 네트워크 프로그래밍 하기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 최흥배 2. 발표자 소개 : 현재 컴투스에서 서버 개발 관련 R&D를 하고 있습니다. 2003년부터 PC 온라인 게임을 시작으로 모바일 온라인 게임까지 다양한 장르의 서버를 개발 하였습니다. 2016~2017년 2년 동안은 NHN Next에서 겸임 교수로 학생들에게 'C++ Advance', '게임 서버'를 가르쳤습니다. 지금까지 7번의 KGC 발표와 한국 MS에서 개최한 다양한 세미나에서 강의를 하였고, C++, 네트워크 프로그래밍과 관련된 다수의 책(e-book)을 집필 하였습니다. 3. 세션 소개 : 이전까지 실시간 통신을 하는 게임 서버 개발에서 C++과 C#을 사용 하였습니다. 이번 프로젝트에서 go 언어로 서버를 만들고 있습니다. go 언어는 구글이 만든 프로그래밍 언어로 나온지 10년이 ...

백엔드 프로그래밍 언어 네트워크