본문 바로가기
🍎iOS프로그래밍/오늘의 공부

대규모 iOS 앱 개발 생산성을 위해 바꾼 것들(에어비앤비)

by 둥둥동동# 2023. 9. 1.
728x90

 

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

 

앱과 개발팀의 규모가 커지며 발생는 문제와 이것을 개선하기 위해 노력했던 에어비앤비의 사례를 소개하는 글입니다. 소프트웨어 아키텍처의 중요성이 왜 중요한지 알게되는 글이었습니다.

 

 

에어비앤비에서 겪었던 문제

 

- 에어비앤비의 iOS팀 규모는 75명, 소스코드는 150만 줄매주 전세계에 업데이트를 배포

 

1. /lib 라는 최상위 디렉토리 내부에 대부분의 코드를 작성함, 엔지니어들은 코드를 찾는데 어려움을 겪었고, 결국 코드의 품질저하와 중복 코드가 발생하고 앱 크기가 부풀려지는 문제가 발생

 

2. 비대해진 프로젝트를 Xcode로 관리하기에 부족, PR리뷰가 어렵고 프로젝트 파일이 충돌되는 상황이 빈번하게 발생

 

3. Xcode 워크스페이스를 여는것 조차 1-2분이 소요되며 빌드시간이 오래 걸림

 

 

에어비앤비의 해결책

 

1) 최신의 빌드 시스템 채택

페이스북의 Buck을 채택하여 프로젝트를 열고 빌드하는 시간을 단축시킴

[ 에어비앤비의 Buck 세팅(https://github.com/airbnb/BuckSample) ]

 

 

2) 코드 모듈화

코드에 계층 구조를 만들기 위해 '모듈 유형'이라는 것을 정의하고 문서를 제작해 사내 개발자들과 공유함 

 

3) Dev Apps 제작

Dev Apps란 하나의 모듈과 의존성을 가진 모듈에 대한 임시 워크스페이스(최소한의 기능만을 가진 프로젝트), 해당 워크스페이스는 코드량이 적어 더 빨리 빌드할 수 있게 되었음

 

 

 

 

원문

 

https://medium.com/airbnb-engineering/designing-for-productivity-in-a-large-scale-ios-application-9376a430a0bf

 

728x90

댓글