토스플레이스, 하루에 수십번 포스 업데이트가 가능한 이유
간혹 모바일이나 PC에서 소프트웨어(SW) 업데이트를 해야 하는 경우가 있다. 새로운 서비스와 기능을 이용하기 위해 업데이트를 해야 하지만 시간이 오래 걸린다는 점에서 때로는 번거롭다. 토스의 결제단말기 자회사 토스플레이스는 하루에도 수십번씩 포스(POS) 서비스를 업데이트한다고 한다. 이렇게 수시로 업데이트를 할 수 있는 비결로 토스플레이스는 ‘웹뷰번들(Webview)’ 전략을 꼽았다. 쉽게 말해 서비스 업데이트 시 전체 앱이나 SW를 재설치하는 것이 아닌, 비슷한 성격의 서비스를 묶어 업데이트를 진행시키는 전략이다. 이 경우 업데이트 용량과 시간을 줄일 수 있는 이점이 있다는 것이 토스 측 이야기다.
나석주 토스플레이스 프론트엔드 엔지니어는 12일 삼성동 코엑스 그랜드볼룸에서 열린 토스의 개발자 컨퍼런스 ‘토스슬래시24’에서 자사 포스 업데이트 노하우를 공유했다.
토스플레이스는 결제 단말기와 사장님이 매장에서 사용하는 포스 서비스를 하고 있다. 지난해 3월 본격적으로 서비스를 시작했으며, 오프라인 결제는 토스의 첫 도전이라는 점에서 의미가 있다. 당시 토스는 처음 서비스를 시도하는 만큼 검증을 위해 많은 실험을 해야 했다. 포스 서비스 출시 이후 여러 기능을 추가해 실행 여부, 사용자 반응 등을 확인하고 서비스 유지 유무를 결정해야 하기 때문이다.
그러나 서비스 배포는 쉬운 일이 아니다. 간단한 변경사항이라도 사용자는 SW 업데이트를 위해 100mb 이상의 앱을 다시 다운로드하고, 약 20분의 시간을 소요해야 한다. 빠른 배포를 중요시 여기는 토스에게는 긴 시간이다.
이에 토스는 변경된 기능만 수정하는 방안을 고민하기 시작했다. 그렇게 된다면 앱을 새롭게 설치하지 않아도 되고, 동시에 배포 속도가 빨라지기 때문이다. 토스는 앱을 웹뷰(Webview)와 네이티브 영역으로 나눴다. 웹뷰는 앱에 내장된 웹브라우저를 말한다. 즉, 토스는 웹뷰 영역만 업데이트할 수 있도록 했다.
나석주 엔지니어는 “웹뷰 영역만 쉽게 배포할 수 있도록 웹뷰번들(웹뷰를 묶은 것)을 구성했다”며 “독립적인 서비스 운영을 위해 웹뷰번들 단위로 서비스를 나눠, 배포속도를 20분에서 1분 내외로 줄였다”고 설명했다. 이어 “대부분의 비즈니스 로직이 웹뷰번들로 구현되기 때문에 한 번의 코드 작성으로 윈도우, 맥OS, 안드로이드, iOS 한번에 배포가 가능하다”고 설명했다.
웹뷰 영역만 새롭게 고쳐 배포하면 앱을 다시 설치하지 않아도 부분 업데이트가 가능하다는 이야기다. 앱을 다시 설치하는 것보다 기능 업데이트에 드는 시간이 더 적게 들 수밖에 없다. 일반적으로 5mb의 용량으로 1분 내 배포가 가능하다는 것이 나 엔지니어의 설명이다.
토스플레이스에 따르면, 웹뷰번들 기능은 여러 장점을 가지고 있다. 결제, 시재관리, 주문 등 서비스를 쪼개는데도 활용할 수 있고, 각 서비스 조직인 사일로에서 독립적으로 서비스를 운영할 수 있다. 또 하나의 서비스 업데이트가 다른 서비스에 영향을 주지 않는다.
웹뷰번들은 서비스를 지원하는 여러 운영체제(OS)를 추가하는데도 도움이 된다. 토스플레이스는 아이패드 포스 서비스를 이용하고 싶다는 가맹점의 피드백을 받아, IoOS와 안드로이드를 추가 구현했다. 나 엔지니어는 “웹뷰 영역을 웹뷰번들로 하기 때문에 쉽게 대응할 수 있다”며 “일렉트론 영역에 (안드로이드와) iOS를 추가적으로 구현하면 기존 기능을 탑재한 채 출시할 수 있다”고 전했다.
이를 위해 토스플레이스는 포스 기능을 애플리케이션프로그래밍인터페이스(API)로 표준화했다. 따라서 특정 기능을 여러 OS에 구현할 수 있다. 나 엔지니어는 “결과적으로 (웹뷰번들) 개발을 통해 네이티브 개발 비용을 낮출 수 있었고, 안드로이드와 iOS 포스 출시까지 1개월이 소요됐다”고 밝혔다.
글. 바이라인네트워크
<홍하나 기자>0626hhn@byline.network
[무료 웨비나] API연결만으로 가능한 빠르고 쉬운 웹3 서비스 구축
- 내용 : API 연결을 통해 웹2와 웹3를 끊김 없이 연결하는 최신 융합 기술과 이를 통한 적용 사례를 다룹니다.
- 일시 : 2024년 10월 10일 (목) 14:00 ~ 15:10
안드로이드를 추가 구현했다고 하셨는데 문맥상 iOS 를 추가 구현 한 것 아닌가요?
— 토스플레이스는 아이패드 포스 서비스를 이용하고 싶다는 가맹점의 피드백을 받아, 안드로이드를 추가 구현했다. 나 엔지니어는 “웹뷰 영역을 웹뷰번들로 하기 때문에 쉽게 대응할 수 있다”며 “일렉트론 영역에 iOS를 추가적으로 구현하면 기존 기능을 탑재한 채 출시할 수 있다”고 전했다. —
안녕하세요, 홍하나 기자입니다.
말씀 주신 내용에 iOS가 빠졌네요, 정정했습니다.
소중한 피드백 감사합니다. 앞으로도 좋은 피드백 주시면 감사하겠습니다!