37
HACKER 세세세 - 세세 1 : 세세세세 ? - 세세 2 : 세세세세 세세세 세세 - 세세세 세세 세세 세세세 세세세세 . 1

2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

Embed Size (px)

Citation preview

Page 1: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

1

HACKER 세미나- 주제 1 : 게임개발 ?

- 주제 2 : 빅데이터 시스템 구조

- 주제가 섞여 있어 제목은 망했어요 .

Page 2: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

박경재

• 95 학번 (20 년 전 !), 99 년 졸업• HACKER 9 기 (97 년 회장 )• 검색엔진 , 빅데이터• 병특 포함 3 번 이직 후 NCSOFT 에서 9 년

2/37

Page 3: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

먼저 , 저한테 궁금한 거

3/37

Page 4: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

먼저 , 저한테 궁금한 거• 질문 없으면 제가 질문합니다 .

4/37

Page 5: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

주의 !

• 대기업 ( 이죠 ?) 직원으로서 관점임

• 스타트 업을 생각하는 분에게는 별 도움 안됨

• 개인적인 의견이 많음• 이해를 돕기 위해 현실을 왜곡한 부분도 있음 (…)

5/37

Page 6: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임회사 다닌다니까 들어오는 질문

“ 게임 개발 어떻게 해요 ?”“ 템 좀 줘”

6/37

Page 7: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임회사 다닌다니까 들어오는 질문

• 몰라요 .

• 전 게임개발 안해요 .

• 엔씨에도 게임개발 안하는 개발자 많아요 .

• 그래도 , 아는 수준은

7/37

Page 8: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

8/37

Page 9: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임 개발• 게임 개발 ? 프로그래밍 ?

• 게임 개발• 기획 + 사운드 + 그래픽 + 시네마 + 프로그래밍 등

• 프로그래밍 = 여러분이 생각하는 그것

9/37

Page 10: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임 개발• 그래도 프로그래머가 게임 개발을 많이 한다 .• 촬영기기만 다룰 줄 알면 어떻게든 영화는 나온다 .• 그러나 , 어벤져스는 못 만든다 .

10/37

Page 11: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임 프로그래밍• 게임 서버• Windows 리눅스 + Windows• Visual C++ 오픈소스 (Java 등 ) + Visual C++• SQL Server, Oracle NoSQL + 오픈소스 DB

• 게임 클라이언트• Windows• 게임엔진 : Unity, Unreal, CryENGINE, …

• 모바일 게임• Native 로 개발 Unity, Unreal• Stateless 접속 Stateful 접속

11/37

Page 12: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임 프로그래밍• 만드는 것• World 서버 , Lobby 서버 , 클라이언트 , 게임 빌더 등

• 알아야 될 것 • 수학 , 물리 , 자료구조 , 알고리즘 , 네트워크 ,• 인공지능 , 사운드 , 그래픽 등등등• C/C++, Java, C#, JavaScript, Bash Script• DB, NoSQL, 오픈소스

12/37

Page 13: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임 프로그래밍

• 맡은 분야만 잘 알고 , 나머지는 대충 알아도 됩니다 .• 근데 , 이건 모든 분야가 그래요 .

13/37

Page 14: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

게임 외 프로그래밍• 백오피스 : 로그 수집 / 분석 , 빅데이터 , 리포트• 플랫폼 : 계정 , 인증 , 결재• 웹 : CMS, Shop , 커뮤니티• 시스템 관제 : 모니터링 , 클라우드

• 보안과 모바일은 기본• 글로벌과 클라우드는 기본 옵션• 유료 프로그램에서 오픈소스로 바뀌는 추세

14/37

Page 15: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

그럼 이제 본론인 빅데이터

15/37

Page 16: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

빅데이터란 ?

빅 데이터란 기존 데이터베이스 관리도구로 데이터를 수집 , 저장 , 관리 , 분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 의미한다 . (wikipedia)

… 뭐래 ?

16/37

Page 17: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

개발자 입장에서 빅데이터• Hadoop 와 Spark. 그리고 각각의 Echo System• Echo System ( 생태계 ) : 메인 프로그램를 풍족하게

해주는 확장 프로그램 ( 이라지만 사실은 빌붙 )• 대부분 Java, Scalar 로 구현

• 프로그래밍과 통계 사이 R• 통계 프로그래밍을 위한 프리 소프트웨어• Hadoop 에서 정제된 데이터 기반으로 분석 / 모델링• 빅데이터로 보기에는 …

17/37

Page 18: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

어떻게 대용량을 처리하나• Divide-and-Conquer• Merge Sort, Quick Sort 같은 방식• 큰 일 (Job) 을 작은 일 (Task) 여러 개로 나누어서 처리• 문제의 단순화

• Google 논문• Google File System(GFS) : 분산 파일 시스템• Google MapReduce(GMR) : 분산 처리 시스템• 논문 필독 !

• Hadoop : GFS, GMR 클론

18/37

Page 19: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

분산 파일 시스템 (DFS)

• 하나의 성능 좋은 큰 통합 HDD 가 필요했음• 여러 대의 컴퓨터에 나누어 저장하니 됨• 장애 문제가 있어 복제 지원

• HDFS(Hadoop Distributed File System) 가 있음• GFS 는 비공개

19/37

Page 20: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

분산 처리 시스템 (MR)

• 분산 저장하고 보니 , 분산 처리가 가능해 보임• 각 컴퓨터가 자신에게 저장된 파일을 처리 (Map)• 결과를 Merge(Sort) 하면 됨 (Reduce)

• HMR(Hadoop MapReduce) 이 있음• GMR 은 비공개

아까 그 놈들

20/37

Page 21: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

Hadoop 구성• 분산 파일 시스템

• NameNode – 파일 목록 /블록 관리 . Write/Read 스케줄링• DataNode – 데이터 블록 저장

• 분산 처리 시스템• JobTracker - Job 목록 . Task 로 분할 . Task 스케줄링• TaskTracker - Task 실행

• HDD 속도보다 네트워크 속도가 문제

• 기억 안해도 되고 , 기억도 안될테니 넘어갑니다 .

21/37

Page 22: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

무엇을 하는가 ?

“ 대용량 비정형 데이터에서 유의미한 데이터 도출” (헉 !)

• 데이터 분석 / 정제• 직접 할 수도 있으나 효율성이 떨어짐• 정제하여 R 이나 Excel 에서 사용

• DB 처럼 사용 : SQL 을 MR 로 자동 변환• Transaction 안됨

• 보고서 생성• 데이터 백업

• 단기 ~중기 데이터 보관• 초단기 (Real-time) 는 메모리 DB• 장기 보관은 DAT(Tape)

22/37

Page 23: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

그럼 개발자는 무엇을 ?

• Hadoop 기반의 시스템 설계 / 개발 / 구축• HMR 프로그래밍• Hadoop 일부 구조 개선 ( 회사 상황에 맞게 )• Hadoop 응용 프로그램

• 그리고 , 아름다운 디버깅 …• 분산 처리 환경• 오픈소스

23/37

Page 24: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

예제• Word Count• 1 단어가 10TB 이고 , 읽는데 1 분 걸린다고 합시다 .

word count

jacobs 5

by 3

marc 6

for 2

in 1

collaboration 1

with 1

19 분

24/37

Page 25: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

예제word count

jacobs 2

by 1

marc 1

for 1

word count

marc 2

by 1

jacobs 1

in 1

collaboration 1

with 1

word count

marc 3

jacobs 2

for 1

by 1

word count

jacobs 5

by 3

marc 6

for 2

in 1

collaboration 1

with 1

5 분

7 분

7 분

+@

25/37

Page 26: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

NC 는 이걸로 뭘 하지 ?

• 게임 ( 리니지 , 아이온 ,B&S 등 ) 데이터 저장 및 분석

• 약 3PB = 3,072 TB = 3,145,728 GB• Write : 수십 ~ 수백억 레코드 , TB 단위

• 위험 탐지 : 버그 탐지 , 오토 잡기 , 작업장 감지• 고객 응대 : “ 템이 사라졌어요 . 복구해주세요 .”• 보고서 : 직책 높은 분들은 보고서만 봄

26/37

Page 27: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

현업 예제 #1

• 버그 탐지• 평상시와 “많이” 다른 패턴• 돈 / 템 복사• 레어몹 무한 사냥

27/37

Page 28: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

현업 예제 #2, 3

28/37

Page 29: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

현업 예제 #2

• BOT( 자동 사냥 캐릭터 ) 탐지• 눈으로 보면 판별이 쉬움 컴퓨터로 어려움• 그러나 , 제제는 확실하고 근거가 있어야만 가능• 자기 자신이 자신과 매우 유사함 (?!)

29/37

Page 30: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

현업 예제 #3

• 작업장 탐지• 작업장 : 오토 + 배후 캐릭터• 끼리 끼리 놀고 있음• 관계 네트워크 ( 그래프 ) 분석 및 시각화

이은조 , R 을 이용한 게임 데이터 분석 , NCSOFT, 2012 30/37

Page 31: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

이은조 , R 을 이용한 게임 데이터 분석 , NCSOFT, 201231/37

Page 32: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

이은조 , R 을 이용한 게임 데이터 분석 , 201232/37

Page 33: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

어떻게 하는가 ?

• Java 로 MapReduce 프로그램 작성• 최근에는 스크립트 언어 (hive, pig 등 ) 로 작성

• MR 로 정제된 데이터를 R 로 분석 / 모델링• 회귀분석 , 자기 상관 분석 , 네트워크 분석 , 그래프 클러스터링 ,

• 도메인 ( 게임 ) 과 데이터에 대한 깊은 이해 필요

MRBigData 정제된데이터

R or Excel

자주

가끔

33/37

Page 34: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

아까 잠시 언급한 Spark 은 ?

• Hadoop 은 Disk 기반의 분산 처리

• Spark 은 Memory 기반의 분산 처리• RAM 을 ROM 처럼 사용 !

• 최근 대세 타고 있음

34/37

Page 35: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

Q&A

35/37

Page 36: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

하고 싶은 말• C++, Java 둘 중에 하나는 잘하세요 .

• 자료구조 , 알고리즘 열심히 하세요 .

• Windows, Linux 편식하지 마세요 .

• 다양하게 해보세요 .

36/37

Page 37: 2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)

37/37