올리브영 테크블로그 포스팅 리드타임 3일, 글로벌 매장 개발자가 출장지에서 일하는 법
Tech

리드타임 3일, 글로벌 매장 개발자가 출장지에서 일하는 법

LA 매장 순환 재고조사 PDA PoC를 단기간에 만든 기록

2026.09.14


안녕하세요, 올리브영 글로벌 매장 서비스를 개발하고 있는 백엔드 개발자 봉자언니🐱입니다. '올리브영 글로벌 매장'이라 하면 생소하신 분이 계실 수도 있을 것 같은데요, 올리브영은 지난 5월 미국 캘리포니아주 패서디나에 미국 첫 매장을 열었고, 6월에는 LA 센추리시티에 두 번째 매장을 열어 운영 중입니다. 관련 소식이 궁금하신 분들은 아래 기사를 참고하셔도 좋겠습니다.


CJ 뉴스룸

美 패서디나 뒤흔든 CJ올리브영, 이달 LA '센추리시티점' 추가 출격

2026년 5월 29일 캘리포니아주 패서디나에 미국 첫 매장이 문을 열었습니다. 개점 첫날 4개 블록에 걸쳐 400m 대기줄이 이어졌고, 한 번에 200명 수준으로 입장 인원을 조절하며 운영했습니다.

기사 보기 →

CJ 뉴스룸

CJ올리브영, 美 '패서디나점' 이어 LA '센추리시티점'서도 K뷰티 돌풍

6월 13일 LA 웨스트필드 센추리시티 쇼핑몰에 두 번째 매장이 문을 열었습니다. 250㎡ 규모로 스킨케어 매대를 국내 표준매장의 1.5배로 구성했고, 개점 첫날 100m 넘는 대기줄이 이어졌습니다.

기사 보기 →

왜 올리브영 개발자들이 LA까지 재고를 조사하러 갔을까

최근 저를 포함한 글로벌 매장 서비스 담당자들은 LA 매장의 정기 재고조사를 돕기 위해 출장을 다녀왔습니다. 재고조사는 매장 직원이 하는 일인데, 왜 PM과 개발자가 직접 비행기를 타고 출장을 가야 했을까요? 그 이유는 크게 두 가지였습니다.

첫째, 현지 직원들은 올리브영이 국내에서 운영해 온 방식의 재고조사를 경험한 적이 없어, 절차를 함께 한 번 끝까지 돌려 보며 자리를 잡아야 했습니다. 둘째, 국내 매장에서 쓰는 재고조사 도구가 글로벌 매장에는 아직 갖춰져 있지 않아, 새로 개발한 기능이 현장에서 제대로 작동하는지 직접 확인해야 했습니다.

며칠간의 노력 끝에 다행히 재고조사를 잘 마쳤는데요, 이후 진행한 매장 직원의 인터뷰에서 재고 관리와 관련한 새로운 요구사항 하나를 만나게 됩니다. 이번 글에서는 그 요구사항 해결을 위해 출장 귀국 전 3일 동안 BPO(Business Process Owner)·PM·개발자·QA 엔지니어가 한 공간에 모여, 매장 직원의 요구사항을 업무용 모바일 단말(PDA) 기능으로 만들어 낸 경험을 공유하려고 합니다. 참, 그 전에 매장에서 재고를 오차 없이 관리하는 것이 왜 중요한 문제인지 먼저 짚고 넘어가볼게요.

올리브영 패서디나점 매장 외관

매장 재고 오차, 어디서 생기고 어떻게 다루나

'재고 수량을 센다'는 일은 언뜻 들으면 단순해 보입니다. 보통은 창고에 쌓인 박스를 세는 장면을 떠올리기 쉽지만, 매장 재고조사는 조건이 다릅니다. 상품은 진열대와 백룸, 창고에 흩어져 있고, 세는 동안에도 계속 팔려 나가고 새로 들어옵니다. 손이 많이 갈 수밖에 없습니다. 그런데도 건너뛸 수 없습니다. 아무리 정확하게 세어도 오차는 다시 벌어지고, 옴니채널 구조에서는 그 오차가 온라인으로도 번지기 때문입니다.

1. 장부재고와 실재고가 벌어지는 지점

매장에는 두 가지 재고가 존재합니다. 시스템에 기록된 수량인 장부재고(이 글에서는 시스템 재고와 같은 뜻으로 씁니다), 그리고 실제로 진열대와 창고에 놓여 있는 수량인 실재고입니다. 이 둘은 아무리 잘 운영해도 아래의 이유로 시간이 지나면 벌어지기 쉽습니다.

  • 상품 분실 및 파손
  • 계산 과정에서의 오스캔 또는 누락
  • 입고 과정에서의 누락 또는 과입고
  • 반품·매장 간 이동·폐기·테스터 전환 등 판매 외 변동의 기록 누락

2. 매장 밖으로 번지는 오차

매장 재고 데이터는 발주량 산정의 기준이 될 뿐 아니라, 온라인몰의 재고 표시와 즉시배송 주문 가능 여부까지 그대로 이어집니다. 특히 올리브영의 오늘드림처럼 매장 재고를 그대로 온라인 판매 가능 재고로 쓰는 옴니채널 구조에서는, 매장 재고 오차의 비용이 일반 리테일보다 훨씬 큽니다.

  • 시스템 재고가 실재고보다 많으면, 고객이 주문한 뒤 매장에서 상품을 찾지 못해 품절 취소가 발생합니다.
  • 시스템 재고가 실재고보다 적으면, 팔 수 있는 상품이 온라인에서 품절로 표시되어 판매 기회를 잃습니다.
  • 오차가 섞인 판매 및 재고 데이터는 다시 발주량을 왜곡해, 다음 오차의 원인이 됩니다.

💡 올리브영이 국내 매장 재고를 어떤 데이터 파이프라인으로 관리하고 있는지는 옴니채널 재고 정합성 한계에 대응하는 인벤토리 데이터 파이프라인 구축기에서 자세히 다루고 있습니다. 기초재고 및 수불 같은 용어가 궁금하시다면 함께 읽어보시면 좋습니다.

3. 순환 재고조사라는 절충안

가장 정확한 방법은 전 품목을 한 번에 세는 전수조사입니다. 그런데 이건 사실상 매장 영업을 멈추거나, 밤을 새워 해야 하는 일이라 자주 할 수 있는 방식이 아닙니다. 그래서 리테일 업계에서 일반적으로 쓰는 방식이 순환 재고조사(Cycle Counting)입니다. 전체 품목을 한 번에 세는 대신 조사 대상을 잘게 쪼개서, 매장 영업 중에 조금씩 돌아가며 세는 방식입니다.

대상을 쪼개는 기준은 '상품의 회전 속도'와 '분실 위험'입니다. 작고 비싸서 자주 없어지거나 빠르게 팔려 나가는 상품은 오차가 금방 쌓이니 자주 세고, 부피가 커서 눈에 잘 띄고 잘 움직이지 않는 상품은 드물게 셉니다. 흔히 이 구분을 A·B·C 등급으로 부릅니다.

이 방식이 잘 돌아가려면 시스템은 두 가지를 수행해야 합니다. 먼저, 조사 대상은 시스템이 정해 매장에 전달해야 합니다. 매장 직원이 스스로 고르게 하면 세기 쉬운 상품만 반복해서 세게 되고, 정작 오차가 잘 생기는 상품은 계속 밀리기 때문입니다. 센 결과는 장부재고와 맞춰 처리해야 합니다. 차이가 났을 때 처리 기준이 없으면 세어 놓고도 시스템 재고는 그대로여서, 조사한 의미가 사라지기 때문입니다.


A·B·C 등급별 조사 주기에서 시작해 카운트 실행, 시스템 재고 대조를 거쳐 차이가 없으면 종료하고 차이가 있으면 재고 조정으로 이어지는 흐름도
그림 1. 순환 재고조사 흐름 (참고: 리테일의 일반 예시)

요구사항은 한 줄, 귀국까지 남은 시간은 3일

이번 LA 출장에서도 위와 같이 정기 재고조사를 마친 뒤, 평소 직접 대면해 듣기 어려운 매장 직원분들의 이야기를 듣고자 인터뷰를 진행했는데요. 그 자리에서 순환 재고조사 기능에 관한 요구사항이 나왔습니다.

🧑‍💼 Pasadena Store Staff(패서디나 매장 직원)
"It would really help with store inventory management if the PDA had a cycle counting feature, something that lets us count stock on a regular basis." (PDA에 재고 수량을 주기적으로 조사할 수 있는 순환 재고조사 기능이 있으면 향후 매장 재고 관리에 큰 도움이 될 것 같아요.)

앞서 살펴본 대로 시스템이 무엇을 셀지 정하는 일, 그리고 카운트한 결과를 시스템 재고와 맞출 수 있는 기능을 만들어 달라는 의미였습니다. 그런데 이 요구사항을 들은 시점에 저희에게 남은 시간은 단 3일밖에 없었고, 귀국 전까지 디자인과 기획, 개발, QA, 사용성 검증까지 그 안에 어떻게 담을지 쉽게 답이 서지 않았습니다. 한국에서 똑같이 매장 서비스를 만든다고 해도, 글로벌 매장은 국내와 개발 조건이 꽤 다르기 때문입니다.

1. 국내와 다른 글로벌 매장의 서비스 개발 조건

첫째, 물리적 거리 때문에 만든 화면을 현장에서 확인할 수 없습니다.

매장 서비스는 매장 직원이 실제 업무 중에 무리 없이 쓸 수 있는지가 가장 중요합니다. 국내라면 개발자가 매장에 나가 직원 옆에서 같은 동작을 몇 번 해 보면, 어느 단계에서 사용성이 좋지 않은지, 어디서 문제가 생기는지 바로 보이기 마련입니다. 하지만 글로벌 매장 서비스는 아직 한국 개발자들이 만들고 있어, 그 확인 자체가 물리적으로 어렵습니다.

둘째, 시차 때문에 질문 하나에 하루가 걸립니다.

현지 직원 입장에서는 질문 하나에 답을 받기까지 평균적으로 1일이 소요됩니다. PM 및 개발자 역시 서비스 개발 과정에서 "이 화면에서 수량은 어느 단위로 세나요?"와 같은 사소한 확인 질문 하나가 또 하루를 소모하고, 그 답을 받고 나서 또 다른 의문이 생기면 계속해서 시간이 지연됩니다.

셋째, 일하는 방식이 다릅니다.

현지 직원들은 미국 리테일 브랜드의 업무 방식에 익숙합니다. 매장의 주요 기능은 현재 웹 백오피스로 개발되어 있지만, 이들은 태블릿이나 PDA 같은 모바일 기기로 매장을 운영하는 쪽을 더 편하게 여겼습니다. 기능의 밀도도 달랐습니다. 국내 매장은 오래 운영된 만큼 절차가 많아지고 화면도 복잡해진 반면, 현지 직원들은 올리브영 자체가 처음이라 단계가 적고 디렉션이 명확해야 운영이 됩니다. 실제로 첫 매장을 오픈할 때는 이런 차이를 미리 알지 못해 국내 운영 방식을 그대로 반영한 기능을 만들었는데, 현지에서는 운영을 어려워했습니다. 뒤에서 이야기하겠지만, 이번 PoC에서 핵심 기능만 남기기로 한 데에는 그때의 경험이 바탕이 되었습니다.

2. 문제 해결 속도를 떨어뜨린 기존 6단계의 일하는 방식

현장 요구사항 발생 → BPO 정리·전달 → PM 기획 → 디자이너 화면 설계 → 개발자 구현 → QA 검증

기존에는 매장 서비스 개발이 위의 6단계를 차례로 거쳤습니다. 이 방식은 각 단계마다 담당자가 명확하고, 국내 매장처럼 요구사항의 맥락이 조직 전체에 공유돼 있을 때는 이 프로세스가 잘 작동합니다. 문제는 각 단계마다 시차에 따른 대기가 한 번씩 끼어든다는 점이었습니다. 실제 작업 시간보다 소통을 위해 대기하는 시간이 더 길어지는 구조였죠. 이번 매장 직원 인터뷰에서 나온 한 줄의 요구사항도, 원래대로라면 이 6단계를 차례로 통과해 몇 주 뒤에나 현장에 닿았을 것입니다.

3일에 맞춘 범위와 설계 판단

하지만 이번 출장에서는 요구사항을 낸 매장 직원과 BPO·PM·개발자·QA 엔지니어가 모두 한 자리에 있었습니다. 소통에 쓰이는 대기가 줄어들었으니, 3일 만에도 요구사항 구현이 가능할 거라는 믿음으로 저희는 작업에 착수했습니다.

1. 범위를 좁히기 위한 기준을 어떻게 세울 것인가

3일 안에 끝내는 방법은 빨리 만드는 것이 아니라 적게 만드는 것이었습니다. 그런데 무엇을 만들지 정하는 데 하루를 쓰면 정작 만들 시간이 없어집니다. 그래서 첫날 회의에서 기준을 하나만 세웠습니다. 없으면 매장 직원이 업무를 못 하는 기능만 남기고, 나머지는 전부 다음으로 미루기로 했습니다. 다음은 이 기준으로 나눈 결과입니다.


PoC 범위에 남길 것 (+) PoC 범위에서 덜어낼 것 (-)
· 매장 운영 백오피스(어드민) 내 조사 미션 생성/할당 기능

· PDA 내 미션별 재고 카운팅/저장 기능
· 디자인

· 권한 분리

· 다양한 조회 조건

· 예외 승인 플로우 등

이렇게 최소한의 핵심 기능만 남겨 3일 동안 PoC로 만든 것이 바로 Cycle Counting 기능입니다. 조사 주기 도래 → 시스템이 조사 대상을 지정해 PDA에 표시 → 매장 직원이 상품을 스캔해 실재고 등록 → 차이 수량을 재고 조정으로 연결해 시스템 재고에 반영하는 흐름입니다. 짧은 기간이었지만 넘어갈 수 없는 설계 판단이 몇 가지 있었습니다.

PoC(Proof of Concept): 새로운 기능의 가능성을 신속하게 검증하기 위해 핵심 기능으로 최소한의 형태를 구현하는 단계


3일 만에 완성한 PDA PoC, Cycle Counting 기능

2. 조사 대상을 누가 정할 것인가

앞서 살펴본 대로 조사 대상은 매장이 아니라 시스템이 지정해야 합니다. 그래서 이번 PoC에서는 등급별 자동 산정까지는 넣지 못했고, 대신 최소한의 형태로 다음과 같이 정리했습니다.

  • 순환 주기는 기본값을 일주일로 하되 조정할 수 있게 했습니다.
  • 조사 대상은 본사 어드민에서 담당자가 지정해 미션으로 내보냅니다.
  • 대상 목록은 조사 일정이 도래하면 PDA 화면에 바로 보입니다.

3. 스캔에서 저장까지 몇 번에 끝낼 것인가

매장 직원이 실제로 쓰는 화면이라 조작 단계 수가 곧 사용성입니다. 상품을 스캔하고 수량을 입력하는 동작이 몇 번의 터치로 끝나는지가 중요했습니다.

  • 상품을 스캔하는 순간 카운트 수량이 1 올라갑니다. 시스템 재고는 이 시점에 바뀌지 않고, 뒤의 승인 단계에서 반영됩니다.
  • '상품 스캔 → 담당자 입력 → 완료' 외의 동작은 넣지 않았습니다.
  • 권한 제어 대신 '담당자 입력'으로 복잡도를 낮췄습니다.

4. 차이가 났을 때 무엇을 신뢰할 것인가

재고조사 기능의 핵심은 사실 세는 것이 아니라 '차이가 났을 때 무엇을 할지'입니다. 실재고를 그대로 장부에 덮어쓰면 이 재고를 함께 쓰는 다른 시스템의 수량까지 틀어질 수 있고, 반영하지 않으면 조사를 한 의미가 없습니다.

  • 승인 체계를 새로 만드는 대신, 기존 '재고 조정' 기능의 승인 플로우를 그대로 재사용했습니다.
  • 카운팅한 수량이 시스템 재고와 다르면 차이 수량이 그대로 재고 조정 수량으로 연결됩니다.
  • 매장 직원이 조사를 완료하면 해당 미션이 잠기고 재고 조정 승인 대기로 넘어갑니다.
  • 승인 담당자가 반영을 확정하는 즉시 시스템 재고에 반영됩니다.

사흘 동안 실제로 일한 방식

이렇게 판단을 마친 뒤 계획대로 기능 개발에 들어갔습니다. 개발 기간은 사실상 하루였고, 범위에는 백엔드뿐 아니라 PDA 프론트 화면까지 들어 있었습니다. 백엔드 개발자인 제가 하루 안에 프론트까지 붙이는 것은 평소라면 어려운 일정이었습니다. 사흘은 이렇게 흘러갔습니다.


시점 무엇을 했나
D-3 현장 요구사항을 BPO·PM·개발자가 함께 듣고, 핵심 기능만 최소한의 범위로 좁혔습니다.
D-2 개발자와 QA 엔지니어가 나란히 앉아 개발했습니다. 개발된 기능을 바로 검증하며 실시간으로 수정했습니다
D-1 매장에서 직접 운영 검증하여 추가 수정하고, 매장 직원에게 기능을 교육했습니다.
귀국일 매장이 실제 업무에서 쓰기 시작했습니다. 요구사항을 들은 지 사흘 만이었습니다.
그 후 범위를 좁히며 남겨 둔 확장 지점들이 다음 단계의 출발점이 되었습니다.



개발자와 QA 엔지니어가 나란히 앉은 귀국 D-2 (어라...? 이게 되네...?)

1. 순차에서 병렬로 작업하기

이번에는 세 역할이 같은 테이블에 앉아 동시에 시작했습니다. 앞 단계의 산출물을 기다릴 일이 없으니 검토와 요청, 그 사이의 시차 대기도 함께 사라졌습니다.


기존: 순차 이번: 병렬
· 현장 → BPO → PM 기획 → 디자인 → 개발 → QA

· 앞 단계가 끝나야 다음 단계 시작

· 단계 사이마다 검토·요청, 그리고 시차 대기
· PM 기획 · 개발 · QA 테스트 설계를 같은 날 동시에

· 디자이너 화면 설계 단계는 생략, 개발자가 화면을 바로 만듦

· 막히면 문서 대신 옆자리에 바로 묻기

2. 최소 스펙 한 장으로 방향 맞추기

세 사람이 동시에 일하면 서로 다른 것을 만들 위험이 생깁니다. 그걸 막아 준 것이 PM이 인터뷰 내용을 직접 정리하며 만든 최소 스펙이었습니다. PM은 이 스펙으로 화면 흐름을 정하고, 개발자는 이 스펙으로 코드를 만들고, QA 엔지니어는 이 스펙으로 테스트 케이스를 만들었습니다. 서로 다른 문서를 보며 일하는 순간이 없었기 때문에, 중간 산출물을 넘겨받아 다시 검토하는 단계 자체가 필요 없었습니다.

방향을 맞추는 규칙도 단순했습니다. 스펙에 없는 판단이 필요하면 문서에 적어 두는 대신 옆자리에 바로 물었고, 검증은 정상 흐름이 끝까지 통과하는 것을 먼저 확인한 뒤 예외로 넘어갔습니다.

3. 각자의 단계를 어떻게 압축했나

병렬로 작업을 돌려도 각 역할의 작업 시간이 하루를 넘으면 소용이 없기 때문에 AI를 적극 활용했습니다. 역할마다 AI에 맡긴 부분과 사람이 직접 한 부분이 달랐습니다.

[개발] 초안은 AI가, 판단은 사람이

기획서(최소 스펙)를 입력으로 세 가지 초안을 AI로 뽑았습니다. 익숙하지 않은 PDA 화면(프론트) 초안, 백엔드 API 스켈레톤, 그리고 기존 재고 조정 코드를 읽혀서 만든 연동부입니다. 하루라는 시간을 쓰는 방법은 두 가지였습니다. 익숙한 백엔드를 먼저 끝내고 남은 시간에 화면을 붙이거나, 익숙하지 않은 영역을 AI에 맡기고 제가 판단해야 하는 부분에 시간을 쓰는 것. 저는 후자를 택했습니다. 재고조사에서 틀리면 안 되는 부분은 화면이 아니라 수량 계산과 차이 처리 로직이었기 때문에, 그 부분은 직접 구현하고 검토했습니다.

[QA] 테스트 케이스는 AI가, 커버리지 검토는 사람이

QA 엔지니어는 사내 품질 엔지니어링 조직이 운영하는 AI 기반 테스트 분석·설계 도구를 활용했습니다. 같은 최소 스펙을 입력으로 개발 범위를 짚고, 코드 레벨의 커버리지까지 반영한 테스트 케이스를 짧은 시간 안에 뽑아내는 것이 도구의 역할이었습니다. 사람의 역할은 그 뒤였습니다. 만들어진 케이스를 검토해 커버리지에 빈 곳이 없는지 확인하고, 도구가 스펙만으로는 잡아내기 어려운 예외 상황은 QA 엔지니어의 경험으로 보탰습니다.

[테스트] 정상 흐름 먼저, 예외는 그다음

먼저 정상 흐름(happy path)인 미션 생성 → PDA 스캔·카운팅 → 완료 → 재고 조정 승인이 끝까지 통과하는지 확인하고, 그다음 예외 항목을 하나씩 봤습니다. 개발자와 QA 엔지니어가 나란히 앉아 있었기 때문에 케이스가 실패하면 그 자리에서 고치고 다시 돌리는 식으로 검수 사이클도 짧아졌습니다.

3일의 성과와 남은 과제

그동안 요구사항을 말해도 반영까지 몇 주가 걸리던 매장 직원들이, 자신들의 의견이 사흘 만에 화면으로 돌아오는 경험을 했습니다. 가장 필요한 기능만 남긴 화면이라 별도의 매뉴얼 없이 짧은 교육만으로 다음 날부터 바로 업무에 쓸 수 있었습니다.

성과는 숫자로도 확인됐습니다. PoC를 시작한 8월 13일부터 9월 1일까지 약 3주 동안, 두 매장에서 37개의 조사 미션이 만들어지고 그중 32개가 완료되어 401개 상품의 실재고를 카운팅했습니다. 같은 기간 두 매장에서 이뤄진 재고 조정 건수도 37건이었는데, 그중 92%가 Cycle Counting을 거친 것이었습니다. 재고 차이를 찾아 장부에 반영하는 실제 업무가 이 기능을 통해 돌아가기 시작했다는 뜻입니다.

더 반가운 건 사용 빈도였습니다. 8월 말에 있었던 주간 회의에서 패서디나 매장이 먼저 "주 2회 정례 운영으로 매뉴얼화하고 싶다"고 요청해 왔는데, 실제로는 그 뒤 5일 연속으로 매일 사용해 요청한 빈도를 스스로 넘어섰습니다. 위 3주 집계 가운데 12개 미션·104개 상품이 이 5일에 몰려 있습니다. 현장에서는 선임 직원이 미션을 만들고 매장 직원이 PDA로 카운팅하는 역할 분담도 자연스럽게 자리를 잡았습니다.


조사 미션 카운팅한 상품 재고 조정 연계 비중
32 / 37
생성된 미션 중 완료 (완료율 86.5%)
401 Item
약 3주간 두 매장 누적
92%
같은 기간 재고 조정 37건 중 34건이 Cycle Counting 경유
LA 2개 매장 합산 성과 (9/1 기준)

PoC는 범위를 좁힌 만큼 한계도 분명합니다. 남은 과제는 세 가지입니다.

  • 권한 분리: 누가 조사하고 누가 승인하는지를 '담당자 입력'으로 대신하고 있어, 운영 규모가 커지면 역할별 권한이 필요합니다.
  • 조사 대상 자동 산정: 회전 속도와 분실 위험에 따른 A·B·C 등급을 시스템이 매기지 못해, 아직은 선임 직원이 대상을 직접 지정해야 합니다.
  • 승인 플로우 재사용의 제약: 기존 '재고 조정' 승인 플로우를 그대로 쓰기 때문에, Cycle Counting에만 필요한 예외 처리는 아직 다루지 못합니다.

이 과제들은 현장에서 함께 듣고, 같은 자리에서 동시에 만들고, 바로 확인하는 방식으로 하나씩 풀어 갈 계획입니다. 그리고 올리브영의 해외 매장이 늘어나는 만큼, 기술과 일하는 방식도 함께 넓혀갈 예정이니 앞으로도 많은 관심 부탁드립니다. 감사합니다!


LA 출장을 마무리하며 찍은 올리브영 글로벌 매장 외벽 광고
GlobalStoreInventoryAI
올리브영 테크 블로그 작성 리드타임 3일, 글로벌 매장 개발자가 출장지에서 일하는 법
🐱
봉자언니 |
Back-end Engineer
하얀 고양이 봉자를 그리워하는 백엔드 개발자입니다.