뷰티플러스 앱은 Android 아키텍처 구성요소를 사용해 가독성을 15% 높였습니다

2013년에 출시된 뷰티플러스는 세계에서 가장 인기 있는 사진 편집 앱 중 하나로, 메이크업 아티스트, 사진작가 및 스마트폰을 사용해 사진을 촬영하는 일반인들이 사용합니다. 매달 약 5천만 명에 달하는 사람들이 이 앱을 사용해 셀카, 사진, 동영상을 편집하고 필터를 추가합니다. 중국의 Xiamen Meitu Technology Co., Ltd.에서 개발한 이 앱은 셀카 세트로 특히 유명하고 피부톤 수정, 웃는 얼굴 보정, 얼굴 갸름하게 만들기 기능, 잡티 없애기 등 거의 모든 작업에 사용되며 이 모든 작업을 드래그 및 클릭을 통해 간편하게 실행할 수 있습니다.

개발사가 앱을 자주 업데이트하는 관계로 많은 수의 개발자가 필요합니다. 하지만 시간이 지날수록 기본적인 아키텍처의 일관성과 명확성이 부족해졌습니다. 빠른 속도로 움직이는 팀에서는 협력 관계에 있는 개발자들에게 업무를 공유하면서 수명 주기 관리 작업을 단순화하고 비동기 UI 새로고침과 관련된 문제를 해결할 방법이 필요했습니다.

그림 1: 뷰티플러스의 사진 편집 세션 샘플

진행한 작업

Android 아키텍처 구성요소는 개발자가 앱의 코드를 간결하고 안정적이며 새로운 엔지니어가 팀에 합류할 때 읽기 쉽게 만드는 데 필요한 도구를 제공합니다.

뷰티플러스 개발자들이 사용하기 시작한 구성요소 중에는 ViewModel도 있었습니다. 이 구성요소는 활동 및 프래그먼트 업데이트의 논리 처리 과정을 간편하게 만들어 줍니다. ViewModel은 다른 앱 구성요소의 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었습니다.

뷰티플러스에서는 LiveData 구성요소도 활용했는데, 이는 수명 주기를 고려한 관찰 가능한 데이터 홀더 클래스로, UI가 데이터 상태와 일치하는지 확인하는 데 유용합니다. Android 아키텍처 구성요소는 아무런 문제도 일으키지 않았으며 사용하기도 간편했습니다. 또한 좋은 점 역시 빠르게 드러났습니다.

결과

Android 아키텍처 구성요소 덕분에 뷰티플러스 앱의 코드가 곧바로 5% 더 가벼워졌으며 가독성도 15% 더 높아졌습니다. 아키텍처 또한 더욱 통합되어 개발자들이 시간과 노력을 아낄 수 있었고 새로운 개발자들이 더 신속하게 작업에 투입될 수 있었습니다. 또한 메모리 누수가 적고, 데이터 새로고침이 간편해졌으며, 개발자들도 더 이상 비동기 UI 업데이트를 걱정하지 않아도 되었습니다.

선임 개발 관리자인 청송음은 "뷰티플러스에 ViewModel과 LiveData를 사용하자 코드가 간결해지고 가독성이 높아졌으며 코드 아키텍처도 통합되었습니다."라고 말합니다. "앱의 수명 주기 운영이 안전하게 관리되었고 안정성도 향상되었습니다."

시작하기

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