본문 바로가기

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

공개SW 활용 성공사례

빠른 DB 처리의 비결, 공개SW DB 솔루션

모바일 패러다임 변화의 물결을 타고 스마트폰 사용자라면 모를 사람이 없는 ‘카카오톡’. 텍스트를 비롯해 사진, 동영상, 음성 등 다양한 정형, 비정형 데이터를 처리해야 하는 모바일 메신저의 속성으로 인해 카카오톡은 다양한 공개SW DB 솔루션을 활용하고 있다. 그 결과 카카오톡은 빠른 데이터 처리를 비롯해 TCO 절감 등의 효과를 거두었다. 특히 DB단에서의 빠른 처리를 바탕으로 카카오톡은 단순 메신저에서 벗어나 다양한 이해관계자들의 니즈와 사용자를 연결하는 ‘모바일 소셜 플랫폼’으로 위상을 강화할 수 있게 됐다.

- 기     관 카카오㈜
- 수행년도 2010년 ~ 현재
- 도입배경 대용량 DB 처리 및 더욱 빠른 메시지 처리
- 솔 루 션 MySQL, MariaDB, TokuDB, 멤캐시드(Memcached), 카산드라(Cassandra)
- 도입효과 : 정형·비정형 데이터 및 대용량 데이터의 빠른 처리, TCO 절감, 사용 목적에 맞도록 활용할 수 있는 커스터마이징 등

스마트폰이 보급과 함께 빠르게 성장한 앱이 있다. 바로 ‘카카오톡’이다. 스마트폰이 처음 보급되던 시기, 카카오톡을 하기 위해 스마트폰을 구입한다고 하는 사용자도 있을 정도였다. 이제는 국민의 일상 속에 깊숙이 자리 잡았다고 해도 과언이 아니다. 명실상부 온 국민을 연결하는 스마트 커넥터로 자리잡았다.

 

모바일 메신저로 시작한 카카오는 혁신적 모바일 소셜 플랫폼으로 도약하며 ▲디지털 콘텐츠 ▲비즈니스 마케팅 ▲커머스 ▲게임 ▲패션 ▲음악 등 다양한 분야로 플랫폼 영역을 확장해 나가고 있다. 카카오 측은 “파트너, 개발사, 콘텐츠 창작자 등 수 많은 이해관계자와 함께 상생의 모바일 생태계를 구축하며 모바일 산업 성장에 디딤돌이 되고 있다”고 설명했다.

 

제휴 개발사와 힘을 합쳐 ‘게임하기’로 모바일 게임 산업에 활력을 불어넣었고 ‘플러스친구’로 모바일 마케팅 채널을 열었다. ‘선물하기’는 모바일 커머스 분야에 새로운 기회를 창출했으며, ‘이모티콘’으로는 콘텐츠 저작자와 수익을 공유하는 대표적 상생 비즈니스 모델로 디지털 컨텐츠 시장 활성화에 기여하고 있다. 또 모바일 디지털 컨텐츠 플랫폼 ‘카카오페이지’는 모바일 컨텐츠 시장의 패러다임 변화를 이끌었다는 평가를 받고 있다. 이 외에도 ‘카카오뮤직’을 통해 친구와 함께 듣는 소셜 음악 서비스라는 새로운 시장을 만들어가고 있다.

 

이러한 서비스를 바탕으로 카카오는 국내를 넘어 글로벌 시장을 타깃으로 적극적인 해외 진출 노력을 해오고 있다. 일본시장을 겨냥해 야후!재팬과 합작, ‘카카오 재팬’을 설립해 현지 모바일 시장을 공략하고 있다.

 

MySQL과 MariaDB의 콜라보레이션으로 DB 성능 강화

카카오의 성공 요인으로는 ‘타이밍’과 ‘속도’를 들 수 있다. 단 4명의 멤버로 TF를 구성해 두 달 만에 카카오톡을 개발한 카카오는 핵심기능으로 구성된 서비스를 빠르게 내놓고 사용자 피드백을 수렴해 발전시켜 나가는 전략을 구사하고 있다. 또 카카오톡과 카카오스토리의 방대한 소셜 그래프와 트래픽을 활용한 신규 플랫폼 확장에 주력했다. 여기에 모바일 소셜 플랫폼 시장 개척이라는 미션을 갖고 새로운 기회와 가능성을 만들어가고 있다.

 

이러한 카카오의 성공가두의 밑단에는 바로 공개SW DB의 적극적인 도입과 활용이 한 몫을 했다. 1억 명이 넘는 사용자를 보유한 카카오톡은 방대한 양의 메시지가 오간다. 텍스트를 비롯해 사진, 음성, 동영상 등 그 형태도 다양하다. 정형, 비정형 데이터가 난무하고 있다.

 

이러한 다양한 형태의 데이터들을 처리하기 위해 하나의 DB가 아닌 다양한 DB 솔루션을 도입해 적재적소에 활용하고 있다. 카카오 인프라실 DB엔지니어링 팀 이성선 팀장은 “유료 DB는 가급적 지양하고 있다”며, “빠른 데이터 처리를 위해 도움이 될 수 있다고 판단되는 솔루션은 다 사용하고 있다”고 설명했다.

 

현재 카카오에서 사용하고 있는 DB 솔루션은 MySQL을 비롯해 MariaDB, TokuDB, 맥캐쉬, 카산드라 등이다.

 

우선 카카오톡은 메신저 애플리케이션 출시 초기 MySQL을 DB로 사용했다. 그러나 카카오톡은 작년부터 MySQL을 MariaDB로 교체하는 작업을 시작했다. MySQL에서 제공하지 않는 기능들을 MariaDB에서는 제공하기 때문이다.

 


▲ 카카오톡의 DB 구성도

 

이성선 팀장은 “전면적인 교체라기보다는 두 DB의 단점을 서로가 보완해 준다고 보면 된다”며 “MySQL에서 제공하지 않는 기능을 MariaDB에서 제공하고 MariaDB에서 제공하지 않는 기능을 또 MySQL에서 제공해 주기에 두 DB를 함께 사용해 나가고 있다”고 설명했다. 즉, 두 DB를 징검다리처럼 서로 교차해가며 사용해 나간다는 것. 다만 MySQL의 경우 현재 1~2세트정도만 사용하고 있다는 것이 그의 설명이다.


두 DB를 함께 사용할 수 있는 이유는 바로 MariaDB와 MySQL이 쌍둥이와 같기 때문이다. MariaDB는 MySQL을 잘 활용해온 사람이라면 쉽게 접근할 수 있는 DB로써 아키텍처, 사용 매뉴얼까지 MySQL과 유사하다. 이는 MariaDB가 MySQL의 창시자인 마이클 몬티 위드니우스가 만든 공개SW DBMS이기 때문이다. MySQL과 동일한 코드에 기반을 두었고, 사용방법과 구조가 같다. MySQL과 99.99%의 바이너리 호환성을 제공한다.


다만 MySQL 5.5 버전이 지원하지 못하는 것이 바로 스토리지 엔진. 또 스레드풀처럼 MySQL에 있다가 사라진 기능을 MariaDB에선 제공한다든지 여러 측면에서 MariaDB가 낫다는 평가를 받고 있다. 또 MariaDB는 MySQL에 비해 초당쿼리처리 속도에서 2~10% 가량 빠르고 쿼리 최적화, 서브쿼리 지원, 조인 작업 시 색인 사용률 등에서 성능향상효과를 거둘 수 있다.
이성선 팀장은 “MySQL 5.5버전에서 지원하지 못하던 것을 MariaDB 기능으로 대체하고 다시 MySQL 5.6버전이 나오면서 추가되는 등 두 DB는 서로 상승효과를 주며 함께 발전하고 있다”며, “두 DB를 적절히 번갈아 가며 사용해 나가고 있다”고 설명했다.

 

대용량 DB, 분산 DB 등 빅데이터 처리 OK

카카오톡은 또 TokuDB, 멤캐시드, 카산드라 등의 DB 솔루션 등도 도입해 적극적으로 활용해 나가고 있다.

대용량 DB에 적합한 TokuDB는 로그(Log)를 쌓는데 활용하고 있다. TokuDB는 높은 확장성과 제로메인터넌스 다운타임(zero-maintenance downtime)을 지향하는 MySQL 스토리지 엔진으로, 인덱스 기반의 쿼리 속도 향상, 복제 성능 향상, 병렬화되지 않은 압축 및 온라인 스키마 변경이 가능한 것이 특징이다.

 

이성선 팀장은 “다만 아직은 QPS가 높은 OLTP상에서는 여러 안정성에서 문제가 발생하고 있기 때문에, 데이터 사이즈가 크고 QPS가 높지 않은 성격의 DB(로그 DB, 분석 DB 등)에 활용하고 있다”고 설명했다.

 

이 외에도 ▲분산DB 사용을 위한 NoSQL ‘카산드라’ ▲데이터 요청을 캐시에서 직접 서비스할 수 있고 데이터베이스에 연결된 디스크 스토리지에 대한 접근을 줄이기 위한 ‘멤캐시드’를 활용하고 있다고 전했다.

 

그는 또한 “NoSQL인 카산드라의 경우, 빅데이터 처리를 위해 분석팀에서 활용하고 있으며, 각 서비스 요소에 맞는 공개SW DB를 적재적소에 적절히 활용해 나가고 있다”고 말했다.



[인터뷰]


“공개SW 기반 저전력 서버 시장 개척할 것”

카카오 인프라실 DB엔지니어링 팀 이성선 팀장


카카오 이성선 팀장
▲ 카카오 이성선 팀장

Q> 카카오의 공개SW 도입 정책은?

DB의 경우 가급적 유료 SW는 지양한다는 것이다. 그리고 카카오 서비스에 도움이 될 수 있는 솔루션은 모두 다 쓸 계획이다. 현재도 MySQL과 MariaDB를 함께 병행해 사용하고 있다. MySQL에서 제공하지 않는 기능을 MariaDB가 제공하고, 그 반대의 경우도 있기 때문에 모든 DB SW를 버전별로 교체하는 게 아닌, 서로 교차해가면서 필요한 기능들을 모두 활용해 가고 있다.

 

Q> 공개SW의 경우 ‘누구도 책임지지 않는다’는 지적이 있다. 특히 DB의 경우, 이런 리스크는 클 듯한데?

커뮤니티 활성화가 너무도 잘 되어 있다. 또 공개SW라고 해서 무조건 지원이 안 된다는 건 오해다. MariaDB의 경우 준상용화되어 있다. 솔루션 자체의 배포는 무료지만, 서비스 지원 인력은 모두 준비되어 있다. 서비스를 원하면 저렴한 비용으로 서비스를 받을 수 있다. 특히 본사에서 커뮤니티에도 적극적으로 참여하는 등 빠르게 대응해 나갈 수 있도록 철저히 지원하고 있다.

 

Q> 공개SW 도입을 위해 개발자가 많이 필요하지 않나?

핵심개발을 위한 개발자는 반드시 필요하다. 하지만 개발자가 많이 필요하진 않다고 본다. 개발자의 수가 중요한 것이 아니라 바로 개발자와 실무자들의 협업이 필요하다고 본다.

 




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