Realm Blog

Arccos의 Realm 모바일 플랫폼 적용 경험

온라인과 오프라인에서 모두 반응형이며 빠른 앱 경험 제공

골프 게임은 플레이어가 모든 샷에서 좋은 결정을 하는 것에 달려 있습니다. 실시간으로 골프 데이터를 수집하고 분석하면 플레이어가 게임 중에 기술을 향상하고 코스 전체에서 더 나은 의사 결정을 내리도록 도울 수 있습니다. 연관 스포츠 분야가 주목받으면서 Arccos Golf는 가장 혁신적이고 최신의 IoT와 모바일 기술을 활용해서 세계에서 가장 오래된 게임을 최첨단으로 끌어 올렸습니다.

 

Arccos의 혁신적인 샷 추적 시스템은 초경량 소형 골프 클럽 센서와 모바일 앱 및 분석 플랫폼으로 이뤄집니다. Arccos는 GPS와 블루투스를 사용해서 모든 샷의 데이터를 자동으로 기록해서 플레이어의 강점, 약점과 추세를 분석하고 모바일 앱을 통해 실시간으로 피드백을 제공합니다. 이렇게 데이터로 축적된 인사이트는 플레이어가 모든 홀에서 올바른 결정을 내릴 수 있는 능력을 크게 향상해줍니다.

Arccos는 회사의 비전을 실현하기 위해 플레이어의 골프 루틴을 방해하지 않으면서도 빠르고 원활한 사용자 경험을 제공해야 했습니다. 또한, 시스템은 자세한 코스 맵 및 유려한 UI를 렌더링하는 동시에 센서 데이터 수집 및 분석 프로세스 등 방대한 데이터를 처리해야 했습니다. 게다가 사용자는 어디에서나 앱이 기능할 것으로 기대하므로 Arccos의 모바일 애플리케이션은 인터넷 연결이 원활하지 않은 골프 코스 안에서도 동작해야 했습니다.

데이터 처리를 위한 세 가지 모델

처음에는 일반적인 형태의 Android 앱 개발을 아웃소싱했습니다. 해당 앱은 RxJava와 OrmLite, SQLite를 사용했었죠. 하지만 이 모델의 성능이 몹시 낮았기 때문에 Arccos 개발팀은 우회책으로 JSON 덩어리를 저장했습니다. 그 결과 모델 간에 데이터를 변환하고 동기화를 유지하기 위해 개발팀은 엄청난 양의 코드를 작성해야 했습니다. 디버깅과 유지 관리에도 많은 시간이 들 수 밖에 없었죠. 또한, Arccos 사용자들은 너무나도 느린 앱 성능으로 고통받으며 앱의 기능을 제대로 활용할 수 없었습니다. 따라서 Arccos는 시스템을 더욱 효율적이고 지속할 수 있게 만들려면 재설계가 필요하다고 판단했습니다.

Realm의 통합 데이터 모델

Arccos는 Realm을 사용해서 데이터 솔루션을 간결하게 만들기로 결정하고, 이런 새 접근 방식을 평가하기 위한 개념을 증명하기 시작했습니다. Realm을 접한 개발팀은 간결한 기반 코드와 간단한 설정 방식으로 Realm을 빠르게 설정하고 실행할 수 있다는 것에 감탄했습니다. 더 중요한 것은 Realm으로 변환하면서 트랜잭션 속도가 상당히 빨라졌다는 점입니다.

“Realm을 통해 에셋 클래스의 로딩 시간이 크게 개선됐습니다. 6초가 걸리던 것이 20밀리 초로 빨라졌죠. 속도가 정말 인상적이었습니다.”
- Muhammad Arafat, Arccos Golf 안드로이드 팀 리드

arccos-still02

Arccos는 Realm의 반응형 아키텍처가 네트워크 연결과 관계없이 신속하고 반응이 빠른 사용자 경험을 가능하게 한다는 것을 발견했습니다. 골프 코스 환경에서는 오프라인 사용이 중요하므로 개발팀은 Realm의 오프라인 우선 유스 케이스 지원에 특히 만족했습니다. Realm은 데이터를 기기 로컬 상에 저장하므로 사용자가 오프라인 상태에서도 전체 앱 데이터에 접근할 수 있습니다.

“Realm의 빠른 로컬 저장소 덕분에 우리는 온라인과 오프라인 모두에서 매우 빠르게 반응하는 애플리케이션 경험을 제공할 수 있습니다.”
- Colin Phillips, Arccos Golf 소프트웨어 부사장

Realm의 단일 데이터 모델을 사용해서 Arccos는 시스템 아키텍처와 애플리케이션 코드를 간소화하고 안정성을 쉽게 향상할 수 있었습니다. 앱 데이터가 객체로 저장되므로 데이터베이스가 앱의 흐름에 방해가 되지 않으며 개발팀이 지루한 데이터 변환 작업으로 고통받지 않을 수 있었고, 애플리케이션에서 잘 동작하는 순수 객체 모델을 훨씬 쉽게 구현할 수 있었습니다. 게다가 Realm은 실제로 사용하는 시점에 필요한 객체 부분만 메모리에 올리므로 트랜잭션 시간이 효과적으로 분산되어 사용자가 매끄럽게 앱을 사용할 수 있습니다.

“Realm을 사용해서 애플리케이션을 다시 설계한 결과 코드 베이스가 35% 감소했고 디버깅과 유지 관리가 훨씬 쉬워졌습니다.”
- Colin Phillips, Arccos Golf 소프트웨어 부사장

arccos-still01

Arccos 팀은 Realm 브라우저와 같은 플랫폼 도구를 사용해서 버그를 훨씬 빠르게 발견하고 해결할 수 있었습니다. 즉, 객체가 올바르게 구성됐는지와 메모리와 데이터베이스의 객체 전반에 일대일 매핑을 확인하고 문제를 신속하게 탐지할 수 있었습니다.

궁극적으로 Realm으로 마이그레이션한 것은 Arccos에 큰 발전을 가져온 결정이었습니다. 이제 플레이어는 골프 코스에서 잘 반응하는 리액티브 앱을 경험할 수 있습니다. 또한, 개발팀은 개발 시간을 단축하면서 플레이어가 더 훌륭한 게임을 할 수 있도록 돕는 데 더 많은 시간을 할애할 수 있습니다.


Realm Team

Realm의 미션은 더 나은 앱을 빠르게 개발할 수 있도록 돕는 것입니다. 이를 위해 저희는 개발자들이 실시간 협업, 가상 현실, 라이브 데이터 동기화, 오프라인 경험, 메시징 등 정교하고 강력한 기능을 쉽게 개발할 수 있도록 하는 개발 도구와 플랫폼을 제공하고 있습니다.

저희는 모바일 인터넷이 수많은 사용자와 보다 많은 디바이스가 속한 개방형 네트워크와 이들 간의 실시간 상호 작용으로 진화할 것이라고 믿으며, 개발자가 이같은 방향으로 발전할 수 있도록 돕기 위해 저희 제품들을 개발하고 있습니다.

이런 개발 뉴스를 더 만나보세요