[NDC] 이놈의 enum의 박싱을 어찌할꼬
NDC 넥슨 · YouTube
AI 핵심 요약
C#에서 enum을 제네릭 컨테이너의 키나 검색 조건으로 사용하면 비교 과정에서 박싱이 반복되어 할당과 GC 부담이 생길 수 있다는 점을 짚었습니다. 비교자 객체를 전달하는 기존 방식은 설정이 번거롭고, 제네릭 제약을 활용해도 비교 내부에서 박싱이 남는다고 설명했습니다. 이를 해결하기 위해 enum과 `int` 사이의 변환을 캐시하는 동적 코드 생성, 명시적 레이아웃을 이용한 union 방식, `unsafe` 포인터 방식 등을 검토하고, 환경에 따라 선택하는 enum 전용 컨테이너 구현을 제시했습니다. 다만 동적 코드 생성은 AOT에서 쓸 수 없고 포인터 방식은 안전하지 않은 코드 설정이 필요하며, 제안한 변환은 32비트 enum에 한정된다는 점을 함께 강조했습니다.
- 값 타입을 `object`나 비제네릭 인터페이스로 전달하면 박싱이 발생할 수 있으므로, 호출 경로와 실제 비교 구현까지 확인해야 합니다.
- 딕셔너리의 키 비교나 리스트의 검색처럼 평소 자주 쓰는 컨테이너 연산도 enum 비교 과정에서 박싱을 유발할 수 있습니다.
- 비교자 객체를 컨테이너에 전달하는 방식은 박싱을 줄일 수 있지만, enum마다 비교자를 만들고 설정해야 하는 번거로움이 있습니다.
- 동적 코드 생성은 AOT 환경에서 사용할 수 없으므로, 실행 환경과 Unity·C# 버전에 맞는 대안을 선택해야 합니다.
- 포인터를 이용한 변환은 `unsafe` 설정이 필요하며, 발표에서 제안한 변환 방식은 32비트 enum에 한정됩니다.
소개
NDC 2019 [이놈의 enum의 박싱을 어찌할꼬] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이무림 2. 발표자 소개 : 넥슨 데브캣 스튜디오에서 〈런웨이 스토리〉 리드 프로그래머로 일하고 있습니다. 〈마비노기 360〉, 〈마비노기 2〉, 〈링토스 세계여행〉,〈로드러너 원〉을 개발하였습니다. 지난 컨퍼런스에서 〈NDC 2008 마비노기 360 의 그래픽〉, 〈NDC 2009 플레이어를 받아들이는 게임디자인〉, 〈NDC 2010 마비노기2의 하우징 시스템〉, 〈NDC 2011 고양이가 개발한다. 데브캣 스튜디오의 프로그래밍 그룹웨어에 대하여〉, 〈NDC 2017 워크샵 게임 만들기: 부족전쟁〉 을 발표하였습니다. 3. 세션 소개 : C#에서는 enum 타입을 제네릭 컨테이너에 사용하면 Boxing 이 발생합니다. 세상에? Boxing 은 성능에 상당한 악영향을 미치기 때문에 최적화 과정에서 반드시 제...
비슷한 학습 자료
컨퍼런스 NDC
[NDC] 어떻게 매칭시켜드릴까요? - 매칭 시스템 만들기
컨퍼런스 NDC
NDC 2019 [어떻게 매칭시켜드릴까요? - 매칭 시스템 만들기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 성의경 2. 발표자 소개 : 현재 인텔리전스랩스 매칭팀에서 데이터분석가로서 게임에 가치를 줄 수 있는 방법을 연구하고 있습니다. 2009년부터 넥슨 및 네오플에서 게임 데이터를 분석해왔습니다. 3. 세션 소개 : 게임에서 누구를 상대로 붙여주는 것이 좋을까요?같이 놀 상대를 찾는 과정인 매치메이킹은 게임의 재미와 직접적으로 연결된 요소이며, 게임에 따라서는 게임의 본질 그 자체이기도 합니다. 하지만 제한된 리소스와 바쁜 개발 일정 안에서 매치메이킹 시스템에 대해 깊이 고민하고 이를 시스템으로 구현하기는 쉽지 않습니다. 동일한 시행 착오를 줄이고 표준화된 양질의 매치메이킹 시스템을 확보할 수 있는 방법은 없을까요? 매치몹 시스템은 "모두의 매치메이킹"을 모토로 인텔리전스랩스에서 개발하고 있는 공용 매칭...
게임 프로그래밍 프로덕트 지표 · 실험
컨퍼런스 NDC
[NDC] 아티스트의 언어로 설명하는 레이 마칭
컨퍼런스 NDC
NDC 2019 [아티스트의 언어로 설명하는 레이 마칭] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 정민우 2. 발표자 소개 : 현재 넥슨GT 아트BF팀에서 테크니컬 아티스트로 일하고 있습니다. 그 전에는 Ubisoft에서 Assassin's Creed: Odyssey, 그리고 EA에서 Need for speed: Edge, FIFA Online 3, Sims Mobile 등의 프로젝트에서 테크니컬 아티스트로 참여했습니다. 좀 더 이전에는 스타트업에서 제네럴 아티스트, 소프트웨어 엔지니어로 일했던 경험이 있습니다. U-Share(Ubisoft 내부 발표)에서 "Accelerate Python faster than C++ using GPU"(1시간), "Traditional and PBR Lighting Model"(2시간) 등의 발표를 했고, DIgiSky에서 "Raymarching in practice"(2시간...
게임 아트 · 그래픽
컨퍼런스 NDC
[NDC]〈마비노기 영웅전〉의 사례로 본 '게임' 스토리텔링 원칙
컨퍼런스 NDC
NDC 2019 [〈마비노기 영웅전〉의 사례로 본 '게임' 스토리텔링 원칙] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 구종혁 2. 발표자 소개 : 현재 넥슨 코리아에서 마비노기 영웅전 프로젝트의 기획자로 근무하고 있습니다. 본래부터 마비노기 영웅전의 열성 유저였으며, 결국은 프로젝트 입사까지 이룬 케이스입니다. 스토리는 개편 위주의 작업을 주로 해왔으나, 아이러니하게도 유저이자 개편 담당자라는 측면이 스토리 전담자분들과는 다른 접근을 생각해볼 기회를 주었다고 생각합니다. 3. 세션 소개 : 우리들은 흔히 스토리를 먼저 짠 뒤, 이에 맞춘 스토리텔링 방식을 찾아야 한다고 생각합니다. 하지만 저는 역설적으로 게임, 특히 라이브 게임은 그 특수성 상 스토리텔링 방식에 맞춰 스토리를 구상하는 것이 이로울 수도 있다는 다소 아이러니한 주장을 하고 싶습니다. 또한 벌써 라이브 9주년을 맞은 마비노기 영웅전의 사례들을 통...
게임 기획
컨퍼런스 NDC
NDC 2018 [억! 소리나는 게임 서비스 플랫폼을 지탱하는 알고리즘 - 해쉬, 확률적 자료구조, 불변데이터] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전이삭 2. 발표자 소개 : 현재 블리자드 엔터테인먼트 배틀넷 부문 데이터 팀에서 빅데이터 수집/분석 시스템을 개발하고 있습니다. 2001년부터 PC 및 모바일용 패키지 소프트웨어, 게임 클라이언트, 게임 배포 및 서비스 플랫폼, 서버 프레임워크, 소스 코드 정적 분석 툴 등 다양한 프로젝트들에 참여했습니다. 참여한 프로젝트들로는 나모 웹 에디터, 나모 핸드스토리, 한게임 바둑, 월드 오브 워크래프트 게임 런처, 월드 오브 워크래프트 실시간 게임 다운로드 Play on Demand 라이브러리, 배틀넷 데스크톱 앱, 오버워치 게임 클라이언트 등이 있습니다. 작년 NDC2017에서는 '더 좋은 코드를 위한 함수형 프로그래밍 - 모던 C++를 중심으로'라는 제목의 세...
알고리즘 · 자료구조
컨퍼런스 NDC
[NDC] 좋은 이름, 나쁜 이름, 이상한 이름
컨퍼런스 NDC
NDC 2018 [좋은 이름, 나쁜 이름, 이상한 이름] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전형규 2. 발표자 소개 : 마비노기, 마비노기 XBOX360, 마비노기2, 링토스 세계여행, 마비노기 듀얼 프로젝트에 참여했으며 현재 프로젝트DH 팀에서 엔지니어링 책임을 맡고 있습니다. 3. 세션 소개 : 프로그램을 작성하거나 게임을 디자인하면서 함수 이름, 스킬 이름을 어떻게 지어야할 지 고민한 경험은 누구나 한 번쯤 있을 것입니다. 좋은 이름은 그 대상을 이해하고 관리하기가 쉽고, 새로 합류한 동료가 프로젝트에 금방 적응할 수 있게 합니다. 반대로 나쁜 이름은 이해하기 어렵고 커뮤니케이션에 혼선을 가져와 프로젝트 관리 비용을 증가시킵니다. 이 발표에서는 좋은 이름을 붙이는 방법과 요령에 대해서 몇 가지 사례를 통해 설명하고 그 경험을 공유합니다. 감사합니다. 본 NDC 발표 동영상(이하 “저작물”...
개발 · 프로그래밍 기타
컨퍼런스 NDC
[NDC] 회귀 모델 기반의 게임 재화 이상 증감 탐지 툴 개발
컨퍼런스 NDC
NDC 2018 [회귀 모델 기반의 게임 재화 이상 증감 탐지 툴 개발] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 엄혜민 2. 발표자 소개 : 현재 엔씨소프트에서 데이터 분석 업무를 수행하고 있습니다. 유저들의 게임내 행동 분석을 통해 의미있는 정보를 추출하고, 잘 전달하고자 노력하고 있습니다. 3. 세션 소개 : 운영자가 쉽게 파악하기 힘든 버그로 인한 게임 재화 이상 증감 현상을 회귀 분석 기법을 이용하여 조기에 자동으로 감지하는 기술에 대해서 다루어 보려 합니다. 이상탐지 기법을 이용한 게임 품질 관리에 관심이 있으신 분들에게 조금이나마 도움이 되실 수 있을 것으로 생각합니다. 감사합니다. 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되...
딥러닝 · 머신러닝 프로덕트 지표 · 실험