Zillow는 Android 아키텍처 구성요소를 사용해 새롭게 명확한 코드를 작성합니다

Zillow는 최고의 온라인 부동산 마켓플레이스이며, 고객에게 주택 구매, 임대, 판매 시 필요한 목록, 데이터, 계산기 기능을 제공합니다. 또한 Zillow는 사용자와 현지 대리인, 주택 담보 대출 제공업체, 주택 설계자를 연결해 줍니다.

2006년에 창립되었으며 시애틀에 본사를 두고 있는 Zillow는 1억 1천만 개가 넘는 미국 주택의 데이터베이스를 관리하고 있습니다. 또한 20개가 넘는 모바일 부동산 앱을 운영하고 있기도 합니다. 2017년 7월 Android 모바일 앱 코드에 관한 대대적인 수정 작업을 시작한 Zillow는 새로운 팀원이 이해하기 쉽도록 코드를 가독성이 높고 알기 쉽게 변경해 개발자들을 돕고자 했습니다.

시행한 작업

Zillow에서는 Android 아키텍처 구성요소를 사용해 코드를 개선했습니다. Zillow의 소프트웨어 엔지니어인 아유쉬 라지의 설명입니다. "다양한 아키텍처를 살펴보고 있었습니다. 아키텍처 구성요소를 사용함으로써 수명 주기를 인식할 수 있게 되어 코드 관리가 훨씬 쉬워졌습니다."

ViewModel을 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있으며 LiveData는 관찰 가능한 데이터 홀더 클래스입니다. Zillow에서는 이 두 가지 클래스를 모두 사용하여 MVVM(Model-View-ViewModel)을 구현할 강력한 템플릿을 마련했습니다. 라지는 "코드 테스트가 훨씬 쉬워졌습니다."라고 말합니다. Room 지속성 라이브러리 또한 로컬 캐시 레이어를 쉽게 개발하는 데 도움을 주었습니다. 그 결과 Zillow 앱이 네트워크에서 데이터를 불러와야 하는 빈도수가 줄어들어 '성능 및 사용자 환경이 개선'되었습니다.

결과

라지는 데이터 업데이트용 코드 중 많은 부분을 활동에서 ViewModels로 옮기는 작업이 전체 코드베이스의 가독성을 개선하는 데 "확실히 도움"을 주었다고 말합니다. 개발자들이 전체 앱을 아직 ViewModel로 변환하지는 않았지만 ViewModel을 사용하는 구성요소에는 수명 주기 관련 버그가 발생하지 않았습니다. 데이터 업데이트를 활동 및 프래그먼트에 전달하는 과정도 효과적으로 작동하고 있습니다.

Zillow의 선임 소프트웨어 개발 엔지니어인 수미란 프라드한은 "Android 아키텍처 구성요소를 사용하면 개발자의 생산성이 확실히 향상됩니다."라고 말합니다. 아키텍처 구성요소는 코드를 처음 작성할 때 지침을 제공하지만 기존의 코드베이스에도 유용하게 사용할 수 있습니다. 프라드한의 말입니다. "새로운 개발자가 ViewModel에 있는 로직을 이해하고 나면 모두 ViewModel을 좋아합니다."

시작하기

Android 아키텍처 구성요소는 Android Jetpack의 일부이며 모든 개발자에게 공개되어 있습니다. Android 아키텍처 구성요소를 사용해 보세요.