안정적인 서비스를 제공하기 위해 실시간으로 바뀌는 이용자의 동향을 파악하는 시스템을 구축하는 방법이 넥슨 개발자 컨퍼런스에서 공개됐다.
26일 넥슨 인프라기술팀 이태윤 개발자는 ‘실시간 트렌딩 키워드 뽑아내기’라는 주제로 성남시 판교 넥슨 사옥에서 열린 넥슨 개발자 컨퍼런스 2016(NDC16)에서 발표했다.
이태윤 개발자는 게임을 서비스하면서 이용자의 동향을 파악해야 선제적인 대응이 가능하다며 동향 파악의 중요성을 강조했다.
이러한 이용자 동향은 주로 게시판에 올라오는 글을 통해 빠르게 문제를 파악하고 해결이 가능하다. 특히 해킹이나 클라이언트 변조 등으로 인한 경제 붕괴는 심각한 문제가 발생하기 때문에 빠르게 파악해야 한다.
하지만 게임을 서비스하면서 데이터가 계속 증가하고 서비스하는 게임이 늘어나면서 게시물을 모두 파악하기 쉽지 않아지게 된다. 이로 인해 놓치는 이슈가 증가해 이를 확인하기 전에 문제가 발생하는 일이 생기게 된다.
이태윤 개발자는 이를 막기 위한 방안으로 포털사이트에서 제공하는 서비스인 인기 검색어를 활용한 트렌딩 키워드를 개발하게 됐다고 밝혔다. 트렌딩 키워드는 게시판에서 주로 화제가 되는 이슈를 정리해 한눈에 파악할 수 있도록 관련 팀에 제공하는 것이다.
인기 검색어와 트렌딩 키워드의 차이점은 인기 검색어는 이용자가 직접 원하는 단어를 검색창에 쓰기 때문에 이를 정리하는 것이지만 트렌딩 키워드는 이용자가 작성한 글에서 주요 단어를 찾아내야 하기 때문에 자연어 검색이 필요하다.
이를 위해 이태윤 개발자는 게시판에 올라온 글을 분리해 명사만 찾아냈다. 한국말은 대부분의 명사 뒤에는 조사가 붙기 때문에 먼저 형태소 분석기로 조사를 찾은 후 앞의 단어를 카운팅했다.
얼마나 많은 조사가 뒤에 붙느냐에 따라 명사일 확률이 높기 때문에 조사의 종류가 3개 이상 붙은 단어를 명사로 분류했다.
찾은 명사를 묶어 명사사전을 구축하고 이를 기반으로 다시 분석을 시작한다. 이번에는 형태소분석기를 이용해 해당 단어가 사전에 등록돼 있는지 확인한다. 사전에 등록된 단어는 하나의 명사 덩어리로 설정해 사전의 완성도를 높여나간다.
또한 게임마다 주로 쓰이는 단어가 다르기 때문에 명사사전은 게임 별로 다르게 만들어야 한다.
명사사전이 완성되면 이를 바탕으로 실제로 이용자가 얼마나 많이 해당 명사를 언급하는지 파악할 수 있는 트렌딩 점수를 계산해야 한다.
트렌드 점수는 기본적으로는 등장 횟수를 기반으로 하지만 일상적으로 쓰이는 단어로 인해 실제 이슈가 되는 트렌드가 높은 점수를 받지 못해 상위에 노출되지 않을 수 있다는 문제점이 있다. 그래서 자주 쓰이는 일상어와 자주 쓰이지 않는 전문용어에 따라 보정 값을 적용해 자주 쓰이지 않던 단어의 사용량이 늘 경우 해당 단어가 상위로 올라갈 수 있도록 했다.
도배 등 게시판에서 장난으로 글을 쓰는 이용자로 인한 오류를 막기 위해 하나의 명사에 대해 같은 이용자가 중복 언급하는 것을 막았다. 하나의 글에 하나의 단어만 잔뜩 써 있는 글도 트렌트 이슈에서 제외했다. 또한 이, 저, 그 등 대명사 등은 일상어는 검색에서 제외한다.
이태윤 개발자는 “실제 이슈가 있을 때에는 관련된 여러 가지 단어를 만들어 내기 때문에 몇 가지 단어를 제거해도 이슈 파악에는 큰 무리는 없다. 오히려 한눈에 문제를 파악할 수 있도록 다양한 글이 올라올 수 있도록 해야 한다”고 설명했다.
관련기사
- [NDC16] 소프트웨어 개발 팀장이 해야할 일2016.04.27
- [NDC16] 학생 게임 개발이 실패하는 이유는?2016.04.27
- [NDC16]오웬 마호니 넥슨 “게임은 IT 산업 발전에 영향”2016.04.27
- [NDC16] 정상원 부사장 "게임이 획일화되고 있다"2016.04.27
모인 데이터는 기간에 따라 일간 또는 주간 별로 팀원에게 제공하며 이를 기반으로 서비스를 제공한다. 또한 실시간으로 이슈가 변동할 수 있기 때문에 실시간으로 급증하는 키워드를 별도로 제공한다.
또한 이 개발자는 “상위 노출뿐만 아니라 상위에 유지하고 있는 키워드 중에서도 순위의 변동에 따라 이슈가 발생할 수 있으니 이를 주의 깊게 살펴봐야 한다”고 말했다.