[NDC] 서버야 아프지마 - 신입 개발자를 위한 윈도우 메모리릭 디버깅
NDC 넥슨 · YouTube
AI 핵심 요약
오래된 C++ 라이브 게임에서 메모리 부족 문제가 발생했지만, 방대한 코드에서 해제 누락을 눈으로 찾기는 어려웠다. 발표자는 먼저 32비트 프로세스의 가상 메모리 한계와 커밋 크기 등 진단 지표를 설명하고, 재현 가능 여부에 따라 추적 방법을 나눴다. 재현 가능한 누수는 UST와 UMDH로 할당 스택을 수집해 전후 스냅샷을 비교하고, 재현이 어려운 서버 누수는 풀 덤프를 WinDbg로 분석해 힙과 메모리 블록의 특징을 좁혔다. 추적 도구의 성능 부담을 고려해 환경에 맞는 방법을 선택하고, 재현 불가능한 문제를 재현 가능한 상태로 바꾸는 것이 핵심이라는 교훈을 전했다.
- 메모리 부족을 진단할 때 작업 집합(Working Set)만 보지 말고 커밋 크기(Commit Size)와 여러 메모리 지표를 함께 확인한다.
- 재현 가능한 누수는 UST(User Stack Trace)로 할당 스택을 기록하고, 재현 전후 스냅샷을 비교해 증가한 호출 경로를 좁힌다.
- 라이브 환경에서 추적 도구가 성능에 부담을 줄 수 있으므로, 적용 전에 테스트 서버에서 안정성과 오버헤드를 확인한다.
- 재현이 어려운 누수는 풀 덤프를 WinDbg로 분석해 힙별 사용량과 할당 크기를 살펴보고, 메모리 블록의 내용으로 원인을 추적한다.
소개
NDC 2018 [서버야 아프지마 - 신입 개발자를 위한 윈도우 메모리릭 디버깅] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 최동민 2. 발표자 소개 : 2014년부터 넥슨코리아 마비노기 기술유닛에서 근무하고 있는 4년차 프로그래머. 컨텐츠 개발, 해외 라이브, 클라이언트/서버 최적화 등 다양한 경험을 쌓고 있습니다. 3. 세션 소개 : 라이브 기간 15년. 총 코드 규모 00만줄. 이 코드의 바다에서 메모리릭의 원인을 어떻게 찾을 수 있을까요? 이 세션에서는 C++로 개발된 유서 깊은 라이브 게임이라면 피할 수 없는 메모리 문제에 대한 케이스 별 접근 방법에 대해 알아보고, 재현 가능 여부에 따른 메모리릭 추적 방법에 대해 공유합니다. 학부생이나 신입 개발자 분들께서 멀지 않은 미래에 겪게 될 메모리 관련 이슈를 해결하시는 데 도움이 될 것입니다. 감사합니다. 본 NDC 발표 동영상(이하 “저작물”이...
비슷한 학습 자료
컨퍼런스 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 2018 [유체역학 엔진 개발기 - 게임에서 물리 기반의 유체를 구현하기 위한 고군분투] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 옥찬호 2. 발표자 소개 : 현재 넥슨 코리아에서 마영전 게임 클라이언트 개발을 담당하고 있습니다. C++와 게임 개발, 컴퓨터 그래픽스, 오픈 소스에 관심이 많습니다. 페이스북 C++ Korea 그룹을 운영하며 스터디 활동과 함께 다양한 책을 번역/집필 중이며, 남는 시간엔 학생들과 함께 다양한 오픈 소스 프로젝트를 진행하며 보다 나은 미래를 만들기 위해 노력하고 있습니다. 옮긴 책으로는 『게임샐러드로 코드 한 줄 없이 게임 만들기』 (에이콘출판사, 2013), 『유니티 Shader와 Effect 제작』 (에이콘출판사, 2014), 『2D 게임 프로그래밍』 (에이콘출판사, 2014), 『러스트 핵심 노트』 (한빛미디어, 2017), 『모던 C++ 입문』 (길벗, 2017)이 ...
게임 프로그래밍 게임 아트 · 그래픽
컨퍼런스 NDC
[NDC] 실버바인 서버 엔진 2 설계 리뷰
컨퍼런스 NDC
NDC 2018 [실버바인 서버 엔진 2 설계 리뷰] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이승재 2. 발표자 소개 : 데브캣 스튜디오에서 실버바인 서버 엔진 2를 만들고 있습니다. 마비노기 듀얼, 마비노기 2, 데스크탑 히어로즈 카바티나 스토리 개발에 참여했습니다. 3. 세션 소개 : 2016년 이후 데브캣 스튜디오에서 개발하는 모든 게임에서 서버 엔진으로 사용하고 있는 실버바인 서버 엔진 2의 설계 결정을 리뷰합니다. 서버 엔진이라는 도메인 영역을 어떻게 분할해서 공략했고, 그 과정에서 어떤 가치를 중요하게 여기고 의사결정했는지를 개략적으로 다룹니다. 감사합니다. 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되며, 권리자의 허락 없이 ...
백엔드
컨퍼런스 NDC
NDC 2018 [억! 소리나는 게임 서비스 플랫폼을 지탱하는 알고리즘 - 해쉬, 확률적 자료구조, 불변데이터] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전이삭 2. 발표자 소개 : 현재 블리자드 엔터테인먼트 배틀넷 부문 데이터 팀에서 빅데이터 수집/분석 시스템을 개발하고 있습니다. 2001년부터 PC 및 모바일용 패키지 소프트웨어, 게임 클라이언트, 게임 배포 및 서비스 플랫폼, 서버 프레임워크, 소스 코드 정적 분석 툴 등 다양한 프로젝트들에 참여했습니다. 참여한 프로젝트들로는 나모 웹 에디터, 나모 핸드스토리, 한게임 바둑, 월드 오브 워크래프트 게임 런처, 월드 오브 워크래프트 실시간 게임 다운로드 Play on Demand 라이브러리, 배틀넷 데스크톱 앱, 오버워치 게임 클라이언트 등이 있습니다. 작년 NDC2017에서는 '더 좋은 코드를 위한 함수형 프로그래밍 - 모던 C++를 중심으로'라는 제목의 세...
알고리즘 · 자료구조
컨퍼런스 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를 운영하다보면 “개발자와 이런 부분에 대해 변경할 수 있다면 서비스 런칭 후 좀 더 안정적인 서비스를 할 수 있을텐데”라는 생각을...
데이터베이스