대규모 iOS 앱 개발 생산성을 위해 바꾼 것들✈️

앱 규모가 커질수록 당연히 팀 규모가 커짐에 따라 생기는 생산성 문제가 있습니다. 소프트웨어 아키텍처의 중요성에서 말하는 왜 아키텍처가 중요한지에 힘입어 말하자면 당장 앱과 팀의 규모가 크지 않더라도 생산성을 고려한 엔지니어링은 중요합니다. 에어비앤비의 앱과 팀 규모가 커지면서 발생한 문제와 문제를 해결하기 위한 방법에 대해 짧게 소개하려고 합니다. 🤔 앱, 팀의 규모가 커지면서 생긴 문제 1️⃣ 앱을 개발할 때 lib/ 라고 불리는 flat dirctory 안에 대부분의 코드가 있어 엔지니어가 기능에 대한 코드를 찾는 데 큰 어려움이 있었다. 그로 인해 중복 구현 코드가 발생하고 사용자에게 제공한 바이너리가 부풀려졌다. 2️⃣ 코드베이스의 사이즈와 복잡성에 맞게 Xcode가 확장되지 않았다. 이에 따라 PR 리뷰가 어려워지고 프로젝트 파일에서 충돌도 많이 발생했다. 3️⃣ Xcode workspace를 로드하는 데에만 1~2분 정도가 걸리고 빌드 시간이 오래 걸린다. 사실 이런 문제는 규모가 큰 제품팀에서만 발생하는 문제라고 하기에는 많은 개발자가 경험한 것이라고 생각합니다. 작은 제품으로 시작하더라도 언젠가는 제품이 커지면서 이런 문제를 직면하게 될 테고 이 문제는 경제적인 면과 닿아 있기 때문에 회사의 문제라고 할 수도 있습니다. 에어비앤비에서 어떤 솔루션을 찾아냈는지 봅니다. 💡 생산성 향상을 위한 세 가지 솔루션 1️⃣ 최신 빌드 시스템 채택 Facebook의 Buck 빌드 시스템을 채택하여 빌드 속도를 향상시켰습니다. 2️⃣ 모듈화 유저의 행동상 의미 있는 그룹으로 코드 계층 구조를 나누었습니다. 그리고 모듈 계층에 대한 정확한 문서를 작성하여 모든 iOS 개발자들이 기본적으로 이 문서를 숙지합니다. 함께 일하는 개발자들이 합리적으로 납득이 돼야 하고 무엇보다 의사결정 과정과 결과의 문서화가 중요하다고 생각합니다. 3️⃣ Dev App 만들기 빌드 시스템의 변화와 모듈화의 결과로 특정 기능에 대한 데모 앱을 만들어 테스트해 볼 수 있어 굉장한 생산성을 만들어 냈습니다! 이 내용에 관련해서는 ifkakao2022의 카카오뱅크 iOS 프로젝트의 모듈화 여정을 보시는 것을 추천합니다!

"Working effectively at scale" by Francisco Diaz

YouTube

"Working effectively at scale" by Francisco Diaz

다음 내용이 궁금하다면?

지금 간편 가입하고 다음 내용을 확인해 보세요!

또는

이미 회원이신가요?

2023년 1월 4일 오전 12:46

 • 

저장 9조회 1,439

댓글 0