[NDC22-프로그래밍] '달빛조각사'에서 서버 테스트 코드를 작성하는 방법
NDC 넥슨 · YouTube
AI 핵심 요약
달빛조각사 서버 테스트를 팀 개발 과정에 정착시키고, 테스트가 늘면서 실행 시간이 길어지는 문제를 해결한 경험을 소개했다. 서버와 패킷을 주고받는 통합 테스트로 게임 콘텐츠와 버그 재현을 검증하고, 알고리즘과 공유 유틸 함수는 Elixir의 ExUnit 단위 테스트로 다뤘다. 테스트 자동 실행과 코드 리뷰를 운영하고, 패킷 처리 헬퍼와 반복 검증 방식 등을 개선했으며, 게임 테이블 데이터를 직접 수정하지 않고 새 테스트 데이터를 생성하도록 바꿔 병렬 실행의 간섭을 줄였다. 테스트 1,400개를 순차 실행할 때 약 1시간 걸리던 시간을 병렬화로 약 30분까지 줄였고, 처음부터 병렬 실행과 데이터 격리를 고려하라는 교훈을 전했다.
- 클라이언트처럼 패킷을 주고받는 통합 테스트는 게임 콘텐츠 흐름을 검증하고, 간헐적 버그를 재현하는 데 유용하다.
- 레시피 선택 같은 알고리즘과 공유 유틸 함수는 입력을 단순화한 단위 테스트로 분리하면 다양한 케이스를 다루기 쉽다.
- 테스트용 게임 테이블 데이터는 기존 데이터를 수정하지 말고, 필요한 속성만 덮어쓴 새 데이터를 만들어 사용한다.
- 비동기 응답을 기다릴 때 고정 시간만큼 쉬기보다 제한 시간 안에서 반복 확인해 성공하면 즉시 끝내도록 한다.
- 병렬 실행을 고려해 패킷의 주체를 엄격히 검증하고, 전역 상태를 바꾸는 테스트는 병렬 대상에서 제외한다.
소개
● 설문조사: https://ko.surveymonkey.com/r/SLHMPY8 ↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 프로그래밍 ● 발표자: 엑스엘게임즈 오종빈 / XLGAMES Jongbin Oh ● 권장 대상: 테스트에 관심 있는 프로그래머 ● 키워드: #서버_테스트
비슷한 학습 자료
컨퍼런스 NDC
↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 프로그래밍 ● 발표자: 넥슨게임즈 장성재 ● 키워드: #NDC25 #게임서버개발 #GameServerDevelopment 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되며, 권리자의 허락 없이 이를 상업적으로 이용하거나 무단으로 도용, 편집, 2차적저작물을 작성, 공중송신, 배포할 수 없습니다.
백엔드 데브옵스 · 인프라
컨퍼런스 NDC
● 설문조사: https://forms.gle/wyYgtGi5F4NGzzYeA ↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 프로그래밍 ● 발표자: 엔씨소프트 김종원 ● 권장 대상: 프로그래머, QA, PM ● 키워드: #QA #자동테스트 #모바일게임 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되며, 권리자의 허락 없이 이를 상업적으로 이용하거나 무단으로 도용, 편집, 2차적저작물을 작성, 공중송신, 배포할 수 없습니다.
소프트웨어 테스트 게임 개발 기타
컨퍼런스 NDC
[NDC] 실버바인 대기열 서버 설계 리뷰
컨퍼런스 NDC
NDC 2019 [실버바인 대기열 서버 설계 리뷰] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 강성훈 2. 발표자 소개 : 대학원에서 프로그래밍 언어 전공으로 석사 졸업 후 여러 벤처기업에서 백엔드-프론트엔드와 아키텍처를 가리지 않고 개발을 해 왔습니다. 넥슨에서는 〈마비노기 듀얼〉의 서버 프로그래밍을 담당한 뒤, 오랫만에 전공을 살려 카일루아라는 언어를 개발하였고, 현재는 실버바인 서버 엔진 2의 개발에 참여하고 있습니다. 리듬게임, 난해한 프로그래밍 언어, Rust 등의 키워드로 검색해 보면 흑역사가 튀어 나오기도 합니다. 카일루아 관련 발표: NDC2016 "〈마비노기 듀얼〉 서버, 동적 타입 언어에서 반 정적 타입 언어로의 변신", NDC2017 "내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기" 실버바인 서버 엔진 2 관련 발표: NDC2018 "실버바인 서버 엔진...
백엔드
컨퍼런스 NDC
[NDC] 게임 서버의 목차 - 시작부터 출시까지
컨퍼런스 NDC
NDC 2019 [게임 서버의 목차 - 시작부터 출시까지] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 홍성우 2. 발표자 소개 : 데브캣 기반개발팀 소속으로 〈실버바인 서버엔진 2〉 개발에 참여하고 있습니다. 〈마비노기 듀얼〉 서버 개발에 참여하고, 〈마블 배틀라인〉 서버 개발을 리드했습니다. NDC 2018 에서 〈게임 프로그래머는 어떻게 가르치나요?〉, NDC 2017 에서 〈내가 만든 언어로 게임 만들기〉 세션을 발표했습니다. 3. 세션 소개 : 수 년간 현업에서 근무해온 서버 개발자라면 누구나 한번쯤 자문해본 적이 있을겁니다. "내가 개발 업무를 하면서 서버 개발에 관한 여러가지 지식을 쌓았는데, 이걸로 게임 서버 전체를 만들 수 있을까?" 서버 개발자를 지망하고 준비하는 학생이라면 궁금할 겁니다. "게임 서버 개발에 도움이 되는 여러가지 공부를 해왔는데, 빠지거나 치우친 것은 없을까?" 게임 출시를 앞...
백엔드 게임 프로그래밍
컨퍼런스 NDC
NDC 2019 [어머님, A/B 테스트를 댁으로 들이십시오 - 〈DevPlay〉 A/B 테스트 플랫폼 개발기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김민수, 오우택 2. 발표자 소개 : [김민수] 데브시스터즈에서 데이터 엔지니어로 일하고 있습니다. 매일 게임에서 발생하는 수 테라바이트의 데이터를 효율적으로 가공 및 적재하는 인프라를 설계하고 있습니다. 또한, 대규모 분석 프레임워크, 실시간 스트리밍 등의 데이터 어플리케이션을 개발하고 있습니다. 유저가 만들어내는 수많은 데이터에서 새로운 가치를 발견하여 더 큰 즐거움을 주는 게임을 만들고자 합니다. [오우택] 데브시스터즈에서 데이터 과학자로 첫 커리어를 쌓아 나가고 있습니다. KPI 스키마 디자인에서부터 분석 후 대쉬보드 형태로 엔드유저에게 전달되기까지, 데이터가 전사적으로 잘 쓰일 수 있도록 일을 진행했습니다. 서비스 중인 게임의 상품 분석, 어뷰저 탐...
데이터베이스 프로덕트 지표 · 실험
컨퍼런스 NDC
[NDC] 〈달빛조각사〉 엘릭서를 이용한 MMORPG 서버 개발
컨퍼런스 NDC
NDC 2019 [〈달빛조각사〉 엘릭서를 이용한 MMORPG 서버 개발] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김민욱 2. 발표자 소개 : 현재 엑스엘게임즈 달빛조각사 프로젝트에서 서버개발을 담당하고 있으며, 주로 구조 개선, 리팩토링, 최적화에 관련된 업무를 수행하고 있습니다. 이소프넷에서 건담 G-Generation for PC와 디지몬 카드 배틀과 같은 PC 패키지 로컬라이제이션과 묵향 온라인 개발, 웹젠에서 썬온라인, 넥슨에서 M2, 리로디드 스튜디오에서 더데이온라인, 엑스엘게임즈에서 문명 온라인을 차례로 개발해왔습니다. 이번 발표에서는 엑스엘게임즈에서 `엘릭서`라는 언어를 이용해서 달빛조각사라는 MMORPG 서버를 만들고 있으며 그 경험에 대해 이야기하고자 합니다. 3. 세션 소개 : 아직까지 많은 게임 서버는 C++/C# 과 같은 객체지향언어로 개발되고 있습니다. 저도 마찬가지로 C++를...
백엔드 프로그래밍 언어