#대용량 데이터
#이커머스 플랫폼
#데이터 처리
이커머스 플랫폼, 특히 지마켓과 같은 대규모 데이터 플랫폼은 방대한 데이터를 실시간으로 처리해야 합니다. 그래서 단순한 기능을 구현할 줄 알고 한 가지 데이터 처리 방식만 알아서는 쏟아지는 데이터를 처리하기가 어렵습니다. 데이터 종류나 상황에 따라 다양한 데이터 처리 방식과 기술 스택을 선택할 줄 알아야만 대용량 데이터를 실시간으로 처리할 수 있습니다.
실제 이커머스 플랫폼의 테크 리드에 따르면, 1TB급 대용량 데이터를 다루면서 다양한 데이터 처리 방식을 사용하고 여러 기능을 구현하고 있다고 합니다.
그렇다면 대용량 데이터가 흐르는 이커머스 플랫폼에서는 어떤 기능을 구현하고, 어떻게 대용량 데이터 처리를 진행하는지 한 번 알아볼까요?
<쿠* 급 이커머스 플랫폼 구현 과정>
아래 아키텍처는 실제 국내 1위 이커머스 플랫폼인 쿠*급의 대용량 데이터가 흐르는 과정을 볼 수 있어요!
이 흐름을 통해 이커머스 플랫폼 내의 주요 기능이 어떻게 구현되는지 함께 이해해봐요🙌
1. 실시간 가격 조정 기능
저희가 자주 사용하는 이커머스 플랫폼에서 위의 가격창을 볼 수 있죠? 이 가격창은 고정된 값이 아니라 판매나 재고 상황에 따라 가격이 계속 업데이트됩니다. 어떤 기능을 구현하고 데이터를 활용하는지 정리해봤어요.
✔ 구현 기능
상품 판매 데이터를 활용한 실시간 가격 조정 알고리즘
실시간 구매와 재고 수준을 Stream 형태로 받아 연산 처리
✔ 주요 데이터 소스
실시간 구매 이벤트 (구매 수량, 시간 등)
재고 수준
✔ 사용 기술
Apache Kafka: 실시간 구매 & 재고 스트림을 수집.
Apache Flink: 실시간 데이터 처리 및 가격 조정 알고리즘 실행.
Redis: 실시간 재고 수준 캐싱 및 빠른 데이터 접근.
2. 결제 & 구매 기능
고객이 상품을 구매하기 위해선 구매 기능이 있어야하겠죠? 또, 실시간으로 주문이 발생하기 때문에 실시간 주문, 결제, 재고에 따른 업데이트도 진행하고 있습니다.
✔ 구현 기능
상품 데이터와 백엔드 API를 활용한 실시간 주문, 결제, 재고 업데이트 기능
주문 생성 및 관리
결제 처리
재고 업데이트
✔ 주요 데이터 소스
실시간 구매 이벤트
상품 데이터와 백엔드 API 요청
✔ 사용 기술
Apache Kafka: 실시간 데이터 스트림 플랫폼
3. 재고 관리 기능
주문에 따라 재고 상황이 변하기 때문에, 재고도 계속 업데이트하며 고객분들께 현재 재고 상황을 알릴 필요가 있습니다.
✔ 구현 기능
재고 관련 API와 상호작용하며 데이터를 캐싱하고 업데이트함.
상품이 주문될 때마다 재고 수준을 확인.
주문이 완료되면 재고 수준을 감소시키고, Redis에 업데이트.
재고 수준이 임계값 이하로 떨어지면 알림을 생성.
✔ 처리하는 데이터 종류
실시간 구매 이벤트 (구매 수량)
재고 데이터
✔ 사용 기술
Redis: 재고 데이터 캐싱 및 업데이트
4. 발주 현황 관리
고객에게 상품 발송을 위해서 위 재고와 상호작용하며 신규 발주도 업데이트 해야겠죠?
✔ 구현 기능
재고 관련 API와 상호작용하며 실시간으로 신규 발주 현황을 관리함.
재고 업데이트 이벤트 발생 시 발주 여부 확인
발주 필요시 발주 요청 이벤트 생성
✔ 처리하는 데이터 종류
상품 데이터와 백엔드 API 요청
재고 데이터
발주 관련 API
✔ 사용 기술
Apache Kafka: 발주 요청 및 상태 업데이트 처리
Redis: 발주 데이터를 캐싱하고, 상태 데이터 조회&업데이트
이 기능들이 없다면 고객이 상품을 구매하고 받아볼 수 없겠죠? 구매가 일어나는 데이터 플랫폼에서는 꼭 필요한 주요 기능들입니다. 다음으로 알아볼 기능은 고객에게 더 나은 이커머스 플랫폼을 제공하기 위해 내부적으로 구현되는 기능들입니다.
5. 판매 리포트
이커머스 플랫폼 내부에서는 이 대용량 데이터가 흐르는 현황을 파악하기 위해 판매 리포트를 생성해서 확인하고 있습니다.
✔ 구현 기능
상품 판매 데이터를 활용한 상품 판매 리포트
필요한 판매 관련 데이터를 추출 및 변환하고, 필요한 계산을 수행.
정기적인 배치 작업으로 매출 리포트를 생성.
✔ 처리하는 데이터 종류
판매 이력 데이터
✔ 사용 기술
Apache Spark: 배치 처리를 위한 분산처리 엔진
Apache Airflow: 정기적인 처리를 위한 워크플로우 관리
6. 상품평 긍정/부정 분석 기능
이커머스 플랫폼에서는 여러 고객들이 상품평을 남기곤 합니다. 고객의 만족도를 확인하기 위해, 상품 구매 후기를 기반으로 만족도를 분석하고 있습니다.
✔ 구현 기능
상품 구매 후기 데이터를 활용한 상품 만족도 분석 기능
상품평 데이터를 벡터링하여 저장
Full-Text 검색 및 집계 기능을 활용하여 긍정/부정 분석 진행
✔ 처리하는 데이터 종류
상품 구매 후기 데이터
✔ 사용 기술
Elasticsearch: 대규모 텍스트 데이터를 저장하고 검색하는 분산 검색 엔진