2015.01.06 데이터 사이언스

엔씨가 사용하는 오픈소스 #2- 분석도구 ‘하이브(Hive)’와 ‘R’

엔씨가 사용하는 오픈소스 #1 빅데이터 처리기술 : ‘하둡(HADOOP)’ 편에 이어 2편입니다.

엔씨가 사용하는 오픈소스 #2

빅데이터 분석도구
‘하이브(Hive)’ & ‘R’

엔씨가 사용하는 오픈소스 #2- 분석도구 '하이브(Hive)'와 'R'

진행 : 이은조 팀장 (데이터분산처리팀 팀장)
참여 : 조원준 차장, 장길주 과장, 조현우 과장

2014년 월드컵 우승팀, 여러분은 무엇을 기준으로 예상하셨나요?
그동안의 기록? 현재의 순위?

세계적인 검색 포털 사이트 구글(Google)에서는 이를 예측하는 데 빅데이터를 활용하였습니다. 최근 가장 핫한 키워드가 빅데이터라는 것을 알려주는 대목이죠. 이제 우리는 세상을 예측하고 앞을 내다보기 위해 점이나 타로카드가 아닌 빅데이터를 선택해야 할지도 모르겠습니다+ㅁ+

많은 기업들이 빅데이터 분석을 위해 개발자를 따로 두고, 다양한 시스템과 소스를 사용하고 있습니다. 그런데 비개발자 직원들도 스스로 데이터를 분석할 수 있도록 교육하는 회사가 있어 화제입니다. 직원들의 쉬운 사용을 위해 새로운 툴까지 개발했다는 이 회사, 바로 엔씨소프트입니다. 분석 도구를 활용해 시스템을 자동화하기도 했다는 엔씨소프트의 정보기술 전문가들과 함께 데이터 분석 도구에 관해 이야기 나눠보았습니다.



Q1. 간략하게 자기소개 부탁드립니다.

이은조 : 안녕하세요. 오늘 진행을 맡은 이은조입니다. 데이터분산처리팀 팀장을 맡고 있습니다.
장길주 : 안녕하세요. 데이터서비스개발팀 장길주입니다. Hive(하이브) 사내 교육 및 BI(Business Intelligence) 서비스 개발을 담당하고 있습니다.
조현우 : 안녕하세요, 데이터 인프라개발팀 조현우입니다. Hive(하이브) 인프라 개발을 담당하고 있습니다.
조원준 : 안녕하세요, 데이터분산처리팀 조원준입니다. R을 활용한 데이터 마이닝(Data Mining) 및 분석 업무를 담당하고 있습니다.

왼쪽 상단부터 시계방향으로 이은조 팀장, 장길주 과장, 조현우 과장, 조원준 차장왼쪽 상단부터 시계방향으로 이은조 팀장, 장길주 과장, 조현우 과장, 조원준 차장


Q2. 본격적으로 이야기 나누기 전에 장길주, 조현우 과장님이 담당하고 계신 하이브(Hive)에 대해 간단히 설명 부탁드립니다.

조현우 : 하이브(Hive)를 이해하려면 먼저 하둡(Hadoop)이라는 프로그램을 알아야 합니다. 하둡(Hadoop)은 빅데이터 시스템 중 하나로, 방대한 데이터를 효과적으로 처리할 수 있는 분산 시스템입니다. 하이브(Hive)는 바로 이 하둡을 쉽게 사용하기 위한 솔루션이라고 할 수 있습니다.


Q3. 하이브(Hive) 인프라를 개발하면서 어려웠던 점이 있다면?

조현우 : 하이브(Hive)는 큰 데이터를 처리하기 적합하다는 장점이 있지만, 작은 데이터 처리 시 느리다는 단점이 있어요. 이를 해결하기 위해 오픈소스인 샤크(Shark)를 도입하였습니다. 그래서 브로커를 중간에 두고, 데이터의 크기에 따라 샤크(Shark)와 하이브(Hive)가 분담할 수 있도록 처리했습니다. 이 과정에서 참고할 만한 샤크(Shark)의 사례가 없어 어려움을 겪었는데요, 업무에 맞게 커스터마이징했던 작업이 가장 기억에 남네요.

하이브(Hive) 인프라

Q4. 하이브(Hive)를 좀 더 쉽게 사용하기 위한 툴을 개발했다고 들었는데?

장길주 : 저희 팀에서 기존의 하이브(Hive)를 좀 더 쉽게 사용할 수 있도록 하이브R (HiveR)이라는 웹 기반 툴을 개발했어요. 사내 교육을 통해 비개발자 직원들도 하이브를 사용할 수 있게 되었는데, 이를 통해 누구나 스스로 데이터를 분석하고 있습니다. 이들을 위해 눈높이를 맞춘 시스템이 하이브R(HiveR)이라고 보시면 될 것 같습니다.


Q4. 비개발자 직원들이 데이터 분석을 한다? 매우 인상적입니다. 전 직원들에게 하이브(Hive)에 대한 사내 교육까지 하는 이유는 무엇인가요?

장길주 : 저희의 목표는 직원들 누구나가 스스로 데이터 분석을 하는 것입니다. 타인이 분석해주는 것에는 한계가 있기 때문이죠. 그래서 사내 교육 대상에는 제한이 없어요. 개발자와 비개발자 전체를 대상으로 교육을 진행하고 있는데, 비율 상으로는 비개발자가 70~80% 정도입니다.


Q5. 교육의 시작과 현황이 궁금합니다. 방향은 어떻게 잡고 있는지?

장길주 : 처음에는 특정 부서에서만 교육하였는데 호응이 좋아 전사로 확대했습니다. 지금은 HR 주관하에 정식 교육 프로그램으로 진행하고 있습니다. 올해 3월부터 총 15회, 약 250명에게 교육을 진행하였습니다. 비개발자를 포함하여 현재 약 250명이 직원들이 하이브R(HiveR)을 활용하여 스스로 데이터를 분석하고 있습니다. 직원들 스스로 유연하게 해결이 가능하죠. 교육은 업무에서 활용도 높은 실습 위주로 진행하고 있어요. 그 동안 진행하면서 얻은 경험을 바탕으로 내년에는 교육 과정을 리뉴얼 할 계획입니다.

데이터분산처리팀에서 담당하고 있는 분석 프로그램 R
Q6. 데이터분산처리팀에서 담당하고 있는 분석 프로그램 R은 무엇인가요?

조원준 : R은 통계 분석을 위한 프로그램 언어이자 소프트웨어 환경입니다. 게임에서 발생하는 다양한 데이터 발굴 및 분석과 함께 플로팅과 통계 계산을 돕죠. 무료 오픈소스임에도 불구하고 다양한 통계 및 모델링 기법을 지원하고 있습니다. 라이브러리도 방대하여 원하는 데이터를 뽑아낼 수 있고요. 저희 팀은 2012년부터 도입하여 사용하고 있는데요, 분석가가 직접 프로그래밍을 해야 한다는 진입 장벽은 있었지만, 적응 과정을 거친 후에는 분석의 자유도가 높아져 오히려 생산성이 높아졌습니다.


Q7. 분석용 도구를 넘어 R을 더 다양하게 활용한다고 하던데?

조원준 : 현재는 분석용 도구뿐만이 아니라 시스템에 직접 연동하여 사용하고 있습니다. 패턴을 탐지하고 학습하여 자동으로 모델을 생성하도록 한 것인데, 쉽게 말하면 시스템 자동화 정도가 되겠네요.


Q8. 시스템 자동화라니 뭔가 멋있는데요? R을 통해 데이터를 발굴 및 분석한다고 하셨는데, 업무 중 발굴한 인상 깊은 데이터 혹은 패턴이 있다면?

조원준 : ‘자기유사도’라는 패턴인데요, 로그를 분석해 게임의 자동 유저(오토 프로그램 사용 유저)를 탐지합니다. 자동 유저는 일반 유저와 다르게 프로그램에 탑재된 알고리즘에 따라 유사한 행동을 반복하는 패턴이 있습니다. 이를 자기유사도라고 하고, 이를 통해 자동 유저를 탐지하고 있어요.

이은조 팀장, 장길주 과장, 조현우 과장, 조원준 차장
Q9. 업무를 진행하며 가장 기억에 남는 일이 있다면?

장길주 : 데이터에 대한 사전지식이 전혀 없는 참가자들이 같은 교육을 여러 번 들으면서 적극적으로 학습한 적이 있었어요. 결국에는 원하는 정보를 직접 추출하게 되더군요. 가장 보람을 느꼈던 순간이라 기억에 오래 남아요.

조현우 : 우리가 가지고 있는 인프라에 적용하기 위해서 오픈소스를 분석해가며 커스터마이징했던 부분이 기억에 남습니다. 그 도중에 버그로 의심되는 오류가 발생한적이 있는데 아무리 찾아도 비슷한 내용의 패치가 없었습니다.  혹시나 하는 마음으로 커밋터에게 직접 버그를 리포팅하였고, 얼마후 그 버그에 대한 패치가 된적이 있습니다.

조원준 : 분석 프로젝트는 다른 개발 업무보다 성공에 대한 객관적 기준이 없는 편이에요. 그래서 늘 고민하던 것이 가장 기억에 남습니다. 이 고민은 앞으로도 계속되겠지만요.


우리는 아침에 일어나 잠드는 시간까지 인터넷을 통해 많은 일을 합니다. 정보 습득과 소비 그리고 사람 사이의 관계를 만드는 일까지도 말이죠. 그리고 이 모든 것들은 데이터가 됩니다. 이렇게 밀접하고 방대한 정보의 세상에서 보다 유연해지기 위해, 빅데이터 분석은 이제 우리에게 선택이 아닌 필수 과제인 것 같습니다.

엔씨소프트는 앞으로도 직원들 누구나 데이터를 분석하고, 스스로 유연해 질 수 있도록 부지런히 앞서나가겠습니다 🙂

다음 편에서는 엔씨가 사용하는 개발, 운영 도구에 대해서 이야기 나누어 보겠습니다.

TOP