거대한 iOS앱의 생산성을 위해 바꾼 것들
이전글
https://admd13.tistory.com/433
우리가 채택한 솔루션
2) 모듈 유형 설계
코드에 계층구조가 없어 검색하기 힘들다는 문제를 해결하기 위해 코드 구조를 전면 재설계했습니다. 모듈은 모듈 유형(module types)이라고 부르는 동등한 의미를 가지는 그룹으로 구성됩니다.
우리는 모듈 유형이 무엇인지 명확히 저으이하는 문서를 만들었습니다. 모듈 유형이라는 개념은 에어비앤비의 iOS개발자가 작업하는 방식의 근간이 되기 때문에 문서화되어 내부 개발자 포털에 공유되며 누구나 원하는 버전을 쉽게 찾아볼 수 있습니다. 이 문서는 모듈 유형이 무엇인지 간략하고 명확하게 설명하며 모듈 유형의 목적과 이것이 적용된 코드가 어떤 형태이지 보여줍니다.
우리는 이러한 아키텍처를 설계할 때, 애플리케이션 프로그래밍과 빌드 시스템의 모범사례를 모두 검토했습니다. 또한 모듈 유형은 엄격한 가시성규칙을 정의합니다. 이러한 가시성 규칙은 해당 유형의 모듈 사이에 허용되는 종속성을 정의합니다. 개별 모듈은 가시성을 강화할 수 있습니다. 이는 모듈화의 장점을 취하면서 예기치 않은 인바운드 종속성을 피하려는 대규모 팀에서 종종 사용하는 기술입니다. 하나의 모듈은 해당 모듈 유형에서 허용하는 것 이상으로 가시성을 확장할 수 없습니다.
동등한 의미로 묶인 모듈 유형은 대규모 코드베이스의 목차 역할을 합니다. 엔지니어는 이러한 유형을 기반으로 모듈에 대한 논리적이고 정확한 멘탈모델을 빠르게 확립하게 됩니다. 기전에 lib/ 디렉터리에 있던 에어비앤비의 코드 90%가 모듈 유형으로 마이크레이션 되었습니다. 저의 동료인 Francisco는 코드 구성 전략이 폴더에서 모듈 유형으로 어떻게 발전했는지 그리고 어떻게 대규모 마이그레이션을 수행했는지 훌륭하게 설명했었습니다.
3) Dev Apps 생성하기
다음글
https://admd13.tistory.com/435
원문
'🍎iOS프로그래밍 > 오늘의 공부' 카테고리의 다른 글
대규모 iOS 앱 개발 생산성을 위해 바꾼 것들(에어비앤비) (0) | 2023.09.01 |
---|---|
에어비앤비 - 거대한 iOS앱의 생산성을 위해 바꾼 것들(4) (0) | 2023.09.01 |
에어비앤비 - 거대한 iOS앱의 생산성을 위해 바꾼 것들(2) (0) | 2023.08.31 |
에어비앤비 - 거대한 iOS앱의 생산성을 위해 바꾼 것들(1) (0) | 2023.08.30 |
[Swift] COW(Copy-On-Write) (0) | 2023.02.24 |
댓글