Kotlin으로 코드 행을 20% 줄이고 팀의 사기를 진작시킨 SmartNews

SmartNews는 다양한 뉴스 매체의 뉴스를 적시에 공유하여 수백만 명의 사용자가 매일 자신의 세계를 발견하도록 돕습니다. 2012년 일본에서 설립된 SmartNews는 현재 전 세계적으로 5천만 회 이상이라는 앱 다운로드 기록을 보유하고 있습니다.

2019년 6월 SmartNews의 개발팀은 Android 개발이 Kotlin 중심으로 전환되는 것을 보면서 자체 Kotlin 테스트를 시작하기로 했습니다. 개발팀은 Kotlin 중심의 Jetpack 라이브러리를 활용하여 유지 관리할 코드 양을 줄이고, Kotlin의 풍부한 표현과 이해하기 쉬운 구문의 이점을 누리고자 했습니다.

무엇을 했나

SmartNews의 개발팀은 자바에 매우 능숙했으므로 Kotlin 작성을 시작하기가 쉬웠습니다. Kotlin은 자바와 100% 호환되므로 기존 코드베이스를 사용하면서 Kotlin에서 Weather Radar 및 News From All Sides와 같은 새로운 기능을 쉽게 작성할 수 있습니다. 개발팀에서는 특허받은 기능인 Weather Radar 내에서 이미지 다운로드 및 캐싱을 관리하기 위해 코루틴을 사용했습니다. 코루틴 디스패처는 작업 관리에 유용한 추상화를 제공하여 SmartNews 엔지니어가 원시 스레드 관리에서 발생하는 위험을 방지하는 데 도움이 되었습니다.

또한 개발팀은 자바 코드의 일부를 리팩터링했으며 Kotlin의 null 안전성 기능에 감탄했습니다. 변경 가능성, null 허용 여부 및 초기화를 식별하는 Kotlin 구문은 개발팀에서 초기에 오류를 잡아내는 데 도움이 되었으며 코드 변경을 검토하는 데 드는 시간을 10% 단축해 줬습니다. 또한 Kotlin의 간결하면서도 효율적인 구문을 사용하여 코드베이스의 가독성을 높일 수 있었으며, 이를 통해 회사가 계속 성장할수록 코드를 더 쉽게 유지 관리할 수 있게 되었습니다.

결과

Kotlin으로 작성하면서 구현에서 출시까지 전체적인 생산성이 향상되었습니다. 팀에서 확인한 가장 큰 개선사항은 Kotlin으로 작성하면 변환된 코드 행이 20% 감소한다는 것입니다. 현재 SmartNews 앱의 약 절반이 Kotlin으로 작성되었으며 개발팀은 코드 유지 관리 가능성을 계속 높이기 위해 기존 코드의 일부를 리팩터링하고 모든 신규 기능을 Kotlin으로 개발할 계획입니다.

개발팀은 Kotlin을 구현하고 상용구 코드를 줄이면서 팀의 사기가 증가하는 것을 목격했습니다. 개발팀은 아이디어를 더 효율적인 방법으로 표현할 수 있으며 향후 코드의 가독성이 더 좋아진다는 사실에 큰 관심을 보였습니다. SmartNews의 엔지니어링 관리자인 오오하시 히데오는 Kotlin이 엔지니어링 채용에도 도움이 된다는 사실을 발견했습니다. “지원자가 가장 자주 묻는 질문은 'Kotlin을 사용하고 있나요? 얼마나 자주 사용하시나요?'입니다. 이제 많은 엔지니어가 Kotlin으로 이전하는 것에 관심이 있으며 이를 지원하려고 합니다." 팀 사기 개선과 채용에서의 이점이 팀에서 Kotlin을 채용한 주된 이유는 아니지만, 이러한 긍정적인 변화는 경쟁이 치열한 업계에서 회사가 계속 성장하는 데 도움이 될 것입니다.

시작하기

Kotlin으로 Android 앱 개발하기에 관해 자세히 알아보세요.