본문으로 이동
[NDC] 실버바인 대기열 서버 설계 리뷰
컨퍼런스

[NDC] 실버바인 대기열 서버 설계 리뷰

NDC 넥슨 · YouTube

원문 보기

AI 핵심 요약

런칭이나 대형 이벤트 때 접속자가 게임 서버의 동시접속 한도를 넘으면 서버가 불안정해질 수 있어, 사용자를 순서대로 기다리게 하는 대기열 서버를 설계했습니다. 실버바인 서버 엔진 2와 C#을 사용하고, Redis에 발급·통과 순번만 저장하는 방식으로 상태를 줄였으며, 클라이언트에는 인증된 대기표를 발급하고 게임 서버의 피드백에 따라 입장권을 내줬습니다. Redis 명령을 서버에서 묶어 처리해 저장소 부하를 낮추고, 통과 속도를 추정해 예상 대기시간을 제공했으며, 장애 시에는 대기열을 우회하는 동작도 마련했습니다. 대기열은 게임 서버와 분리해 운영하고, 순서의 공정성·입장 부하·장애 대응을 함께 고려해야 한다는 점을 강조했습니다.

  • 대기열의 순번 비교는 발급과 통과 양쪽에서 같은 기준(미만 또는 이하)으로 통일해야 경계값 버그를 줄일 수 있습니다.
  • 대기표와 입장권은 클라이언트가 보관하고 매 요청에 보내도록 하되, 암호학적 인증과 만료 시간을 적용해 위·변조와 재사용을 막습니다.
  • 게임 서버의 수용 여력에 비례해 입장 허용량을 조절하고, 시간당 진입 상한을 별도로 두어 로그인 폭주를 완화합니다.
  • 대기열 장애 시 우회 동작은 게임 서버의 자체 수용 한도를 대체하지 않으므로, 장애 시나리오와 복귀 조건을 함께 설계해야 합니다.

소개

NDC 2019 [실버바인 대기열 서버 설계 리뷰] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 강성훈 2. 발표자 소개 : 대학원에서 프로그래밍 언어 전공으로 석사 졸업 후 여러 벤처기업에서 백엔드-프론트엔드와 아키텍처를 가리지 않고 개발을 해 왔습니다. 넥슨에서는 〈마비노기 듀얼〉의 서버 프로그래밍을 담당한 뒤, 오랫만에 전공을 살려 카일루아라는 언어를 개발하였고, 현재는 실버바인 서버 엔진 2의 개발에 참여하고 있습니다. 리듬게임, 난해한 프로그래밍 언어, Rust 등의 키워드로 검색해 보면 흑역사가 튀어 나오기도 합니다. 카일루아 관련 발표: NDC2016 "〈마비노기 듀얼〉 서버, 동적 타입 언어에서 반 정적 타입 언어로의 변신", NDC2017 "내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기" 실버바인 서버 엔진 2 관련 발표: NDC2018 "실버바인 서버 엔진...

비슷한 학습 자료

컨퍼런스 NDC

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

백엔드 게임 프로그래밍

컨퍼런스 NDC

NDC 2018 [실버바인 서버 엔진 2 설계 리뷰] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이승재 2. 발표자 소개 : 데브캣 스튜디오에서 실버바인 서버 엔진 2를 만들고 있습니다. 마비노기 듀얼, 마비노기 2, 데스크탑 히어로즈 카바티나 스토리 개발에 참여했습니다. 3. 세션 소개 : 2016년 이후 데브캣 스튜디오에서 개발하는 모든 게임에서 서버 엔진으로 사용하고 있는 실버바인 서버 엔진 2의 설계 결정을 리뷰합니다. 서버 엔진이라는 도메인 영역을 어떻게 분할해서 공략했고, 그 과정에서 어떤 가치를 중요하게 여기고 의사결정했는지를 개략적으로 다룹니다. 감사합니다. 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되며, 권리자의 허락 없이 ...

백엔드

컨퍼런스 NDC

NDC 2018 [개발 자동화와 그 적들 - '블레이드 2' 및 다른 사례들 소개] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 최우성 2. 발표자 소개 : 16 년차 개발자. 프로그래머와 프로젝트 관리자와 AI 관련 업무를 오가며 게임 업계에 서식하고 있다. 현재는 블레이드2 에서 서버 프로그래밍 및 개발 생산성 향상을 위한 작업들을 하고 있다. 그 이전에는 블레이드 앤 소울, 로스트 사가, 다함께 차차차2, 불멸의 전사 등을 PM이나 프로그래머로서 개발 했다. 그리고 소개한 프로젝트 보다 더 많은 수의 빛을 보지 못한 프로젝트들에도 참여 했었다. 3. 세션 소개 : 개발환경이 발전하고 프로젝트들의 사이클이 짧아지면서, 개인 및 팀의 생산성은 또다른 키워드가 되고 있습니다. 특히 모바일 시대에 도래하면서 이런 현상은 더욱 가속화되어가고 있는 상황입니다. 블레이드 2 (서버)를 개발하면서 신경 썼던 부분 중 하...

데브옵스 · 인프라 개발 도구

컨퍼런스 NDC

NDC 2018 [개발자와 DBA가 힘을 모아 SQL Server 운영 능력 향상시키기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 하만철 2. 발표자 소개 : 현재 넥슨 IT본부의 게임DB팀 팀장을 맡고 있으며 넥슨에서 출시하는 대부분의 PC게임 DB들을 운영하고 있습니다. SQL Server를 가장 좋아하지만 넥슨에서 워낙 다양한 DBMS를 사용하다 보니 지금은 SQL Server가 아닌 DBMS와 클라우드 환경에 대해 열심히 공부하는 중입니다. 대학교 졸업하고 넥슨에 들어온 것을 시작으로 네이버에서는 카페, 블로그, 게임 서비스를, 한국마이크로소프트에서는 SQL Server 기술지원 엔지니어를 거쳐 다시 넥슨으로 돌아왔습니다. 3. 세션 소개 : 게임DB로써 SQL Server를 운영하다보면 “개발자와 이런 부분에 대해 변경할 수 있다면 서비스 런칭 후 좀 더 안정적인 서비스를 할 수 있을텐데”라는 생각을...

데이터베이스

컨퍼런스 NDC

NDC 2018 [Packer, Terraform, Vault를 이용해 만드는 재현가능한 게임 서버 인프라] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김민규 2. 발표자 소개 : 쿠키런 for Kakao, Solitaire: Decked Out의 서버 개발을 맡았으며, 현재 데브시스터즈 서버팀에서 주로 게임 서버 인프라 설계, 구축을 맡고 있습니다. AWS 서버 관리용 툴인 Eclair를 개발했고, AWS User Group에서 이에 대해 발표한 적이 있습니다. 3. 세션 소개 : 데브시스터즈는 지금까지 쿠키런, 쿠키런 오븐브레이크, Solitaire: Decked Out,Tape It Up! 등 여러 게임들을 출시해 왔습니다. 앞으로도 많은 게임들을 출시할 예정이고, 각 게임들의 서버 환경은 공통점이 있으면서도 조금씩 다릅니다. 여러 프로젝트를 동시에 진행하는 상황에서 어떻게 하면 서버 개발자들이 반복되는 ...

데브옵스 · 인프라 클라우드

컨퍼런스 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년이 ...

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