2012년에 설립된 Hike는 인도의 인터넷 사용률을 높이기 위해 인터넷을 간편하게 만드는 것을 목표로 제품을 개발하고 있습니다. Hike는 채팅, 메시지, 피드를 결합하였으며 타사의 대중교통 및 결제 앱과 통합되어 있습니다. 하지만 이러한 기능들을 짧은 시간 내에, 여러 번에 나눠 개발했기 때문에 "기술 및 아키텍처적인 측면에서 큰 부담"이 된다고 Hike에서는 설명합니다. 이러한 부담은 안정성, 유지 보수성, 성능에 장애물로 작용할 수 있기 때문에, Hike에서는 빨리 코드를 단순하게 바꾸고자 했습니다.
진행한 작업
Hike는 Android 아키텍처 구성요소로 전환했고, CTO인 비슈와나트 라마라오는 “문제를 해결하는 만능열쇠”가 되어주었다고 말합니다. Hike는 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있는 ViewModel, 식별 가능한 데이터 홀더 클래스인 LiveData, 지속성 라이브러리인 Room을 사용했습니다. 라마라오는 “Hike는 현대적이고 반응 속도가 빠른 앱이며, Room과 LiveData는 Hike의 미래 지향적 디자인 원칙에 잘 어울립니다.”라고 말합니다.
Hike는 페이징 라이브러리 사용도 고려하고 있습니다. 페이징 라이브러리를 사용하면 대용량 데이터베이스 쿼리가 발생한 경우 기기를 오버로드하거나 지나치게 오래 기다리지 않고도 앱이 필요에 따라 데이터 소스로부터 정보를 점진적으로 로드할 수 있습니다.
"우리는 아키텍처 구성요소에 관해 어느 정도 알고 있었지만 좀 더 자세히 알아보고 싶었죠. 하지만 Android 생태계의 권장사항을 살펴보는 것으로 시작된 이 작업은 기술 및 아키텍처 문제를 해결하는 데 큰 도움이 되었습니다. 이를 통해 Hike의 아키텍처와 개발 관행을 현대화할 수 있었죠."라고 라마라오는 말합니다.
결과
아키텍처 구성요소 덕분에 Hike는 앱에 사용된 코드의 전체 행 수를 크게 줄일 수 있었으며 코드의 가독성 및 유지 보수성 역시 높아졌습니다. 또한 Android 아키텍처 구성요소를 사용함으로써 비정상 종료를 겪지 않은 사용자 평점이 99%를 넘어섰습니다. 이는 이전에 Hike에서 항상 달성하고자 노력해온 목표입니다.
시작하기
Android 아키텍처 구성요소는 Android Jetpack의 일부이며 모든 개발자에게 공개되어 있습니다. Android 아키텍처 구성요소를 사용해 보세요.