이 글의 원문은 여기서 확인하실 수 있으며 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.
Twitter는 전 세계에서 가장 널리 사용되는 소셜 미디어 중 하나로, 사용자간 연결을 개선하기 위한 새로운 방식을 늘 적극적으로 모색하고 있습니다. 기존의 기능을 유지하면서 새 기능을 효율적으로 구축하기 위해 새로운 인프라가 절실히 필요했고, Twitter 엔지니어링 팀은 앱 UI 기반을 대대적으로 개선하기 위해 Jetpack Compose를 채택했습니다. Compose를 사용하여, 개발자들은 적합한 API를 쉽게 찾아서 사용하고, 구성요소를 유연하게 스타일링하고 모듈화하며, 궁극적으로는 더 적은 코드로 더 많은 것을 구현할 수 있게 되었습니다.
Twitter의 UI 개편 시작
Android Client UI 팀, Customer Acquisition 팀, Twitter Blue 팀, Communities 팀과 같은 일부 팀이 개발 프로세스를 개편하며 Twitter 엔지니어들 사이에서 즐거운 변화의 바람이 불고 있습니다. Android용 Twitter의 Communities 팀 선임 소프트웨어 엔지니어이자 기술 책임자인 Sneha Patil은 "Twitter의 여러 팀이 일상 업무에서 Compose를 사용하고 있습니다."라고 말했습니다. Compose에서는 맞춤 테마 설정과 속성을 만들고 설정하는 작업이 제거되어, 기능 작성과 디자인 요구사항 구현이 Views에서 경험한 것보다 훨씬 더 빠르고 간단합니다. Jetpack Compose 덕분에 작업 속도와 효율성이 증가하고, 코드 재사용성이 확보되고, 신규 엔지니어가 업무에 쉽게 적응할 수 있었습니다.
개발 프로세스 활성화
Compose를 사용하면 동적 콘텐츠도 간단하게 만들 수 있습니다. Twitter 팀은 Adapter 또는 ViewHolder 없이 LazyColumn 컴포저블을 사용해 UI를 구축하여 레이아웃, 테마 및 스타일을 구현하는 코드의 작성 과정을 단순화했습니다. 작성할 코드 수가 줄어들면서 상용구 코드가 줄어들고, 개발 및 출시 과정에서 버그가 덜 발생했으며, UI 실험이 도입되고, 테스트 프로세스 속도가 빨라졌습니다. 이러한 개선 사항으로 생산성이 향상되어, 개발자는 Twitter의 독특함과 개성을 살리는 요소에 더 많은 시간을 할애할 수 있었습니다.
또한 Compose를 사용하여 앱 전체에서 재사용할 수 있는 상태 비저장(stateless) 구성요소를 만들었습니다. Compose의 유연성 덕분에 디자인 요구사항을 더 쉽고 빠르게 충족할 수 있어, 신규 엔지니어와 숙련된 엔지니어 모두 테마 및 스타일을 더 쉽게 적용할 수 있게 되었습니다.
Compose를 사용한 새로운 기능 만들기
이러한 개선을 경험한 Twitter 팀은 Compose를 사용하여 완전히 새로운 기능을 만들기로 했습니다. 바로 Twitter의 전용 공간이자, 사용자가 가장 관심 있는 토론에 참여할 수 있는 커뮤니티 기능입니다. 이전에 다른 기능을 개발할 때 Views를 사용한 경험과 비교하면 Compose로 개발하는 것이 훨씬 더 빠르고 버그도 적었습니다. Sneha는 "정말 놀라워요. Compose 덕분에 Android 개발 방식이 완전히 달라졌습니다."라고 말했습니다.
개발 성과를 높여주는 Compose
Compose 덕분에 Twitter 엔지니어의 UI 개발 속도와 생산성이 올라갔습니다. 개발자는 Compose로 손쉽게 기능을 통합하고 구축했으며, 코드 모듈화, 구성요소 재사용, 종속성 분석이 더욱 수월해졌습니다. Twitter 팀의 정기 UI 실험에서, Compose 덕분에 사용자 상호작용, 데이터 업데이트 및 다양한 화면 크기에 따라 구성요소가 프로덕션 환경에서 어떻게 구현될지 알 수 있어 큰 도움이 되었습니다.
Compose를 사용한 초기 성공 사례를 보고 Twitter의 다른 개발팀들도 이를 따르게 되었습니다. 심지어 복잡한 레거시 구성요소를 다루는 엔지니어도 Compose 채택을 고려하고 있습니다.
Compose 덕분에 Twitter 팀이 Views에서 경험한 많은 장애물이 제거했고 워크플로에 재미가 더해져, 기존의 방식을 완전히 중단하기로 한 개발자들도 있습니다. Twitter의 Android Client UI 소프트웨어 엔지니어 Yoali Sotomayor Baqueiro는 “XML 레이아웃 대신 Compose로 더 많은 작업을 하게 되어 좋아요. Compose를 사용하면 UI 개발을 쉽고 간단하게, 더 나아가서는 훨씬 재미있고 직관적인 방식으로 할 수 있습니다.”라고 말했습니다.
시작하기
Compose로 UI 개발을 최적화하세요.