brunch

You can make anything
by writing

- C.S.Lewis -

by 호달 Jul 05. 2020

카페24로 이렇게까지 해봤다!?

- 카페24 기반 커머스에서 데이터 파이프라인 구축하기 -

이곳에 입사하기 전 면접에서 들었던 첫 질문은 이러했다. "이곳에는 데이터를 전부 Excel 형태로 내려받아 활용해요, 그래도 괜찮겠어요?" 순간 당혹스러운 표정을 감추기 어려웠다. 면접을 이곳저곳 보러 다녀 봤지만 회사의 부족한 부분을 먼저 들어보긴 처음이기 때문이었다. 하지만 한편으론 도전하고, 극복하고 싶은 욕심이 생겨 흥미가 생기기도 하였다.


막막한 카페24의 환경


입사 후 카페24의 주문 데이터를 내려받아보니, 면접에서 왜 그런 질문을 했었는지 이해되었다. 데이터 전체를 한 번에 내려받을 수 있는 것이 아닌 최대 6개월, 용량이 많아지면 다음 날 다운로드, 특정 데이터는 카페24 담당자에게 직접 요청 등 많은 걸림돌이 눈앞에 펼쳐졌기 때문이었다.

아직도.. 생성 준비 중..?

심지어 서비스 오류도 상당히 많았다. 무려 4개월 전에 요청한 데이터가 아직도 생성 준비 중인 것처럼 요청 건이 제대로 해결되지 않기도 했다. 즉 데이터조차 마음대로 뽑아서 활용할 수 있는 환경이 아니었다. 도리어 Excel 형태로 내려받는 것조차 원활하게 이루어지지 않는 구조였다. 이런 상황이 지속된다면, 전체 데이터를 파악하는 것으로 시간을 많이 잡아먹을 것이 뻔했다. 나는 빠르게 다양한 걸 시도해야 한다고 생각했고, BigQuery 와 카페24 API를 활용하여 데이터 환경을 만들자고 생각했다.



자체 DB를 가지자!
= BigQuery


앞서 언급한 불편함이 왜 일어나는지 고민해봤을 때 결론은 하나였다. "데이터가 우리의 것이 아니다!" 카페24에서 데이터를 어렵게 내려받아도 그것들을 종합할 수 있는 도구가 없었다. 이러한 상황에서 나는 데이터를 관리할 데이터베이스(DB)가 필요했다. 많은 DB도구 중에서 나는 구글에서 제공하는 다양한 기능과 원활하게 연동이 가능한 BigQuery를 선택했다. 그 외에 특징은 다음과 같다.


1. 클라우드 서비스로 설치/운영이 필요 없음
2. SQL 언어 사용
3. 클라우드 스케일의 인프라를 통한 대용량 지원과 빠른 성능
4. 데이터 복제를 통한 안정성
5. 배치와 스트리밍 모두 지원


BigQuery를 도입하는 건 어렵지 않았다. 그냥 마우스 클릭으로 사용할 수 있도록 만들기만 하면 되었다. 문제는 카페24에 속한 데이터를 우리의 공간으로 옮기는 것이었다. 모든 데이터를 내려받아 수동으로 업로드하는 것은 굉장히 비효율적이었다. 다행히도 카페24에서는 API를 활용하여 데이터를 추출할 수 있는 방법이 존재했고, 최고의 데이터 파이프라인 팀과 함께 데이터를 BigQuery에 적재하기 시작했다.


한줄기 빛 카페24 API!


카페24 API를 간략하게 소개하자면, RESTful한 아키텍쳐로서 카페24 쇼핑몰에 연동하여 서비스를 제공하기 위한 입점 개발사, 솔루션 업체, 서드파티 등에 제공하는 API이다(자세한 설명은 카페24 개발자센터에 들어가면 나와있음). 아래 이미지와 같이 카페24 API의 전반적인 데이터 플로우는 이렇다. 나의 경우 사실상 쇼핑몰 운영자 측에서 주도적으로 데이터를 추출하는 것이므로 Client 항목을 거치지 않고 다이렉트로 카페24와 소통하는 구조로 이루어졌다.

이미지 출처: 카페24 개발자센터


API로 받은 데이터를 BigQuery로


카페24 API를 통해 추출한 데이터를 BigQuery에 옮기기 위한 방법으로 GCP(구글 클라우드 플랫폼)의 Compute Engine과 젠킨스를 사용했다(Compute Engine과 젠킨스를 활용한 예시는 추후에 자세하게 설명하도록 하겠음). Compute Engine을 통해 카페24 API를 다룰 공통 작업공간을 생성하고, 젠킨스로 지속적인 배포(DB 업로드, 수정 등)를 하였다. 특히 데이터별 특징에 따라 적재 방식이 다른데, 젠킨스는 이러한 경우를 효율적으로 관리하기 좋았다.


안타까운 제약조건


"BigQuery와 카페24 API를 통해 데이터를 자유롭게 뽑을 수 있게 되었습니다!"로 끝났다면 엄청난 해피앤딩이었을 것이다. 하지만 카페24 API에도 상당한 제약조건이 있었다. 가장 큰 이슈는 주문 데이터였다. 주문 데이터의 경우 최근 6개월만 API로 추출이 가능하고 그 외엔 담당자에게 요청하거나, 막노동을 통해 Excel로 데이터를 받아야 했다. 또한 카페24 데이터 변경 이슈를 API로 추적하는 것은 거의 불가능에 가까워 회원데이터 변경 또는 주문내역 변경(환불 등)등의 이슈가 있는 경우 BigQuery에 적재된 데이터와 실제 이력이 다를 수 있었다. 이를 해결하기 위해 주문 데이터의 경우 가장 메인이 될 데이터이기 때문에 많은 리소스를 투자하여 종합하였고, 데이터 변경이슈는 데이터 특성에 맞게 최대한 데이터가 정확할 수 있는 방향으로 기획하여 진행하였다. 그렇게 성공적으로 데이터 파이프라인을 구축하였다.




이젠 현실이 되어버린 자체 DB


카페24 쇼핑몰 솔루션에서 데이터 파이프라인을 구축한 내용을 글로 정리해보니 생각보다 복잡하지 않아 보이지만, 생각보다 많은 부분을 체크하고, 테스트하고, 기획했던 과정이 숨어있다. 이러한 노고를 함께한 최고의 데이터 파이프라인 팀에게 감사의 말을 전하고 싶다.  


입사하고 가장 큰 고민인 2개를 해결하며 진짜 유저와 상품을 들여다볼 수 있게 되었다. 앞으로 흥미로운 주제를 직접 맞이할 수 있다는 생각에 행복에 잠기게 된다. 또한 큰 고민을 해결하면서 나의 소중한 그로스팀 동료인 남타비님, 메이님, 아멜리아님과 함께 성장할 수 있는 발판이 된 것 같아 기쁘다.

매거진의 이전글 데이터가 없는데, 분석을 하라고?

매거진 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari