본문 바로가기

Home > 정보마당 > 공개SW 활용 성공사례

공개SW 활용 성공사례

[공개SW 활용 성공사례 119] 버즈니 - 공개SW로 실시간 로그 분석 시스템 구축

OSS 게시글 작성 시각 2014-02-25 15:15:26 게시글 조회수 1905
오피니언마이닝 기술로 영화 앱 평정

버즈니는 특정 카테고리의 다양한 채널을 통합하여 다른 서비스와 차별된 사용자 편의 경험을 제공하는 모바일 서비스회사다. 특히, 2010년 6월에 런칭한 '버즈니영화가이드'는 현재 300만 명이 넘는 사용자를 확보하고 있는 대표 영화 앱이다. 특정 브랜드의 영화관이 아닌 전국 모든 영화관의 상영정보와 극장예매 기능 제공으로 사용자의 관심을 모았다. 하지만, 이보다 더 중요한 기술이 있는데, 바로 사용자들이 작성한 리뷰의 비정형 데이터와 사용자 패턴을 분석하는 오피니언마이닝 기반 자동 추천 기능이다.

- 기     관 버즈니
- 수행년도 2013년 11월
- 도입배경 즉각적인 니즈를 충족시킬 수 있는 로그 분석 시스템 필요
- 솔 루 션 Logstash, ElasticSearch, Kibana
- 도입효과 : 기존에 5~10분 단위로 로그 분석이 가능하던 것을, 초 단위 혹은 실시간 분석이 가능해 짐

버즈니가 3년여의 기간 동안 자체 개발한 오피니언마이닝 기술은 비정형 데이터인 문서에 내포된 의견이나 감정 등을 긍정, 부정, 중립 패턴으로 구분하고, 분석하여 그 결과를 효과적으로 표현하는 빅데이터 처리 기술이다. 예를 들어, 영화를 검색할 때 ‘신나는 영화’로 검색할 경우 버즈니영화가이드는 영화 제목에서 ‘신나는’을 찾는 대신 블로그와 리뷰 내용 중 해당 내용이 작성된 영화를 검색해주고, 이렇게 검색에 사용했던 키워드들을 조합해서 사용자가 선호하는 영화의 종류를 파악하여 자동 추천도 해준다.

 

여섯 개 홈쇼핑 채널의 편성표를 한 번에 볼 수 있도록 제공하는 홈쇼핑모아의 경우, 제품에 대한 정보를 제조사나 판매사 정보로만 표시하는 것이 아니라, 사용자 리뷰 중 주요 키워드인 ‘촉촉함’ ‘부드러움’ ‘은은한 향’ 등의 지수를 분석하여 함께 표시함으로서 신뢰할 수 있는 정보를 사용자에게 제공하고 있다. 이와같은 기술을 기반으로 사용자 신뢰도가 향상됨에 따라 당연히 사용자가 증가하게 되었지만, 사용자의 증가로 인해 서비스 분석과 비즈니스 모델 개발에 필수적이라고 할 수 있는 로그 분석에서 어려움을 겪기 시작했다.

 

디테일한 서비스 로그 분석 시스템 필요

서비스를 하다보면 서비스 초기에는 UV와 PV 등을 이용해서 사용자 수와 사용 빈도가 늘어나는 것 자체가 즐거움이다. 하지만, 보다 나은 서비스 개발이나 비즈니스 모델을 개발하자면 사용자의 유입경로나 새로 만들어진 메뉴의 사용자 접근 방법, 사용 빈도, 이벤트의 즉각적인 효과나 사용자의 반응 등의 좀 더 상세한 분석이 요구되어지기 마련이다.

 

버즈니도 이런 니즈를 충족하기 위해 초기에는 구글의 애널리틱스를 활용했다. 구글의 애널리틱스는 다양한 로그 분석 데이터를 제공해주지만, UV나 재방문율 등의 분석 결과 데이터가 실제로 필요로 하는 내용과 다소 차이가 있었다.

 

여러 시도를 해본 끝에 선택한 방법은 로그 분석 시스템의 자체 개발. 버즈니의 김성국 CTO는 “처음엔 액션된 정보를 바로 DB에 저장했는데, 로그 분석 시스템을 구축하느라 처음에는 시행착오를 많이 겪었습니다. 매일 수 GB의 로그가 쌓이다보니 2~3일쯤 지나면 DB가 넘쳐나는 로그를 감당하지 못하고 다운되기 일쑤”였다며 초기의 문제점들을 설명했다.

 

그래서 고안해 낸 방법이 서비스에는 전혀 영향을 주지 않으면서 로그파일을 저장하는 구조다. NginX나 아파치 로그를 주기적으로 읽으면서 로그파일을 만드는 구조인데, 이 구조는 현재도 활용하고 있을 만큼 구조 자체가 안정적이다. 이 시스템은 일 단위 로그분석처럼 분석해야 하는 데이터의 양이 많지 않을 때에는 문제가 없는 반면에, 월 단위 로그를 분석하려 할 때는 문제가 발생한다. 간단한 쿼리문으로 분석이 가능한 일이지만 수억 건의 로그를 분석해야 하다 보니 쿼리 하나 처리하는데 30~40분이 걸리는가 하면, 메모리 릭이 발생하여 DB가 멈추기도 했다.

 


▲ 버즈니 영화가이드 앱화면

 


▲ 버즈니 맛집 앱화면

 

로그 분석 최강 조합의 발견

국내에서 많이 사용되고 있는 타 로그 분석 시스템의 도입도 검토해봤지만 여전히 해결할 수 없는 문제들이 남아있었다. 새로운 니즈가 발생할 때마다 별도의 개발을 해야 하는 번거로움은 해결할 방법이 없었다. 하나의 간단한 서비스만 하고 있다면 모를까, 수십만에서 수백만의 사용자를 보유한 여러 서비스를 동시에 운영하고 있는 버즈니의 경우, 메뉴가 새로 추가되거나 이벤트가 발생할 때마다 추가 개발을 해야 한다는 건 감당할 수 없는 문제였다.

 

또한, 배치 구조로 되어 있어 일정 주기 단위로 로그를 확인할 수 있는 기존의 로그 분석시스템과 달리 유저의 액션이 발생하는 즉시 실시간 분석이 가능한 분석기가 필요했다.

 

고심하던 김성국 CTO가 해외 커뮤니티에서 찾아낸 건 바로 Logstash와 ElasticSearch, Kibana를 조합해서 만드는 로그 분석 시스템으로, 공개SW를 통해 쉽고 안정적으로 구현할 수 있을 뿐만 아니라 실시간 분석도 가능한 이 황금 조합은 오피니언마이닝 못지않은 버즈니의 핵심 기술로 활용되고 있다.

 

실시간 로그 분석 삼총사

이 로그 분석기의 구조를 간단히 살펴보면 다음과 같다. 먼저 로그 파일을 지속적으로 읽어 들이고 이 파일을 DB나 검색 색인, 파일 등 전송하고자 하는 어디에라도 저장할 수 있게 해주는 Logstash가 가장 앞단에 선다. 이렇게 읽어드린 로그 파일은 루씬 기반 검색 엔진이면서 분산형 검색을 쉽게 구현할 수 있도록 만들어진 ElasticSearch로 전달된다. Logstash와 찰떡궁합인 ElasticSearch는 이렇게 전달된 로그를 분석하고 인덱스를 색인하는 등의 역할을 담당한다. 다시 이렇게 검색, 인덱싱된 결과를 화면에 표현해 주는 기능을 담당하는 역할을 Kibana가 담당하게 되면서 간단한 설정만으로 실시간 로그 분석이 가능한 시스템이 만들어진다.

 

버즈니는 기존의 로그 분석 시스템을 재방문율이나 일일 PV, UV처럼 일반적인 로그 분석에 활용하고, 이벤트에 대한 결과를 즉각적으로 확인하거나, 새로 추가된 메뉴에 대한 사용자의 반응을 빠르게 판단하는 등의 디테일하고 플렉서블한 로그 분석이 필요한 경우에는 Kibana를 활용하고 있다.

 

▲ 로그 분석 시스템 구조도

 

Kibana 분석 시스템 강화와 공유

환상의 조합이라곤 하지만 외산 공개SW를 국내 서비스에 적용하는 것이 그다지 수월하진 않았다. 본래 디코딩 기능을 지원하고 있음에도 불구하고 한글 URL 중 깨진 글자가 포함될 경우 Kibana가 다운되거나 얘기치 못한 여러 문제가 발생하기도 했다. 향후 계획을 묻는 질문에 김성국 CTO는 “두 가지 계획을 가지고 있다. 하나는 Kibana 로그 분석 시스템의 분석 결과에 기반을 둔 서비스 개선과 업그레이드이다”. 막연한 생각이나 신뢰도 낮은 조사를 기반으로 한 업그레이드가 아니라 사용자의 로그 분석에 기반한 개선사항 도출과 반영을 하겠다는 얘기다. “둘째로는 우리가 겪은 시행착오나 구축 경험들을 강의나 기고를 통해 외부의 개발자들과 공유하려고 준비중”이라며 계획을 밝혔다.

 

버즈니는 이처럼 체계적 서비스 개선과 운영, 비즈니스 모델 개발에 필수적인 실시간 로그 분석 시스템 구축 사례에 견인차 역할을 담당하기 위한 노력을 계속해 나가고 있다.


[인터뷰]


“공개SW는 스타트업의 필수 조건이다”

버즈니 김성국 CTO(좌), 남상협 대표이사(우)


버즈니 김성국 CTO(좌), 남상협 대표이사(우)

Q> 스타트업에게 있어 공개SW란 어떤 존재인가? - 김성국 CTO

외국에 ‘바퀴는 새로 만들지 않는다’는 속담이 있다. 이 속담에서도 알 수 있듯이 조금 극단적으로 얘기한다면, 공개SW는 안 쓰면 바보다. 가령 색인 기능을 구현하기 위해 루씬을 사용하지 않고 자체개발을 한다면, 너무나 많은 시간동안 시행착오를 겪어야 할 것이다. 엔진엑스 같은 웹서버도 마찬가지다. 스타트업에게 있어 시간은 곧 돈이고 기회다. 좋은 도구가 있음에도 그걸 사용하지 않고 그 도구를 깎는데 시간을 허비하며 좋은 비즈니스모델을 만들어 내기란 하늘의 별따기다.

 

다만, 공개SW의 도입을 위해 반드시 거쳐야 하는 과정이 있는데 바로 안정성 검증이다. 사진공유 서비스로 유명한 인스타그램의 포스트에서도 공개SW 도입을 위한 조건으로 안정성(Stability)을 최우선으로 꼽는다. 안정성이 검증된 공개SW는 스타트업의 아이디어와 열정을 구현하는 중요한 견인차 역할을 해줄 거라고 믿는다.

 

Q> 그렇다면 좋은 공개SW를 찾는 노하우가 있는가? - 남상협 대표

GitHub에서 답을 찾으면 된다. GitHub는 사용하는 언어별로 관련된 공개SW를 소개해준다. 우리도 매주 GitHub의 인기 순위를 확인하고 이 중에 우리가 활용할 수 있을 만한 것이 있는지 찾아본다. 세계 여러 개발자들의 의견과 추천을 통해 안정적이고 효과적으로 활용할 수 있는 공개SW를 쉽게 찾을 수 있기 때문이다.

 

또, 공개SW와 관련해서 궁금한 점이 있다면 소셜 지식 서비스인 Quora를 활용해보면 좋다. 이곳은 실리콘벨리의 많은 스타트업 개발자들이 정보를 공유하고, 질문에 답변을 해주고 있어서 잘 활용하면 큰 도움을 받을 수 있다.




- 공개SW 역량프라자
맨 위로
맨 위로