본문 바로가기

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

공개SW 활용 성공사례

‘月 천만 흥행 소셜커머스’ 티몬의 무한동력

소셜커머스 시장의 매출규모는 전년 3조 4천억원에서 올해는 최소 4조 3천억원 이상 성장할 전망이라고 한다. 유통시장에서 소셜커머스의 존재감은 빼놓을 수 없는 막강한 영향력을 떨치고 있다. 국내 대표적인 소셜커머스 업체인 티켓몬스터는 2010년 5월 창업당시만 해도 소규모 스타트업 기업에 불과했지만 지난해 매출 1조원을 돌파했다. 월간 방문자 수는 닐슨코리안클릭 기준으로 월 1,300만 명에 달한다. 천만 관객 영화가 화제지만 매달 천만 명이 넘는 소비자가 티켓몬스터를 찾고 있는 셈이다.

- 기     관 티켓몬스터
- 수행년도 2009년 12월∼2010년 5월(6개월)
- 도입배경 TCO 감소와 특정 벤더의 종속성, 의존도에서 벗어날 수 있다는 점, 개발할 때 제약 사항이 없다는 3가지를 위해 시스템 전반에 공개SW 적용
- 솔 루 션 MySQL, MariaDB, Redis, Memcached, Tomcat, Apache http Server 등
- 도입효과 : 비용 절약 효과는 물론 월 1,300만 명이 넘는 순 방문자를 대상으로 안정적인 서비스 구축

토종 소셜커머스 티켓몬스터는 지난 2010년 5월 10일 오픈했다. 현재 티몬은 쇼핑몰 시장을 주도하던 오픈마켓 월간 방문자 수인 1,500∼1,600만 명에 필적하는 수준까지 성장한 것. 고작 몇 명에 불과하는 직원 수도 이젠 1,000명을 훌쩍 넘겼다. 이런 슈퍼 스타트업이 운영 중인 月 천만 소셜커머스를 움직이는 건 바로 공개SW다.

 

개발 기간은 2009년 연말 시작해서 6∼7개월 가량 걸렸다. 초기 구축 인력은 5명, 단출한 시작이었다. 하지만 티켓몬스터는 이후부터 지금까지도 계속 고도화를 진행하고 있다. 폭발적인 성장을 거듭하면서 사이트도 덩치에 맞는 형태로 업데이트를 계속 해야 했기 때문이다. 그렇다 보니 개발자와 엔지니어 숫자도 초기와는 비교할 수 없을 만큼 늘었다. 직원 수는 1,200명 중 개발자와 DBA, 보안 관리 인력 등을 모두 합치면 200명에 이른다. 순수 엔지니어만 따져도 100명이다.

 

초기부터 지금까지 “공개SW만 썼다”

이 회사는 시스템 쪽엔 모조리 공개SW를 사용하고 있다. 아키텍처 유닛 최호익 팀장은 “티켓몬스터도 초기에는 흔히 스타트업이 그렇듯 PHP와 마이SQL 조합을 썼다”고 밝혔다. 티켓몬스터는 PHP를 메인 프로그래밍 언어를 사용 중이지만 향후에는 자바로 이행할 예정이다. 물론 지금은 과도기인 만큼 PHP와 자바가 혼재되어 있는 상황. 파이썬도 일부 쓰지만 신규 작업은 모두 자바로 진행하고 있다는 설명이다. 워낙 규모가 큰 탓에 언제 완전 전환이 이뤄질지 장담할 수는 없지만 전환 작업을 순차 실시하겠다는 것.

 

이렇게 전환을 시작하는 가장 큰 이유는 속도와 확장성 때문이다. 최 팀장은 티몬의 매출이 높아지고 트래픽이 증가하면서 기존 PHP 모듈로는 트래픽을 견디기 어렵기 때문이라고 밝혔다.

 

DB도 마찬가지다. 티켓몬스터는 초기에는 마이SQL 하나만 썼다. 하지만 이후 마리아DB를 비롯한 공개SW를 꾸준히 모니터링하다 지난 2013년 초부터 마리아DB를 순차 적용해보고 있다. 이번에 새로 나오는 마리아DB 10 버전 역시 내부에서 검토 중이라는 설명이다.

 

마리아DB를 검토하는 이유는 크게 2가지다. 첫 번째는 쓰레드풀이다. 쓰레드풀은 실제 내부에서 디스크에 액세스할 때 쓰레드를 생성하는데 이전에는 쓰레드를 하나 만들었다가 폐기하는 과정을 반복했다. 하지만 쓰레드풀을 이용하면 하나만 생성해서 계속 재활용할 수 있다. 쉽게 말해 메모리를 마음대로 늘릴 수 있는 기능으로 생각하면 쉽다. 그런데 마이SQL의 경우 이 기능은 상용인 엔터프라이즈에만 들어가 있다. 이에 비해 마리아DB는 이 기능을 기본 지원한다.

 

두 번째 이유는 샤딩(Sharding) 기능 때문이다. 샤딩은 소프트웨어적으로 DB를 분산 처리할 수 있는 구조를 만들어주는 기술이다. 마리아DB 10 버전이 이를 지원한다. 티켓몬스터가 10 버전을 고려하는 것도 유연한 확장을 감안한 것이다.

 

시스템 유닛 배상선 엔지니어는 “향후에는 마이SQL 5.6과 마리아DB 10 등을 고려하고 있지만 함부로 마리아DB로 한꺼번에 바꾸기에는 매일 사업을 진행하는 티켓몬스터의 특성상 금방 고려하긴 어렵다”면서 최종적으로 어떤 걸 택할지는 테스트 이후 결정할 계획이라고 덧붙였다.

 


▲ 티켓몬스터 공개SW 서비스 구조도

 

티몬이 공개SW를 쓰는 3가지 이유

티켓몬스터는 앞서 설명했듯 상용은 아예 쓰지 않는다. 이젠 엄청난 규모를 자랑하는 사이트인데 왜 그럴까. 최 팀장은 공개SW를 택한 이유를 3가지로 설명했다. 가장 큰 건 TCO(Total Cost of Ownership)다. 처음에는 TCO 측면에서 유리하니 스타트업 시절 마이SQL를 쓰지만 도입해서 써보니 튜닝만 잘하면 상용보다 불편할 게 전혀 없다는 것이다.

 

다음은 특정 벤더의 종속성, 의존도에서 벗어날 수 있다는 것이다. 예를 들어 상용DB에는 고유 펑션, 기능 같은 게 있는데 이런 걸 공개SW와 함께 쓰면 제거하고 가기 어렵다는 것. 티켓몬스터의 경우 마이SQL로 시작해 지금은 마리아DB로 전환하기도 쉽다. 선택의 자유가 있다는 게 장점이라는 설명이다.

 

마지막은 공개SW를 쓰게 되면 개발할 때 제약 사항이 없다는 장점이 있다는 것이다. 배상선 엔지니어는 “상용은 개발할 때 이런 식으로 하라고 강제한 게 있지만 공개SW는 필요한 기능을 구현할 때 마음대로 원하는 방향으로 개발할 수 있다는 게 장점”이라면서 개발 측면에서 봤을 때 커스터마이징, 최적화에 장점이 있다고 말한다. 최 팀장은 이런 점을 들어 “앞으로도 공개SW 외에는 쓸 계획이 없다”고 잘라 말한다.

 

물론 공개SW가 장점만 있는 건 아니라고 말한다. 최 팀장은 공개SW는 장점이 많은 반면 버그리포팅, 패치에 대한 책임이 별로 없다는 점이 단점이라고 말한다. 티켓몬스터 내부 개발팀은 이를 위해 ‘기술 내재화’를 강조하고 있다. 물론 아직까지 미흡한 면이 있기 때문에 2013년부터 컨설팅 업체를 통한 기술 지원도 병행해서 받고 있다. 월 천만 명 이상이 찾는 사이트인 만큼 규모에 맞게 상용에 걸맞은 기능이나 스펙이 필요하게 됐고 일반 수준으로 지원하지 않는 기능은 컨설팅 업체 등과도 협의를 한다는 것이다.

 

공개SW를 쓰는데 컨설팅업체로 비용을 들인다? 그렇다면 공개SW의 장점이 사라지는 건 아닐까. 최 팀장은 “비용적인 면에선 비교가 안 된다”고 잘라 말한다. 티켓몬스터 내부 DB는 모두 40대. 만일 상용DB를 설치한다고 가정하면 싸게 해도 대당 2억, 산술적으론 80억원이라는 막대한 비용이 발생한다. 일부 상용DB의 코어당 라이선스 비용은 2,400만원 가량인데 티켓몬스터에 들어가는 코어가 128개이니 그야말로 엄청난 금액이다. 상용DB의 경우 여기에서 끝나는 게 아니라 유지보수 비용만 연간 20%를 내야 한다. 공개SW와 상용을 비교하는 건 DB 하나만 봐도 게임이 안 된다는 설명이다. 국내 대기업이 운영하는 쇼핑몰 상당수는 상용DB를 사용 중인데 라이선스 비용만 연간 20∼40억 원 가량이 들어간다. DB만 따져 봐도 그렇다는 얘기다. 티켓몬스터는 아파치나 톰캣 같은 공개SW도 사용중이다. 그런데 이를 상용으로 바꾸면 카피당 라이선스가 적어도 2,500만원에서 3,000만원은 든다. 오픈마켓 판매 단가는 대당 1%, 종합몰은 3∼4% 가량이다. 아무리 연간 조 단위 매출을 해도 이런 상용 서비스로 인한 비용은 순이익 면에선 부담스러운 면이 존재할 수밖에 없다.

 


▲ 티켓몬스터 사이트 화면

 

최 팀장은 물론 성능이 좋다면 그 비용을 들일 수도 있지만 문제는 그게 아니라는 것이라고 강조한다. 그 역시 이전 직장에서 상용DB를 8년 가량 써봤지만 버그 많고 다운 많은 건 똑같다는 얘기다. 제품 자체가 좋더라도 그 정도 비용을 들여서 쓸 정도는 아니라는 얘기다.

 

배상선 엔지니어는 초기 스타트업의 경우 비싸서 상용을 쓰지 않은 측면도 있지만 성능도 솔직히 아키텍처만 잘 짜면 차이가 없다고 말한다. 물론 상용은 인력 수급 고민이나 운영상 리스크를 줄인다는 장점이 있지만 TCO 측면, 튜닝을 잘하면 공개SW 역시 성능상 차이가 별로 없다는 점이 흠이라는 것이다.

 

기술 내재화 박차, 2천만 서비스도 공개SW로

티켓몬스터를 한 달에 방문하는 순 방문자 수는 지난 7월 기준으로 1,300만 명에 이른다고 한다. PC와 모바일 비율은 7:3, 모바일이 압도적이다. 최 팀장은 모바일 역시 모두 공개SW로 시스템이 구성되어 있다고 귀띔했다.

 

지난해 티켓몬스터의 매출은 1조원. 올해는 1조 5,000억원을 훨씬 뛰어넘을 전망이다. 내부에선 이를 감안하면 트래픽도 지난해보다 훨씬 늘어날 것으로 보고 있다. 이에 대비해 메인DB를 여러 모듈 단위로 쪼개서 앞서 설명한 샤딩 같은 걸 도입하는 등 실제 DB가 받는 부하를 분산시키는 작업을 할 예정이다. 정확하게 수치상으로 말할 수는 없지만 한 달에 몇천 만까지는 충분히 가능해질 수 있게 하는 것이다. 기존보다 이론상 50% 부하를 줄이면 실제로는 25% 이상은 충분히 쾌적해진다. 물론 지금도 쾌적하지만 앞으로의 트래픽 상승을 감안해 이런 작업을 계속해갈 예정이라는 설명이다. 최 팀장은 전체적인 개발 방향이나 목표를 묻는 질문에 “가장 중요한 과제는 장애가 없는 쾌적한 트래픽 해소”라고 강조한다. 배상선 엔지니어는 내부에선 느려도 장애로 본다면서 고객 입장에서 조금만 느려도 다른 곳으로 금세 가버릴 수 있는 만큼 이를 쾌적하게 해결하는 것, 또 앞으로의 모든 서비스도 상용으로 될 서비스 수준을 공개SW로 모두 하겠다는 것 2가지라고 덧붙였다.


 

[인터뷰]


“상용SW? 앞으로도 모든 걸 공개SW로 해결할 것”

최호익 아키텍처 유닛 디렉터·배상선 시스템 유닛 팀원

 

최호익 팀장과 배상선 엔지니어(사진 왼쪽부터)는 공개SW의 장점으로 TCO 감소와 벤더 의존도 탈피, 자유로운 개발 환경 조성이라는 3가지 장점을 들었다.


최호익 아키텍처 유닛 디렉터·배상선 시스템 유닛 팀원

 

Q. 공개SW를 적용한 가장 큰 이유가 있다면, 또 앞으로 상용을 쓸 계획은 있나?

A. 가장 효과라고 얘기할 만한 건 비용이다. TCO. 역시 비용 절감이다. 그 다음에는 벤더 종속적인, 의존적인 것에서 벗어날 수 있다는 것. 벤더 종속성에서 벗어난다는 것의 의미다.

지금 현재 단계에선 상용SW 사용을 전혀 고려하고 있지 않다. 상용을 쓴다고 가정했을 때, 그 정도 비용을 들여서 사이트가 안정적이고 다운도 안 된다면 쓸 수도 있겠지만 그것도 아니다. 내부에서의 목표는 앞으로의 서비스도 상용으로 되는 걸 모두 공개SW로 해결하는 것이다.

 

Q. 티켓몬스터가 활용 중인 공개SW에 대해 간단하게 소개해 달라.

A. MySQL 커뮤니티 버전의 경우 메인 서비스 트래픽을 가볍고, 빠르게 처리할 수 있도록 설정을 하여 사용하는 용도로 사용한다. MariaDB는 MySQLDB보다 다양한 옵티마이저 구성이 필요하고, 다양한 추가 기능이 필요할 때 쓴다. Memcached는 NoSQL 제품으로 작은 크기 데이터를 메모리에 올려놓고 빠른 속도를 제공한다. 데이터베이스 서버 부하 감소를 위해 사용하는 용도인 것. Redis 역시 NoSQL 제품으로 Memcached와 용도는 비슷하지만 파일에 저장하는 기능이 추가 되어 있다. 그 밖에 아파치나 톰캣, 파이썬 등 티켓몬스터 서비스를 구성하는 요소는 모두 공개SW라고 생각하면 된다.




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