1위 패션앱 ‘지그재그’ 급증한 DB관리 및 분석 방법은?

컴퓨팅입력 :2020/03/30 16:08

크로키닷컴이 운영하는 ‘지그재그’는 국내에서 가장 성공한 여성 쇼핑앱이다. 2015년 출시 후 현재 2천만 앱 다운로드 수, 월 이용자 수 300만 명, 2019년 6천억 원 이상의 거래액을 달성하며 국내 상위 패션 앱으로 자리 잡았다.

모바일 데이터 분석 플랫폼 앱애니가 발표한 ‘MAU 기준 상위 쇼핑 앱’에서 패션 앱 중 가장 높은 순위를 기록 중이다.

지그재그의 인기 요인는 3천700여 개의 여성 패션 쇼핑몰들을 한데 모아 하나의 커머스 앱처럼 이용할 수 있는 서비스다. 이 서비스는 급격하게 늘어나는 데이터를 효율적으로 관리하고 이를 분석해 고객이 원하는 것을 먼저 제시해야 한다.

소성운 데이터사이언티스트는 빠르게 성장하는 스타트업이 급격하게 늘어나는 데이터를 관리하고 분석 플랫폼을 구축한 지난 1년간의 과정을 소개했다.

국내 1위 패션앱 지그재그

■ 급격하는 성장하는 스타트업, 데이터레이크가 적합

지그재그는 지난해 급격하게 성장하며 데이터도 기하급수적 늘어나기 시작했다. 매일 1만 개 이상의 신상품이 업데이트됐고 매일 수십 기가바이트(GB) 단위의 이용자 활동 로그가 쌓였다. 데이터베이스(DB)가 너무 커지면서 이를 감당하지 못하고 서비스가 중단되는 상황이 발생할 정도였다.

내부에선 데이터를 활용한 개인별 상품 추천, 성과 분석, 쇼핑몰, 랭킹, 인기도 관리 사용자 모니터링, 이상감지 등의 요청사항이 이어졌다. 더불어 당시에 데이터 엔지니어가 없었기 때문에 회사에 최적화된 분석환경을 구축하기도 어려웠다.

소성운 데이터사이언티스트는 아마존 EMR 서비스를 활용해 가상서버인 EC2에 아파치 스파크를 적용해 분석환경을 구축했다. 대규모 데이터처리를 위해 필요한 분산프레임워크 아파치 스파크를 설치할 때 발생하는 복잡한 설정 과정을 클릭만으로 해결할 수 있었기 때문이다.

지그재그 소성운 데이터사이언티스트

분석환경은 마스터노드와 코어, 워크로드 등으로 분리해 구축했다. 클러스터를 관리하는 마스터노드는 꺼지지 않도록 온디멘드로 설정하고 데이터를 분석하거나 분산처리를 하는 코어나 워크노드는 스팟으로 설정했다.

소성운 데이터사이언티스트는 “스팟 인스턴스는 일종의 경매 시스템으로 높은 가격을 제시한 사용자에게 먼저 서버가 할당되는 방식”이라며 “실시간이나 항시 서버가 필요한 작업이 아니라면 스팟 인스턴스를 활용해 비용효율을 높일 수 있다”고 설명했다.

더불어 그는 스팟을 설정할 때 최저가보다 0.01달러 정도 높게 설정하는 편이라고 귀뜸했다.

지그재그의 데이터분석 아키텍쳐

지그재그는 매일같이 대규모로 쌓이는 데이터에 별도의 작업을 거치지 않고 우선 서버에 저장하는 데이터레이크 방식을 선택했다. 인력과 시간이 부족한 상황에서 일일이 사람이 데이터를 분류하는 것은 비효율적이라고 판단했기 때문이다.

소성운 데이터과학자는 “급격하게 성장중인 지그재그는 매일 데이터가 쌓일 뿐 아니라 새로운 기능이 끊임없이 나오고 기존 기능도 계속 바뀌는 상황이었다”며 “속도가 요구되는 상황에서 데이터를 일일이 활용할 수 있게 정리하기 어려웠기 때문에 데이터레이크 개념을 도입했다”고 설명했다.

다만 입력하는 데이터의 특성에 따라 저장하는 DB는 달라졌다. 지그재그는 상품 데이터는 다이나모DB, 이용자 정보는 RDS, 실시간으로 체크해야 하는 이용자로그는 키네시스를 사용했다.

글루 크롤러가 작성한 데이터 카탈로그

그는 여러 서버에 쌓인 데이터를 활용하기 위해 AWS 글루 크롤러를 활용했다. 글루 크롤러는 정리가 안 된 데이터를 활용할 수 있도록 테이블 이름, 경로 및 테이블 정보 등 데이터베이스 스키마를 자동으로 생성해 데이터 카탈로그를 만들어주는 기능을 제공한다.

데이터 카탈로그로 DB를 정리 작업을 마친 후 대화식 쿼리 서비스인 아테나를 이용해 EMR로 데이터를 처리하거나 재플린, 태블로 등을 활용해 데이터시각화를 위한 대시보드를 구축했다.

이어서 분석업무가 앱 서비스에 영향을 주지 않도록 주기적으로 스냅샷을 찍어 S3 분석용 DB를 분리했다. 분석용 데이터가 담긴 서버를 분리함으로써 분석을 위한 쿼리는 서비스용DB에 접근하지 않고 별도 서버에서 작업을 처리할 수 있게 됐다.

소성운 데이터과학자는 “회사가 커지고 데이터가 늘어나면 실무용 DB와 분석용 DB를 나누는 과정이 필요하다”며 “분석을 위한 쿼리는 복잡하고 노드가 많이 걸리기 때문에 서비스DB와 연동하면 장애를 일으킬 수 있기 때문”이라고”고 설명했다.

이어서 그는 “데이터웨어하우스와 데이터레이크는 모두 장단점이 있다”며 “빠른 처리를 위해 기존엔 데이터레이크를 중심으로 사용했지만 지금은 안정적으로 데이터를 처리하고 운영시스템 부하를 줄이는 등의 장점을 활용하기 위해 일부 데이터는 데이터웨어하우스로 이전 중”이라고 설명했다.

■ 업무에 맞는 빠른 서비스 찾아야

지난해 대규모 데이터를 안정적으로 다룰 수 있는 분석환경을 구축한 지그재그는 올해 기계학습 기반 분석 서비스에 관심을 보이고 있다.

Z결제라는 통합 결제 서비스를 선보이면서 개인 맞춤형 제품 및 콘텐츠 추천, 맞춤형 검색 결과 및 타겟팅된 마케팅 프로모션의 중요성이 커졌기 때문이다.

소성운 데이터과학자는 아마존 퍼스널라이즈를 활용 중이다. 아마존에서 사전에 학습시킨 인공지능(AI) 알고리즘이 적용된 기계 학습 서비스로 빠른 속도와 편의성이 특징이다.

사용자는 별도의 코딩 작업없이 사용자 및 상품, 인터렉션 등의 사전에 보유한 데이터 입력하고 원하는 기계학습 알고리즘을 선택하면 자동으로 AI가 분석한 데이터를 받아볼 수 있다.

소성운 데이터과학자는 이를 활용해 개인별 선호 아이템을 목록순으로 정리하거나 전체 이용자의 평균선호 아이템 등을 분석해 사내 운영팀 및 마케팅팀 등에 제공하고 있다.

그는 “퍼스널라이즈에 익숙해지면 데이터를 가공하고 AI를 학습시키고 엔드포인트로 배포하는 데 걸리는 시간이 하루면 된다”며 “우리가 개인 추천상품 서비스를 한 달 만에 만들고 배포할 수 있는 준비를 갖출 수 있었던 것도 퍼스널라이즈를 사용한 영향이 크다”고 말했다.

관련기사

소성운 데이터과학자는 “퍼스널라이즈를 잘 사용하면 원하는 기능이나 서비스를 만들고 기술검증(POC)하는 과정을 빠르게 진행할 수 있다”며 “급격하게 성장하며 내외부의 요구가 늘어나는 스타트업이라면 활용해보길 권한다”고 말했다.

그는 “인프라를 구축하거나 서비스 도입에 시간을 많이 허비해서 정작 분석업무를 하지도 못하고 데드라인을 넘어서는 사례를 많이 봤다”며 “속도가 중요한 상황이라면 최대한 빠르게 해결할 수 있는 방안을 찾길 바란다”고 강조했다.