카카오 OLTP 그래프 데이터베이스 S2Graph, 아파치 재단 오픈소스 인큐베이터 프로젝트에 채택
카카오(대표 임지훈)는 9일, 자체 개발한 OLTP 그래프 데이터베이스인 S2Graph가 지난달 23일과 24일 양일간 진행된 아파치 소프트웨어 재단(ASF)의 프로젝트 운영위원회 투표에서 만장일치로 오픈소스 인큐베이터 프로젝트에 채택됐다고 발표했다.
아파치 소프트웨어 재단은 오픈소스 소프트웨어를 지원하는 세계 최대의 비영리 재단으로 아파치 HTTP서버, 아파치 하둡, 아파치 톰캣 등을 포함해 총 350여개의 오픈소스 소프트웨어 개발 프로젝트를 지원하고 있다.
카카오의 S2Graph는 아파치 HBase 기반의 온라인 트랜잭션 프로세싱(OLTP) 그래프 데이터베이스로, 다양한 카카오 서비스들에서 생성되는 방대한 이용자 데이터를 빠르고 효율적으로 관리하기위해 개발됐다. 그래프 데이터베이스란 데이터들의 상관 관계를 그래프 구조로 표현해 저장하는 것으로 해외에서는 트위터, 페이스북, 인스타그램 등 소셜네트워크 분야에 선도적인 기업들이 자사 서비스 이용자 대상 피드(feed)추천 등을 위해 자체 개발해 활용하고 있다.
현재 카카오는 S2Graph를 카카오톡, 카카오스토리, 카카오뮤직, 선물하기, 다음앱, 다음뉴스, 다음쇼핑 등 20여개 이상의 자사 서비스들에 적용하고 있다. S2Graph를 통해 총 1조건이 넘는 관계 데이터를 저장하고 있으며, 매일 갱신되는500억건 이상의 관계 데이터를 분석해 주요 서비스들에 실시간 반영하고 있다.
카카오가 개발한 S2Graph는 방대한 데이터들의 상관 관계를 빠르고 직관적으로 제공함으로써 서비스 내에서 이용자 행동에 대한 결과물을 실시간으로 제공하는데 유용하게 활용된다. 대표적으로 SNS에서 특정 이용자와 친구관계를 맺은 사람들이 많이 반응한 콘텐츠들을 분석해 해당 이용자가 관심을 가질만한 콘텐츠를 추천해 주거나, 온라인 쇼핑에서 특정 이용자가 서비스 접속시 그와 유사한 취향을 가진 사람들이 구매한 제품들을 주로 노출시켜주는 것을 예로 들 수 있다.
S2Graph의 가장 큰 장점은 이용자들의 관계 및 행동 데이터를 하나의 저장소에 모아 일원화된 API로 제공해 서로 다른 서비스들이 더 쉽고 안정적으로 데이터를 공유할 수 있으며, 실시간 데이터와 배치(Batch)로 생성된 데이터를 함께 사용할 수 있어 밀리세컨드 단위의 실시간성을 확보했다는 점이다. 이를 통해 SNS에서 특정 게시물에 대해 내가 ‘좋아요’를 선택한 행동이 내 친구의 피드에 반영되기까지 기존 시스템에서는 수 시간에서 수 일이 소요됐던 것을 S2Graph를 사용해 실시간으로 반영할 수 있게 됐다.
또한 S2Graph는 서비스마다 다른 포맷으로 로그(Log)를 저장했던 방식에서 벗어나 공통 포맷으로 로그를 저장해 서비스 운영을 위한 시스템 저장소를 혁신적으로 줄일 수 있어 효율성 측면에서도 높은 이점을 제공한다.
S2Graph개발을 주도한 윤도영 카카오 그래프DB 파트장은 “ASF인큐베이터 프로젝트 채택으로 카카오의 기술력이 국제적으로 인정받았으며, 전세계 개발자들과 협력해 최종 단계인 탑레벨 프로젝트에 승격될 수 있도록 노력하겠다”며, “이를 계기로 앞으로 카카오의 플랫폼들을 오픈소스로 제공해 오픈소스 생태계 발전에 적극 기여할 것”이라고 말했다.
카카오의 S2Graph는 향후 아파치 소프트웨어 재단이 제공하는 메일링 리스트와 이슈 트래커 등을 통해 전세계 개발자들에게 투명하게 공개될 예정이며 국내 기업 중 그루터와 해외기업인 세일즈포스, 호톤웍스, 레드링크 등의 개발자들과 함께 본격적으로 프로젝트를 추진할 계획이다.