인턴 생활기 #1
by DANBI
앞선 글에서도 언급되었듯이, Data Analysis & Programming 직무로 2명의 사원이 하계 인턴을 수행하게 되었습니다. 인턴생활 동안 배우는 내용과 하는 일에 대하여 간략하게나마 소개해 드리고자 매주 인턴생활기를 포스팅하려고 합니다. 먼저, 2명의 인턴을 소개합니다!
A - 안녕하세요, 저는 통계학을 전공하며 현재 데이터마이닝 연구실에서 관련 공부를 하고 있습니다. 진행했던 프로젝트로는 분포가정을 통한 영화 관객 수에 대한 예측, 통계적 모형을 활용한 보험 상품 가입자 해지에 관한 예측, 서울시 지하철 역별 군집화 및 데이터마이닝 기법을 이용한 수요 예측 등이 있습니다.
B - 안녕하세요, 저는 수학, 통계학을 전공하며 데이터마이닝에 관심을 갖게 되었습니다. 데이터 분석과 관련하여 머신러닝을 이용한 당뇨병 발생 예측을 주제로 학위 논문을 작성하였고, YOLO v3를 응용한 object detection과 같은 프로젝트를 병행하며 공부하고 있는 학생입니다.
인턴 생활의 시작
오리엔테이션으로 모든 직무의 인턴사원들이 모여 가장 먼저 교육받았던 내용은 보안에 관한 것이었습니다. IT업계 특성상 회사에서 다루는 모든 것들이 기밀이라 하여도 과언이 아니기 때문에 바이러스 감염 방지를 포함한 철저한 보안 유지에 관한 교육을 받았습니다.(사내 보안 프로그램 종류도 꽤 많습니다.ㅎㅎ) 뿐만 아니라 Data Analysis & Programming 직무의 경우, 업무 특성상 게임 유저 데이터를 주로 다루기 때문에 추가적인 교육이 있었습니다.
그렇다면 Data Analysis & Programming 직무에서는 게임 이용자들의 데이터로 무슨 일을 수행하고 있는 것일까요?
먼저, 게임 플레이에 관한 데이터를 보다 잘 이해하려면 직접 게임을 해보는 것이 가장 효과적일 것입니다. 이 때문에 저희 인턴 사전 과제로 ‘출근 전까지 리니지M 레벨55까지 달성’을 부여 받았는데요. 게임 해오기가 과제라니, 지금까지 받아보았던 과제 중에서 가장 즐거운 것이 아니었나 싶습니다.ㅎㅎ
분석에 기본이 되는 데이터는 바로 게임 로그 데이터입니다. 게임 안의 가상 세계에서는 누가 언제 어디서 무엇을 어떻게 했는지에 관하여 모두 기록이 남는데요. 예를 들어, 리니지M에서 ‘군주’캐릭터가 ‘잡화상인’으로부터 ‘체력회복제 50개’를 ‘2300아데나’를 주고 ‘오후 3시 16분’에 ‘구매’했다면 게임 로그에 이러한 이력들이 남게 되는 것입니다.
이러한 데이터를 토대로 저희 팀에서는 해당 캐릭터가 게임활동이 왕성한 캐릭터인지, 활동이 그리 활발하지는 않은 캐릭터인지, 혹은 악성 캐릭터인지에 관하여 분류를 합니다. 이러한 분류를 통해 게임의 매출을 증가시키기 위해서는 새로운 이용자들의 유입이 필요한지, 혹은 기존 이용자들의 활동 유형을 변화시키도록 노력해야 하는지에 관해서 알아볼 수 있습니다. 뿐만 아니라 이러한 고객 세분화 결과는 복잡한 모델링이 필요한 고도화된 예측에 활용될 수도 있습니다.
게임 제공사의 입장에서는 많은 이용자를 유치하는 것도 중요하지만, 오랜 기간 열심히 게임을 즐기다가 갑자기 이탈하는 고객들을 방지하는 것 또한 중요합니다. 이탈 계정이나 복귀 계정들에 대한 예측을 통해 앞으로 나아가야 할 방향 모색에 도움을 주는 것이죠. 이를테면 활발하게 게임을 플레이하다 갑자기 이탈을 하게 되는 고객들에 대한 공통적 특성을 알아냄으로써 마케팅 활동 등에 활용하는 것입니다.
분석가로서의 첫걸음
이러한 많은 분석들을 하기 위해서는 적절한 컴퓨터 환경을 조성하는 데에서부터 시작합니다. 특히, 게임 유저들의 로그를 분석하는 저희 팀은 데이터 접근 권한이나 추출에 앞서 많은 절차를 밟게 됩니다.
업무용 PC와 별개로 데이터를 추출하고 처리하는 PC를 별도로 지급받아 더욱 엄밀한 보안을 유지합니다. 이 PC는 별도의 망을 사용함과 더불어 팀 내외적으로 다양한 접근 권한을 승인 받은 이후에 본격적으로 데이터에 접근할 수 있었습니다.
데이터 접근 및 추출은 Hive를 이용하여 진행합니다. Hadoop을 이용한 대용량 데이터 적재 원리에 대해 간단한 설명을 들은 후 Hive 사용법을 교육 받았는데요. 현재 실제 DB로부터 SQL 구문을 통해 수많은 자료가 적재된 서버로부터 원하는 데이터만을 불러와 처리하는 법을 익히고 있습니다. 그 밖에 팀 내에서 사용하는 도구들로는 R 및 Rstudio, Gephi, Github, Putty, Filezilla 등이 있습니다.
이처럼 다양한 도구들을 이용하여 분석해온 내용들은 어떻게 관리되고 있을까요? 이와 관련해서는 해당 업무를 끝내고 나면 잊혀지는 것이 아닌 사내 시스템을 이용하여 수시로 기록되고 있었습니다. 위키피디아처럼 여러 사용자들의 동시다발적인 편집 권한 및 아카이빙 기능 탑재로 저희 또한 실시간으로 글을 작성하고 편집할 수 있었는데요. 짧게는 며칠, 길게는 1년 단위의 잘 정리된 과거 회의록, 업무 진행 상황과 세부 내역, 회고록 및 업무 계획들이 여러 팀원들의 피드백과 함께 저장되어 있었습니다. 특히, 세부적인 이론 및 코드와 디버깅 과정이 상상 이상으로 깔끔하게 정리되어 있어 업무의 흐름을 파악하고 연구 내용을 자세히 살펴보는 데에 유용했습니다.
그 밖에도…
팀원들 간 소통은 업무뿐만 아니라 업무 외적으로도 활발하게 이루어지고 있습니다. 예를 들면, 일주일에 한 번 커피타임을 가지면서 직접 커피를 내려서 함께 마시며 회의실에서 함께 모여 담소를 나누기도 합니다. 또한 점심시간에 회사 테라스에서 다같이 광합성을 하며 산책을 하기도 합니다. 그리고 무엇보다도 구내 식당 메뉴도 다양하고 정말 맛있다는 점도 인턴 생활에서의 소소한 행복입니다:)
인턴생활 1주차, 본격적인 업무를 시작하지는 않았지만 팀에서 수행하고 있는 분석들이 학창시절에 진행했던 프로젝트들, 해보고 싶었던 것들과 유사해서 흥미로웠습니다. 특히 양질의 게임 데이터의 활용 방법이 무궁무진해서 앞으로의 과제가 기대가 되는데요. 저희가 첫 주에 가장 놀랐던 점은 무엇보다도 데이터의 양입니다. 사실 입사 전 게임로그 데이터를 직접 보지 못했기에 나름대로 추측을 했었습니다만, “에이, 그걸 어떻게 다 기록해, 유저들의 활동 종류가 얼마나 많은데.” 라는 결론을 내렸습니다. 그런데 실제로 보니 모두 기록되어 DB에 적재돼 있어 놀라웠습니다. 상상조차 어려운 방대한 데이터를 가공하여 여러 분석 모델을 적용해보고 인사이트를 도출해가는 저희 팀의 업무, 앞으로도 많은 기대가 됩니다!