pile·
백엔드·oliveyoung올리브영 테크블로그·

고객의 1초를 줄이기 위해, POS 결제 구조를 다시 설계하다

전국 1,380개 매장 POS·SCO를 운영하는 올리브영이 결제 처리 속도를 52% 단축하고 이중화 구조를 갖춘 사례를 다룬다. 복잡도가 누적된 레거시 API 호출 구조와 단일 장애점, 카드 혜택 수동 처리가 핵심 문제였다. BIN 기반 자동 경로 분기와 장애 시 자동 전환 로직, 카드 혜택 자동 식별 시스템으로 이를 해결했다.

핵심 포인트
  • 전국 1,380개 매장 POS/SCO 대상 결제 처리 속도 52% 단축
  • BIN(Bank Identification Number) 기반 자동 경로 분기로 카드사별 최적 경로 선택
  • 이중화 구조 + 실시간 모니터링으로 단일 장애점 제거
  • 카드 혜택(할인·포인트) 자동 식별 시스템으로 수동 처리 제거
  • 오프라인 결제 특성(즉시성·안정성 요구)에 맞는 아키텍처 설계 원칙 공유
상세 정리
  • 기존 구조: 결제 유형별 API를 순차 호출, 로직 누적으로 응답 지연 증가
  • 문제 1: 복잡한 분기 로직이 단일 모듈에 집중되어 변경 비용·버그 위험 높음
  • 문제 2: 백업 구조 없이 결제 대행사 장애 시 전체 서비스 중단 위험
  • 문제 3: 카드 혜택 적용을 운영자가 수동 확인·처리 → 오류·지연 발생
  • 해결책 1: BIN 앞 6자리로 카드사 식별 후 최적 경로로 자동 분기
  • 해결책 2: 주 경로 장애 시 대체 경로 자동 전환, 복구 시 자동 원복
  • 해결책 3: BIN 기반 카드 혜택 DB 구축, 결제 시 자동 매핑
  • 성과: 결제 처리 응답 시간 52% 단축, 무중단 전환 달성
  • 모니터링: 경로별 응답 시간·성공률 실시간 집계, 이상 감지 시 자동 알림
  • 오프라인 특성 반영: 네트워크 불안정 환경에서도 동작하는 타임아웃·재시도 정책 적용
  • 설계 원칙: 결제 로직과 혜택 로직 분리, 각 카드사 연동을 플러그인 구조로 관리
왜 읽나오프라인 POS 환경에서 레거시 결제 구조를 개선하며 속도·안정성·자동화를 동시에 달성한 실전 아키텍처 리팩터링 사례다.
oliveyoung
올리브영 테크블로그 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·twilio-engTwilio Engineering·

    Programmable Messaging에서 Verify API로 마이그레이션하기

    Twilio의 Programmable Messaging API로 자체 OTP 솔루션을 운영하던 서비스가 Verify API로 전환하는 방법을 코드 예시와 함께 설명한다. Verify는 OTP 전송·검증을 위한 전용 API로, 전화번호 구매, 토큰 생성, DB 저장·만료 관리를 내부에서 처리해 개발자가 직접 구현할 코드를 크게 줄인다.

    요약 이어보기
    #authentication#twilio#sms+2
  2. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 2부

    포스타입 백엔드 엔지니어가 벡터 기반 개인화 추천 시스템을 실제 운영하며 맞닥뜨린 성능 장애와 용량 문제를 해결한 과정을 담은 2부다. 수백만 개의 벡터 KNN 검색이 피크 시간대에 전체 Elasticsearch 검색 성능을 흔드는 문제부터 클러스터 OOM 사태까지, 쿼리 최적화와 인프라 분리 두 가지 경로로 근본 해결에 이른다.

    요약 이어보기
    #elasticsearch#vector-search#recommendation-system+2
  3. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 1부

    포스타입이 태그 기반 추천의 한계를 극복하고 벡터 임베딩 기반 개인화 추천 시스템을 구축한 과정을 담은 1부다. 유사한 콘텐츠가 다른 용어를 쓰거나 동일한 태그가 전혀 다른 톤의 콘텐츠를 가리키는 문제를 임베딩 벡터로 해결하고, OpenSearch의 HNSW ANN 검색으로 수백만 벡터를 실시간 검색하는 시스템을 구축해 구매율 15% 향상을 달성했다.

    요약 이어보기
    #opensearch#vector-search#recommendation-system+2