TikTok은 방대한 사용자층과 혁신적인 기능으로 유명한 글로벌 짧은 동영상 플랫폼입니다. 이 팀은 사용자를 위해 업데이트, 실험, 새로운 기능을 끊임없이 출시하고 있습니다. 기술 부채를 관리하면서 속도를 유지해야 하는 문제에 직면한 TikTok Android팀은 Jetpack Compose를 사용하기 시작했습니다.
팀은 제품 요구사항을 더 빠르고 고품질로 반복할 수 있기를 원했습니다. Compose를 활용하여 팀은 코드를 적게 작성하고 인지 부하를 줄여 엔지니어링 효율성을 개선하는 동시에 성능과 안정성을 개선하고자 했습니다.
복잡한 UI를 간소화하여 개발자 생산성 향상
TikTok 페이지는 겉으로 보이는 것보다 복잡한 경우가 많으며, 여러 계층의 조건부 요구사항이 포함되어 있습니다. 이러한 복잡성으로 인해 유지관리하기 어렵고 최적이 아닌 구조의 뷰 계층 구조와 과도한 뷰 중첩이 발생하는 경우가 많았으며, 이로 인해 측정 패스 수가 증가하여 성능이 저하되었습니다.
Compose는 이러한 구조적 문제에 대한 직접적인 해결책을 제공했습니다.
또한 Compose의 측정 전략은 이중 과세를 줄여 실적을 측정하고 최적화하기가 더 쉬워집니다.
개발자 생산성을 높이기 위해 TikTok의 중앙 디자인 시스템팀은 다양한 앱 기능을 작업하는 팀에 구성요소 라이브러리를 제공합니다. Compose를 사용한 개발은 간단합니다. 작은 컴포저블을 활용하는 것이 매우 효과적이며, 조건부 로직이 포함된 큰 UI 블록을 통합하는 것은 간단하고 오버헤드가 최소화됩니다.
전략적 마이그레이션을 통한 미래 계획
TikTok은 Jetpack Compose를 전략적으로 채택하여 기술 부채를 관리하면서도 사용자에게 우수한 환경을 제공하는 데 계속 집중할 수 있었습니다. Compose가 조건부 로직을 깔끔하게 처리하고 작성을 간소화할 수 있어 팀은 새 페이지 또는 완전히 다시 작성된 페이지에서 페이지 로드 시간을 최대 78% 까지 줄일 수 있었습니다. 이 개선사항은 작은 사례의 경우 20~30%, 전체 재작성 및 새로운 기능의 경우 70~80% 였습니다. 또한 Views로 빌드된 동일한 기능과 비교했을 때 코드 크기를 58%줄일 수 있었습니다. 팀에서는 다음과 같은 몇 가지 학습 내용을 추가로 공유했습니다.
TikTok팀의 전반적인 전략은 특정 사용자 여정을 점진적으로 이전하는 것이었습니다. 이를 통해 마이그레이션하고, 측정 가능한 이점을 확인한 후 더 많은 화면으로 확장할 수 있었습니다. Compose를 사용하여 QR 코드 기능의 전반적인 구조를 단순화한 후 개선 사항을 확인했습니다. 이후 로그인 및 가입 환경으로 이전이 확대되었습니다.
팀에서 추가로 공유한 내용은 다음과 같습니다.
마이그레이션 중에 성능을 확인한 결과, TikTok팀은 단일 ViewHolder 내의 요소를 대체하기 위해 작은 ComposeView를 많이 사용하면 컴포지션 오버헤드가 발생한다는 것을 알게 되었습니다. 전체 ViewHolder에 단일 ComposeView를 사용하도록 마이그레이션을 확장하여 더 나은 결과를 얻었습니다.
실험에 따라 UI를 숨기고 표시하는 맞춤 높이 로직과 조건부 로직이 있는 ViewPager 내부의 프래그먼트를 이전할 때 성능에 영향을 미치지 않았습니다. 이 경우 ViewPager를 컴포저블로 이전하는 것이 Fragment를 이전하는 것보다 성능이 더 좋았습니다.
Jun Shen은 Compose가 '기능 개발에 필요한 코드의 양을 줄이고, 테스트 가능성을 개선하며, 제공 속도를 높인다'는 점을 매우 좋아합니다. 팀은 Compose 채택을 꾸준히 늘려 장기적으로 선호하는 프레임워크로 만들 계획입니다. Jetpack Compose는 개발자 경험과 생산 측정항목을 대규모로 개선할 수 있는 강력한 솔루션으로 입증되었습니다.
Jetpack Compose 시작하기
Jetpack Compose 가 팀에 어떤 도움이 되는지 자세히 알아보세요.
계속 읽기
-
우수사례
FotMob은 최근 5년 동안 설치된 시청자 중 Wear OS에서 일일 평균의 2~3배에 달하는 가장 큰 일일 증가를 경험했습니다. 비결은 무엇일까요? 사용자가 휴대전화에서 직접 Wear OS 앱을 검색할 수 있도록 지원하는 간단한 교차 기기 설치 흐름
Garan Jenkin • 3분 읽기
-
우수사례
마음챙김 앱 Gratitude는 매일의 짧은 일기 쓰기, 확언, 비전 보드를 통해 일관성을 유지하도록 지원합니다. 이 앱은 6백만 회 이상 다운로드되었으며, 별 5개 평점은 15만 개, 기록된 일기 항목은 1억 개에 달합니다.
Amrit Sanjeev, Ash Nohe • 3분 읽기
-
우수사례
Karrot은 사용자가 인증된 다른 사용자와 상품을 구매, 판매, 교환할 수 있는 지역 기반 커뮤니티 중심 P2P 마켓 앱입니다. 2015년 대한민국에서 출시된 이후 이 플랫폼은 전 세계 시장으로 확장되어 4,300만 명이 넘는 등록 사용자를 확보했습니다.
Thomas Ezan, Tracy Agyemang • 2분 읽기
소식 받아보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요.