무신사, Self-POS 도입으로 오프라인 쇼핑 경험 혁신!
무신사는 오프라인 매장 결제 대기 시간 감소 및 고객 경험 혁신을 위해 Self-POS(무인 계산대)를 도입
멀티UID 문제 해결을 위해 상품 데이터 관리 방식을 개선하고, RFID 전환을 고려한 하드웨어 설계를 진행
프론트엔드(Frontend)는 atom 기반 상태 관리 구조를 통해 결제 흐름의 일관성을 유지하고, 오류 발생 시 고객과 직원에게 차별화된 안내 제공
백엔드(Backend)는 기존 MPOS 시스템에 Self-POS 모드를 추가하여 코드 중복을 최소화하고, 직원 POS에서 수행하던 검증 로직을 서버 로직으로 명시화
QA팀은 실제 스토어 환경에서의 테스트와 원격 테스트를 병행하며, 하드웨어 프로필 관리 및 오류 모니터링 체계 구축
Self-POS 프론트엔드(Frontend) 아키텍처: 결제 흐름의 일관성 유지
무신사 Self-POS는 atom 기반 상태 관리 구조를 사용하여 결제 흐름을 관리하며, 사용자 인터랙션(User Interaction)뿐 아니라 다양한 외부 디바이스 이벤트(Device Event)에도 유연하게 대응한다.
단일 흐름(Single Flow) 유지: 화면 단위 분산 대신, 결제 전 과정을 하나의 상태 흐름으로 관리하여 흐름의 끊김 방지
상태 관리(State Management): 각 단계의 주요 데이터를 개별 atom으로 관리하고, 현재 단계에 따라 필요한 데이터를 조합하여 다음 요청 생성
디바이스 연동(Device Integration): 바코드 스캐너, 결제 단말기 등 다양한 외부 디바이스 이벤트가 결제 흐름에 개입하는 구조
결과적으로, 프론트엔드(Frontend)는 단순 화면 구현을 넘어 결제 흐름의 안정성(Stability)을 책임지는 역할을 수행한다.
백엔드(Backend) 아키텍처: 기존 MPOS 시스템 재활용
Self-POS는 기존 MPOS 시스템에 Self-POS 모드를 추가하는 방식으로 구현되어, 서버 분리(Server Separation)에 따른 복잡성을 최소화했다.
POS 타입(POS Type) 기반 분기: 기존 MPOS API에 POS 타입 필드를 추가하여, 직원/셀프 POS에 따라 다른 로직 적용
검증 로직 강화(Validation Logic Enhancement): 직원 POS에서 직원이 담당하던 검증(금액, 회원 등급, 수량)을 서버 로직으로 명시화
유연한 정책 관리(Flexible Policy Management): POS 타입별 할인 허용 여부를 조건 합성 방식으로 구현하여, 코드 배포 없이 정책 변경 가능
이러한 접근 방식은 코드 중복(Code Duplication)을 줄이고, 기존 시스템의 재사용성을 높이는 데 기여했다.
QA 테스트 전략: 현장 밀착형 테스트
Self-POS QA는 실제 스토어 환경에서 하드웨어(Hardware)와 소프트웨어(Software)의 상호작용을 검증하는 데 중점을 둔다.
하드웨어 연동 검증(Hardware Integration Testing): 스캐너, 영수증 프린터, 카드 단말기 등 하드웨어가 API 신호에 맞춰 정확하게 작동하는지 확인
하드웨어 장애 시나리오(Hardware Failure Scenario): 용지 부족, 스캐너 연결 해제 등 하드웨어 장애 발생 시의 인터페이스 처리 및 복구 로직 검증
현장 테스트(Field Test) & 원격 테스트(Remote Testing): 실제 스토어 환경에서의 테스트와 사무실 내 미니 스토어(Test-Bed) 구축을 통한 원격 테스트 병행
QA팀은 하드웨어 프로필 관리(Hardware Profile Management)를 통해 스토어별 하드웨어 설정 차이를 관리하고, 실시간 모니터링 체계를 구축하여 오류 발생 시 신속하게 대응할 수 있도록 지원한다.
멀티UID 문제 해결: 상품 데이터 관리 개선
무신사는 오프라인 스토어의 멀티UID(Multi-UID) 문제를 해결하기 위해 상품 데이터 관리 방식을 개선했다.
데이터 정리(Data Cleaning): 오프라인에서 판매하지 않는 UID는 '오프라인판매여부 = N'으로 정리하여 POS에 노출되는 상품 정보 단순화
직원 POS 한계 보완: 직원 POS에서 헷갈릴 수 있는 UID 선택 문제를 시스템적으로 해결
RFID 전환 대비: RFID 전환을 고려하여 하드웨어(Hardware)를 설계, 미래의 경험을 위한 기반 마련
이러한 노력은 고객의 결제 경험(Payment Experience)을 개선하고, Self-POS의 효율적인 운영을 가능하게 한다.
오류 처리 및 모니터링: 고객과 운영자를 위한 인터페이스
Self-POS는 오류 발생 시 고객과 운영자에게 적절한 정보를 제공하고, 시스템의 안정성을 확보하기 위해 노력한다.
오류 구분(Error Classification): 고객에게는 간결한 안내, 직원에게는 상세한 정보 제공
모니터링 체계 구축(Monitoring System): 텍스프리 및 결제 전후 로그, API 오류, 사용자 흐름 기반 세션 분석 등을 통해 오류 추적
유휴 시간(Idle Time) 기반 초기화 전략: 결제 중단 상황에 대비하여, 유휴 시간 기반 자동 초기화 기능 구현
결과적으로, Self-POS는 고객에게는 원활한 결제 경험(Seamless Payment Experience)을, 운영자에게는 효율적인 시스템 관리(Efficient System Management)를 제공한다.