목차
안녕하세요, 케이트리솔루션입니다.
O2O라는 말, 한 번쯤 들어 보셨을 겁니다. Online to Offline, 온라인과 오프라인을 잇는 서비스라는 뜻입니다. 앱으로 예약하고 매장에서 이용하는 것, 앱으로 결제하고 매장 문을 여는 것이 모두 O2O입니다.
말로 하면 간단한데 막상 만들어 보면 그렇지 않습니다. 저는 팀장으로 무인 스터디카페 운영 시스템 개발을 이끌었습니다. 고객용 모바일 앱, 원장님용 관리자 프로그램, 매장 키오스크를 하나로 잇는 O2O 서비스였습니다. 오늘은 그때 배운 것을 중심으로 O2O 서비스를 만든다는 게 실제로 어떤 일인지 이야기해 보겠습니다.
O2O는 앱 하나가 아니라 화면 세 개의 약속입니다
O2O 서비스를 처음 기획하시는 분들은 대개 고객용 앱부터 떠올립니다. 그런데 무인 스터디카페 하나만 해도 최소 세 가지 화면이 함께 움직였습니다.
- 고객이 쓰는 모바일 앱: 좌석을 고르고 이용권을 사고 드나듭니다.
- 매장에 놓인 키오스크: 앱이 없는 손님도 좌석을 잡고 결제하며, 출입문을 엽니다.
- 원장님이 보는 관리자 화면: 매출, 회원, 좌석 현황을 보고 매장을 관리합니다.
이 세 화면은 서로 다른 사람이 다른 장소에서 쓰지만, 같은 사실을 보고 있어야 합니다. 손님이 키오스크에서 3번 좌석을 잡았다면 그 순간 앱에서도 3번 좌석은 사용 중으로 보여야 하고, 원장님 화면의 좌석 배치도에도 바로 반영돼야 합니다. 그래서 좌석 현황은 화면을 새로 고치지 않아도 실시간으로 갱신되도록 만들었습니다.
O2O 서비스의 핵심은 결국 이것입니다. 온라인에서 일어난 일과 매장에서 일어난 일이 한 서버로 모이고, 모든 화면이 그 서버의 사실을 똑같이 보여 주는 것입니다. 어느 한쪽이라도 어긋나면 손님은 비어 있다던 자리에 갔다가 다른 사람을 만나게 됩니다.
무인 운영에서 가장 어려운 건 예외 상황입니다
직원이 있는 매장에서는 문제가 생기면 사람이 해결합니다. 무인 매장에서는 그 순간 아무도 없습니다. 그래서 무인 운영 시스템을 만들 때 시간을 가장 많이 쓴 건 정상 흐름이 아니라 예외 상황이었습니다.
대표적인 것이 인터넷이 끊겼을 때입니다. 출입과 결제가 모두 서버와 주고받으며 돌아가는데, 연결이 끊기면 매장 기기가 혼자 판단해야 합니다. 이때 문을 잠근 채로 두면 매장 안 손님이 나가지 못할 수 있습니다. 그래서 제가 개발한 무인매장 키오스크 앱은 연결이 끊기면 화면에 안내를 띄우고 출입문을 열어 두었다가, 연결이 돌아오면 안내를 내리고 문을 다시 닫도록 만들었습니다.
원격 조작도 같은 이유로 필요했습니다. 원장님이 매장에 가지 않고도 관리자 화면에서 입실기와 퇴실기의 문을 열고 닫거나, 키오스크 앱을 다시 시작할 수 있게 했습니다. 사람이 상주하지 않는 매장에서는 이 버튼 몇 개가 직원 역할을 대신합니다.
키오스크 단말 자체도 단단히 붙잡아 둬야 했습니다. 손님이 뒤로가기를 눌러 단말의 홈 화면으로 빠져나가지 못하도록 매장 화면에 고정하고, 전원이 다시 켜지면 키오스크 앱이 자동으로 실행되게 했습니다.
화면은 자주 바뀌고, 기기는 그대로 둡니다
매장에 놓인 기기는 한 번 설치하면 쉽게 손대기 어렵습니다. 그런데 화면에 들어가는 안내 문구나 이용 방법은 자주 바뀝니다. 바뀔 때마다 매장을 돌며 단말 앱을 새로 설치해야 한다면 매장이 늘수록 감당이 안 됩니다.
그래서 무인매장 키오스크 앱은 역할을 나눴습니다. 손님이 보는 화면은 웹으로 불러오고, 출입문이나 카드결제처럼 기기를 직접 다루는 일만 앱이 맡았습니다. 화면을 고칠 때는 웹만 바꾸면 되고, 화면 주소나 자동문이 열려 있는 시간 같은 설정도 서버에서 내려받게 했습니다. 각 단말은 시리얼 번호와 매장 ID로 구분했습니다.
매장이 여럿인 경우도 같은 생각에서 출발했습니다. 매장 코드로 지점을 나눠, 지점이 여러 곳인 브랜드도 하나의 관리자에서 운영할 수 있게 했습니다.
결제는 반드시 서버를 거쳐야 합니다
O2O 서비스에서 결제는 온라인과 오프라인이 가장 날카롭게 만나는 지점입니다. 무인매장 키오스크 앱의 카드결제는 VAN사 결제 단말과 연동해 처리했고, 결제가 끝나면 그 결과를 먼저 서버로 보낸 뒤 서버가 정한 다음 화면으로 넘어가도록 했습니다.
이 순서가 중요한 이유는 간단합니다. 결제는 됐는데 이용권이 발급되지 않았다거나, 이용권은 나갔는데 결제 기록이 없다면 무인 매장에서는 바로 풀어 줄 사람이 없습니다. 결제 결과가 서버에 남은 다음에 이용권이나 출입이 처리돼야 나중에 원장님이 관리자 화면에서 무슨 일이 있었는지 확인할 수 있습니다.
매장 밖으로 넓어지는 O2O
O2O는 무인 매장에만 있는 이야기가 아닙니다. 오프라인 행사도 마찬가지입니다. 참가자가 온라인으로 사전등록을 하고, 행사 당일 현장에서 QR로 입장을 확인하고, 그 자리에서 이름표를 출력받습니다. 저는 이런 행사 체크인 서비스도 여러 차례 개발해 왔고, 케이트리솔루션은 행사의 성격과 고객사의 요구사항에 맞춰 이런 시스템을 개발합니다. 자세한 흐름은 QR 체크인 글에 정리해 두었습니다.
모양은 달라도 원리는 같습니다. 온라인에서 받은 등록 정보와 현장에서 찍힌 입장 기록이 한 서버에서 맞아떨어져야 하고, 현장에서는 기다려 주지 않는 예외 상황이 생깁니다. 무인 매장에서 문이 안 열리면 안 되듯, 행사장 입구에서 QR이 안 찍히면 줄이 바로 길어집니다. 무인 운영 시스템을 만들며 익힌 예외 처리 감각이 여기서도 그대로 쓰입니다.
O2O 서비스를 만들기 전에 정해 둘 것
O2O 서비스나 무인 운영 시스템을 준비하고 계신다면 개발을 맡기기 전에 아래 질문부터 정리해 보시길 권합니다.
- 고객, 현장 기기, 운영자 중 누가 어떤 화면을 쓰나요? 화면이 몇 개인지부터 세어 보세요.
- 한쪽에서 바뀐 정보가 다른 화면에 얼마나 빨리 보여야 하나요? 좌석처럼 실시간이어야 하는 정보가 있나요?
- 인터넷이 끊기면 현장 기기는 어떻게 동작해야 하나요?
- 현장에 아무도 없을 때 운영자가 원격으로 할 수 있어야 하는 일은 무엇인가요?
- 화면 문구를 바꿀 때 현장 기기를 다시 설치해야 하나요?
- 결제와 이용권, 입장 기록은 어떤 순서로 서버에 남나요?
- 매장이나 행사가 여러 곳으로 늘어나면 어떻게 관리하나요?
이 질문들에 대한 답이 곧 O2O 서비스의 설계도입니다. 기능 목록보다 이 답을 먼저 정해 두면 견적도 정확해지고 오픈 뒤에 생기는 문제도 크게 줄어듭니다.
무인 운영 시스템의 구성은 무인 스터디카페 운영 솔루션과 무인매장 키오스크 앱 포트폴리오에서 더 자세히 보실 수 있습니다. 케이트리솔루션은 고객 앱, 현장 기기, 관리자 화면을 고객사의 운영 방식과 요구사항에 맞게 설계하고 개발합니다. 앱과 현장을 잇는 서비스를 준비하고 계시다면 편하게 문의해 주세요.
감사합니다. 케이트리솔루션이었습니다.