올리브영, 전자라벨 시스템 최적화로 성능과 비용 두 마리 토끼를 잡다!

by DD
3개월 전
조회수 42

올리브영은 전국 1,300여 개 매장으로 전자라벨(ESL) 시스템을 확장하며 대용량 데이터 처리(Large-scale Data Processing)의 어려움에 직면함

Spring Batch Partitioning을 도입하여 데이터 처리 시간을 13일에서 5분으로 단축하고, DB Lock 경합(DB Lock Contention) 문제를 해결함

Aurora RDS Serverless v2를 도입하여 트래픽 변동에 유연하게 대응하고, 비용 40% 절감(Cost Reduction) 효과를 달성함

데이터 분할(Partitioning)과 클라우드 탄력성(Cloud Elasticity)을 통해 안정적인 시스템 운영(Stable System Operation)과 비용 효율성을 동시에 확보함

Spring Batch Partitioning을 활용한 배치 성능 개선

본문에서는 Spring Batch Partitioning을 통해 대용량 데이터 처리(Large-scale Data Processing) 문제를 해결한 과정을 설명한다. 기존 병렬 처리 방식(Multi-threaded Step)은 DB Lock(DB Lock)으로 인해 성능 향상에 실패했지만, Partitioning을 통해 데이터를 PK(Primary Key) 범위 기반으로 분할하여 각 워커가 독립적으로 처리하도록 설계했다.

데이터 분할(Data Partitioning): PK 범위 기반 논리적 격리

Lock Free 구조(Lock-Free Architecture): 각 워커는 할당된 PK 범위 내에서 집계 및 갱신 수행

DB Lock 경합 회피(DB Lock Contention Avoidance): 자원 침범 방지

결과적으로 13일이 소요되던 작업 시간을 5분으로 단축하는 획기적인 성능 향상을 달성했다.

RDS Serverless v2를 통한 인프라 비용 절감

올리브영은 트래픽 변동성에 대응하기 위해 Aurora RDS Serverless v2를 도입하여 비용 효율성(Cost Efficiency)을 확보했다. 기존 RDS On-Demand 방식은 피크 트래픽(Peak Traffic)에 맞춰 고정된 자원을 할당해야 하므로, 평시에는 자원 낭비가 발생했다.

자동 오토스케일링(Automatic Autoscaling): 트래픽 변화에 따라 DB 자원 자동 조절

즉각적인 확장(Instant Scaling): 데이터 폭주 시 지연 없는 대응

사용량 기반 과금(Pay-as-you-go): 유휴 자원 비용 절감

RDS Serverless v2 도입으로 고정형 인스턴스 대비 약 40%의 비용 절감 효과를 얻었으며, 운영 효율성 또한 향상되었다.

데이터 분할(Partitioning)과 Lock Free 아키텍처

본 글은 Spring Batch Partitioning을 통해 Lock Free(Lock-Free) 구조를 구현한 과정을 상세히 설명한다. 핵심은 데이터 간섭을 최소화하여 DB Lock 경합을 원천적으로 차단하는 것이다. 각 워커는 자신에게 할당된 PK 범위 내에서만 작업을 수행하므로, 서로 다른 데이터에 대해 독립적으로 집계 및 갱신을 수행한다.

PK 범위 분할(PK Range Partitioning): 데이터 격리

Lock Free(Lock-Free): DB Lock 회피

자원 효율성(Resource Efficiency): CPU 및 I/O 자원 활용 극대화

이러한 아키텍처는 대용량 데이터 처리 환경에서 안정적인 성능(Stable Performance)을 보장하며, 시스템의 확장성(Scalability)을 향상시키는 데 기여한다.

클라우드 네이티브 아키텍처의 중요성

올리브영의 사례는 클라우드 네이티브(Cloud Native) 아키텍처의 중요성을 보여준다. 단순히 클라우드 환경을 사용하는 것을 넘어, 탄력적인 자원 관리(Elastic Resource Management)를 통해 시스템의 안정성과 비용 효율성을 동시에 확보하는 것이 핵심이다.

탄력적 확장성(Elastic Scalability): 트래픽 변화에 유연하게 대응

비용 최적화(Cost Optimization): 사용량 기반 과금

운영 효율성(Operational Efficiency): 자동화된 자원 관리

결과적으로 클라우드 네이티브 아키텍처는 대규모 트래픽 처리(Large-scale Traffic Handling)지속적인 서비스 제공(Continuous Service Delivery)을 위한 필수적인 요소로 자리 잡고 있다.

오프라인 매장에 코드를 배포하다 Part 2: 올리브영 전자라벨(ESL) 최적화 여정