카카오가 데이터 분석에 쓰는 툴은?

카카오의 데이터 분석 노하우가 공개됐다. 클릭하우스(Clickhouse)를 적용해 수천억건의 세그먼트도 수초 이내에 분석하도록 성능을 높였다는 게 카카오의 설명이다. 9일 카카오는 개발자 콘퍼런스 ‘이프(카카오)데브 2022’에서 이 같은 기술 사례를 공유했다.

아울러 오픈소스 프로젝트 분석을 위한 카카오 ‘올리브(Olive) 플랫폼’에 대한 소개도 있었다. 이는 서버와 통신 없이도  소스 분석이 가능하게 하고, 소스코드 조각만으로도 라이선스를 확인하는 기능을 추가해 보안 컴플라이언스에 대응하고 무단 배포로 일어날 수 있는 제재를 피할 수 있도록 돕는다고 한다.

 

(출처: 이프 카카오 영상 생중계 캡처)

‘카카오 분석 플랫폼 변천사’ 세션 발표에 나선 김승준 카카오 데이터연구실 매니저는 “사용자가 서비스를 사용하면서 발생한 로그를 수집 및 가공해 다양하게 분석할 수 있는 환경을 제공하는 것이 데이터 분석 플랫폼”이라며 “대시보드, 세그먼트, 리텐션, 퍼널, 플로우 등과 같은 기능적 요구사항과 실시간, 속도 등의 시스템 요구사항을 구현해야 한다”고 설명했다.

초기의 카카오는 실시간 콘텐츠 통계를 제공하는 것이 목표였다. 마이SQL 두 대에 데이터를 저장해 분석하는 방식을 사용했는데, 이는 조회 기간이 길어질수록 속도가 느려졌다는 게 김승준 매니저의 설명이다.

그는 “기존 실시간 통계 외에 서비스 지표를 추가하고 다차원 분석 기능도 추가했다”며 “하둡(Hadoop)과 그린플럼(Greenplum)을 새로 적용해 증가하는 애드혹(Ad-Hoc) 분석 요청에 대응했다”고 밝혔다.

김 매니저에 따르면 그린플럼은 분산구조(MPP) 방식이라 기존 대칭병렬(SMP)과 다르게 노드 별로 데이터를 분산 처리해 빠른 결과를 낼 수 있었다. 또한 여러 데이터 분석 툴을 비교해본 결과 ‘클릭하우스(Clickhouse)’ 기술이 빠른 쿼리 속도와 노드 증설에 장점이 있었다는 설명이다. 다른 옵션 중 하나였던 ‘드루이드(Druid)’ 의 경우 다차원 분석 확장은 용이하지만 집계된 결과를 저장하는 구조라 사용자 단위 분석이 어려웠다고 김 매니저는 부연했다.

그는 “클릭하우스는 집계 결과가 아닌 로우(Raw) 수준의 데이터를 저장해 사용자 단위 분석이 가능했다”면서 “퍼널, 플로우, 리텐션 등 다양한 함수를 제공해 효율적이었다”고 밝혔다.

이어 “노드별로 사용자를 분산 저장하고, 쿼리 시에는 개별 노드에서 사용자 단위로 집계한 뒤에 취합 노드에서 최종 집계하는 방식을 사용한다”며 “이를 통해 수천억건의 세그먼트 분석도 평균 수초 이내에 가능하다”고 강조했다.

오픈소스 정보 분석 및 라이선스 관리…올리브 플랫폼도 소개

행사에서는 오픈소스를 효율적으로 관리하는 플랫폼의 새로운 기능도 소개됐다. 지난해 6월 정식 오픈한 올리브 플랫폼은 오픈소스 프로젝트를 분석해 소스 검증과 라이선스 의무사항을 확인할 수 있는 서비스다.

이기문 카카오 매니저는 “오픈소스를 사용한 소프트웨어를 배포할 때는 사용 방법과 조건을 담은 라이선스 의무 사항을 준수해야 한다”며 “만약 준수하지 않으면 형사처벌이나 손해배상에 이를 수 있고, 기업 이미지 손상으로까지 이어진다”고 말했다. 이에 올리브 플랫폼은 오픈소스 정보를 데이터베이스화해 사용자가 의무와 고지 사항 등을 확인할 수 있게 돕는다는 설명이다.

(출처: 이프 카카오 영상 생중계 캡처)

올리브 플랫폼은 또한 데이터 통신의 제약을 줄이고, 코드 무단 사용에 따르는 리스크를 확인하는 기능도 추가했다. 새로 추가된 ‘올리브 CLI’는 프로젝트 소스코드를 전송하지 않고도 분석할 수 있는 기능이다.

그는 “애널라이즈 명령을 하면 올리브 서버와 통신 없이 디펜던시 제이슨(JSON)파일로 저장되고, 매핑 명령어를 실행해 디펜던시 제이슨 파일만 전송한다”며 “ 단순 검색 방식이라 올리브 서버에는 저장되지 않는다”고 말했다. 이를 통해 외부 통신이 막힌 보안망 환경에서도 오픈소스 코드 분석과 확인이 가능하다는게 이기문 매니저의 말이다.

또다른 기능인 ‘코드 스니핏(Snippet)’ 분석은 혹시 모를 라이선스 위반을 막아준다. 조각이라는 뜻인 스니핏에서 알 수 있듯 일부 코드만 떼어와 사용했을 때 이 코드 조각이 어떤 라이선스를 따라야 하는지 일부 코드만 가지고도 확인할 수 있는 기능이다.

그는 “이 밖에도 다양한 소셜 로그인과 영문 언어를 지원하도록 개선하는 것이 올리브 플랫폼의 넥스트 레벨”이라며 “오픈소스 취약성(정보)도 제공할 예정”이라고 밝혔다.

글. 바이라인네트워크
<이진호 기자>jhlee26@byline.network

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다