감상문

유저동향분석시스템

ihl 2021. 1. 7. 21:13
유저동향분석시스템 개발 노하우

  오늘은 유저동향분석시스템 개발 노하우에 대한 영상을 보았다. 유저동향분석시스템이란 런칭된 제품에 대해 유저들이 어떤 이슈를 갖고 있는지 확인해야하는데 이를 게시판, 트위터 등의 온라인 커뮤니티의 글을 크롤링하여 자동으로 수행하고 급격히 많은 게시글이 올라오는 이슈에 대해 관리자에게 알림을 주는 시스템이다.

 

  프로그램은 데이터수집(크롤러) - 데이터 저장 - 데이터 활용 총 3가지의 영역으로 나뉜다. 이 중 가장 중요한 부분은 데이터수집이다. 데이터 수집은 크롤러(웹상의 다양한 정보를 자동으로 검색하고 색인하기 위해 검색 엔진을 운영하는 사이트에서 사용하는 소프트웨어)를 통해 이루어지며, 수집대상은 게시판 형태의 커뮤니티, 페북그룹, 트위터, Google 앱 리뷰 등이 있다.

 

  보통 크롤러는 웹요청 -> 파싱 -> 저장의 과정을 거친다. 게임 유저동향분석시스템의 경우 게시판에 접속하기 위해 로그인이 필요한 경우도 있고 크롤러로 가져온 웹 게시글 중에서 다시 게시글에 들어가서 본문내용과 댓글도 수집해야한다. 따라서 로그인 -> 게시물리스트 수집 -> 파싱 -> 게시글 수집 -> 파싱 -> 저장의 순서를 거치게 된다. 또한 크롤링 대상인 다른 서버의 게시글 수가 갑자기 급증하거나 하는 경우가 있으므로 Python의 Celery 라이브러리, rate_limit(과부하 제한)을 사용하였다. 크롤러는 기본적으로 게시판을 1p 씩 수집하며 이전 상태와 비교하여 새로운 게시글이 70%이상이면 1분 뒤에 재수집, 50% 이상이면 4분 뒤에 재수집을 하는 등 새 게시글 비율에 따라 크롤링 작업시간을 계획하고 수행한다.

 

  게시글은 기본적으로 MariaDB에 저장되며 게시글 제목, 본문, 댓글 등 인덱싱될 수 있는 요소는 SphinX, SphinX RT를 통해 인덱싱하여 저장한다. 원래는 SpinX를 사용했지만 SpinX의 증분백업방식때문에 AWS 비용이 많이 발생되어 SpinXRT(실시간으로 바로 추가)으로 변경하였다.

 

  이렇게 만들어진 시스템은 관리자들에게 매우 유용하다. 우선 키워드를 선택하면 관련 게시글들을 모아서 볼 수 있다. 예를들어 '버그'라는 키워드를 선택하면 버그와 관련된 '고쳐', '나만그', '안고쳤' 등이 포함된 게시글들을 모아서 볼 수 있다. 또한 이러한 키워드들을 수집하다보면 어떤 키워드관련 글이 많이 올라오는 경우가 있다. 이러한 경우에는 관리자에게 알림을 보내 확인할 수 있도록 유도한다.


  유저반응을 분석하는 시스템이 있겠구나는 생각했지만 구체적으로 어떻게 만든 것인지 보니 상당히 신기하다. 유저동향시스템이라는 문제에 대해 데이터 수집/저장/활용 이라는 3가지로 크게 나누고 그 안에서 다시 세분화하고 이를 하나씩 구현해 나가는 과정이 재미있었다. 또한 프로그램으로 인해 부가적으로 발생하는 비용문제에 대해 원인을 분석하고 해결하는 부분도 재미있었다. 영상을 보며 빨리 다른 사람들과 웹 프로젝트를 하고싶다는 생각이 들었다. 또한 저 때는 버그라는 폴더 안에 '고쳐', '나만그', '안고쳤' 등의 키워드들을 사람이 넣어서 만들었다면 요즘에는 인공지능의 분류와 자연어분석을 사용하도록 변경되었지 않았을까 하는 생각도 든다.