본문 바로가기

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

공개SW 활용 성공사례

500만 다운로드의 원동력 공개SW

VCNC(Value Creators & Company)는 ‘비트윈(Between)'이라는 커플 전문 소셜네트워크서비스(SNS)를 제공하는 스타트업 기업이다. 기존의 SNS가 공개된 공간에서 무한한 사회관계를 형성하는 서비스인 반면 비트윈은 연인 간의 사생활을 보호받을 수 있는 폐쇄형 SNS로서 한국은 물론 전 세계 연인들의 사랑을 듬뿍 받고 있다. 비트윈은 SNS에 대한 역발상 아이디어뿐만 아니라 다양한 공개SW를 활용하여 보다 안정적인 서비스를 제공하고 있으며, 그 결과 서비스 시작 2년여 만인 2013년 12월에는 500만 다운로드를 돌파하는 등 끊임없이 새로운 성과를 거두고 있다.

- 기     관 VCNC
- 수행년도 2011년 11월 ~ 현재
- 도입배경 급변하는 트래픽에 유연하게 대응할 수 있는 스케일 인/아웃 필요
- 솔 루 션 HBase, Java, Netty, Thrift, Zookeeper
- 도입효과 : 확장성이 뛰어난 HBase와 공개SW들을 활용하여 순간적으로 증가하는 DB 사용량에 효과적으로 대응, 자체적인 HBase 트랜잭션 라이브러리 개발로 트랜잭션 이슈 해소

단 한 명의 사용자만 친구로 등록할 수 있는 역발상 SNS 서비스 ‘비트윈’는 국내는 물론 해외의 연인들에게도 각광을 받고 있다. ‘국민 커플앱’이라는 별명까지 얻으며 2년여 만에 500만 다운로드를 돌파하는 기록을 세운 비트윈의 개발사인 VCNC는 무수히 많은 스타트업 기업 중에서도 단연 돋보이는 기업이다.

 

비트윈의 한국 사용자 비중은 60%. 나머지 40%가 해외 사용자이며 일본, 동남아시아, 중국과 미국 순으로 사용자를 늘리고 있다. VCNC는 2013년 12월 20일 비트윈 2.0을 발표하며 국내 사용자들에겐 더욱 다양한 편의를 기능을 제공하고, 글로벌 유저들에게는 더 좋은 수준의 서비스를 제공하기 위해 박차를 가하고 있다. 또한 자체 서비스뿐만 아니라 구글에서 2억5,800만 달러를 투자받으며 실리콘벨리를 깜짝 놀라게 했던 프리미엄 리무진 서비스 ‘우버’와 제휴하는 등 사용자 편의 서비스 제공과 수익모델 다각화를 위한 노력도 아끼지 않고 있다.

 

공개SW로 구성된 치밀한 아키텍처 구축

비트윈은 커플들 사이에 사진과 메모, 채팅, 기념일 등 다양한 정보를 공유할 수 있도록 만들어진 서비스로 주로 연인과 부부 사이의 소통과 기록을 하는데 애용되고 있다. 매일 수천만 건의 메시지를 주고받으며 수십만 건의 사진들이 비트윈을 통해 공유되고 있다. 이 서비스는 많은 양의 데이터를 효과적으로 관리하고 편리한 서비스를 제공할 수 있도록 다양한 공개SW를 활용하고 있다. 먼저, API 서버는 Java를 사용하고 있으며, 대부분의 API를 HTTP로 호출하고 채팅은 모바일 네트워크상에서의 전송 속도를 위해 TCP 상에서 프로토콜을 구현하는데, Netty를 통해 이 두 가지의 사용자 요청을 처리한다. Netty는 HTTP와 TCP 프로토콜을 한 번에 구현할 수 있을 뿐만 아니라 뛰어난 성능을 발휘하기 때문에 주요하게 활용되고 있다.

 

이 밖에 API서버의 모든 서비스는 Thrift로 구현하고, 사용자를 여러 서버에 밸런싱하며 이 정보를 여러 서버에서 공유하는 데에는 ZooKeeper를 활용한다.

 

그리고 가장 빼놓을 수 없는 공개SW가 바로 HBase다. 비트윈 서비스의 경우 대부분의 트랜잭션이 채팅에서 발생한다. 매일 수시로 발생하는 수천만 건의 트랜잭션을 처리하기 위해 RDBMS에 비해 확장성이 우수한 HBase를 채택했다.
VCNC는 이러한 공개SW들을 치밀하게 구성하여 인스턴스의 숫자만 늘리면 쉽게 서비스 규모를 확장시킬 수 있는 아키텍처를 구현했다. 트래픽의 양이 변경되면 여러 대의 서버를 유연하게 변경하며 운영할 수 있도록 하기 위한 방법으로는 AWS(Amazon Web Service)를 활용하고 있다.

 


▲ 비트윈의 초기 아키텍처

 

HBase 도입으로 DB 확장성 확보

VCNC가 사용하고 있는 여러 공개SW 중 단연 돋보이는 것은 NoSQL 데이터베이스인 HBase다. HBase를 비트윈 서비스의 메인 데이터베이스뿐만 아니라 데이터 분석을 위한 DW(Data Warehouse)로도 활용하고 있다.

 

VCNC의 김명보 Value Developer는 HBase 도입의 가장 큰 목적으로 확장성을 꼽는다. RDBMS를 사용할 경우 사용자의 증가에 따라 함께 늘어나는 DB 사용량을 대응하기 어렵기 때문이다. 가령 비트윈 서비스의 경우 피크 시간대의 초당 메시지는 1만 건이 넘는데, 이를 병렬적으로 확장 가능한 HBase의 여러 대 서버로 분산처리하여 저장하고 있다. 만약 RDBMS를 사용한다면 이런 작업을 위해 Cache layer를 따로 두거나, 직접 사용자의 데이터를 샤딩(Sharding)하는 운영 관리를 해 줘야 할 것이다. 이런 번거로움을 HBase를 통해 덜고 DB 확장성을 확보한 것이다.

 

HBase 트랜잭션 라이브러리 해인사 개발과 노하우 공유

VCNC는 얼마 전 해인사(Haeinsa)라는 트랜잭션 라이브러리를 개발하여 공개했다. 서비스 초기부터 사용하던 HBase는 다른 NoSQL과 마찬가지로 트랜잭션을 제공하지 않으며, Cassandra와 MongoDB처럼 하나의 행이나 하나의 도큐먼트에 대한 원자적 연산만 제공한다. 문제는 여러 행에 대한 연산을 원자적으로 실행하는 트랜잭션 기능이 없다면 서비스 개발에 어려움을 겪을 수밖에 없으며, 비트윈 개발팀 역시 이런 문제의 해결을 위해 여러 노력을 기울였다. 그 결과 간단한 코딩을 통해 여러 행에 대한 트랜잭션을 쉽게 사용할 수 있는 라이브러리 해인사를 개발하여 서비스에 적용하고 이를 다시 공개한 것이다.

 


▲ 해인사와 HBase의 트랜잭션 처리량 성능 테스트 결과

 

김명보 Value Developer는 “해인사 이외에도 HBase를 좀 더 편하게 사용하기 위한 툴이나 라이브러리를 개발할 계획”이라며, “HBase는 널리 사용되기 시작한 지 얼마 되지 않아서 RDBMS에 비해 사용의 편의성이 낮은 편인데, 이런 부분들을 보완하는 HBase를 기반으로하는 Graph DB 프로젝트도 계획 중”이라고 말했다.

 

VCNC는 사용자의 편의와 안정적인 서비스를 운영하며 얻어진 HBase와 공개SW들의 적용사례, 설정 및 코딩 내용 등을 자사의 기술 블로그(engineering.vcnc.co.kr)를 통해 공개하며 지식 공유를 통한 상생 발전의 문화 정착에도 힘쓰고 있다.

 

▲ 비트윈의 모바일 화면 캡쳐



[인터뷰]


“공개SW 커뮤니티에게서 받은 혜택을 기술 공유로 작게나마 보답할 것”

VCNC 김명보 Value Developer


VCNC 김명보 Value Developer

Q> VCNC의 기술 공개 정책 목표는 무엇인가

특별한 기술 공유 정책이 있는 것은 아니지만 우리회사의 개발자들이 비트윈 서비스를 개발하면서 많은 혜택을 입고 있는 공개SW 커뮤니티의 작게나마 보답하고자 하는 목적이 크다.

 

그 밖에는 단기적인 효과와 장기적인 효과를 기대하고 있는데, 단기적으로는 개발자 리쿠르팅에 큰 도움이 된다는 점이다. 이제 시작한지 3년차에 불과한 소프트웨어 벤처기업에 훌륭한 개발자들이 모여들기란 쉽지 않다. 대부분의 스타트업이 채용 시 기술적으로 챌린징하고 재미있는 문제를 해결한다는 점을 어필하고 있지만, 회사 외부의 개발자들이 보기에는 설득력이 떨어지는 공허한 목소리가 되는 경우가 많다. 하지만 블로그나 여러 컨퍼런스 등을 통해 지속적으로 우리의 개발 노하우를 공유하여 개발자들에게 우리의 매력을 어필할 수 있을 거라고 생각한다. 실제로 엔지니어링 블로그를 오픈한 이후 개발자와 개발 인턴 채용이 훨씬 수월해졌다. 사실 처음에는 블로그 운영 1년쯤 후에야 이런 효과를 얻을 수 있을 거라고 예상했지만, 블로그의 내용이 SNS를 통해 빠르게 공유되면서 개발자들 사이에서의 인지도가 빠르게 높아져 우리 스스로도 놀라고 있다.

 

장기적으로는 우리가 자주 사용하고 있는 공개SW에 대한 사용자가 늘어남으로서, 다시 그 개발자 커뮤니티로부터 우리가 또 다른 기술적 노하우를 배울 수 있을 것이라고 기대하고 있다.

 

Q> 공개SW 도입을 고민 중인 스타트업에게 조언을 한다면

스타트업이라면 최대한 공개SW를 채택하여 비용을 절감하는 것이 옳은 방법이라고 생각한다. 자신들에게 필요한 상용SW와 유사한 기능을 지원하는 공개SW가 있다면 공개SW를 선택하고 그 사용 중에 발생하는 문제를 직접 해결하는 편이 좋다. 국내외 공개SW 커뮤니티를 잘 찾아보면 현재 자신이 겪고 있는 것과 유사한 문제를 겪었던 사람들이 만들어 놓은 솔루션이나 라이브러리도 있을 것이다. 이를 직접 사용하거나 참고하여 활용한다면 공개SW 큰 어려움을 겪지 않고 공개SW를 활용할 수 있을 것이다.




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