Facebook이 iOS 앱을 완전히 재작성한뒤 10년이 지나 어떻게 아키텍처가 달려져 왔는지를 정리한 글입니다. 현재 다른 iOS 앱과는 꽤 다른 아키텍처를 가지고 있는데 그 이유도 같이 정리되어 있고 현재는 iOS도 많이 발전되어서 지금 보면 이상한 모양일 수 있지만 플랫폼이 발전될때까지 사용자가 많은 서비스가 문제를 고치지 않고 기다릴 수는 없기 때문에 직접 수정을 하면서 이런 식의 변화가 이뤄지는게 한편으로는 자연스러워 보입니다. - 2012년 iOS를 재작성함 - 2년 뒤인 2014년 안정성에 문제가 발생해서 기존 설계를 지속할 수 없다는 판단을 함 - React의 아키텍처를 리서치했으나 당시에 Apple SDK에는 선언적인 UI가 없었음(지금은 있음) - 직접 선언적 UI 프레임워크인 ComponentKit을 만들어서 공개했고 성능도 50% 향상되었다. - 2015년이 되자 사용자가 증가하면서 다시 느려지기 시작했고 동적으로 코드를 로드할 수 있는 Dylibs를 도입해서 느려지는 문제를 해결함 - Dylins를 너무 많이 사용해서 초기 부팅이 오히려 느려졌고 아키텍처를 재설계해야 할 때가 되었음을 느낌 - 2017년 Dylibs 문제를 해결하기 위해 빌드 시스템인 Buck을 도입 - 2018년 Buck을 통해 코드 제너레이션을 할 수 있게 되어 런타임 기반의 앱 모듈 시스템이 됨 - 2020년 Swift가 대세가 되었지만, C++ 기반이었던 페이스북의 iOS 앱은 Swift와 궁합이 좋지 않았기 때문에 위에서 Swift를 쓸 수 있도록 아키텍처를 변겅함.

The evolution of Facebook's iOS app architecture

Engineering at Meta

The evolution of Facebook's iOS app architecture

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 21일 오전 3:15

 • 

저장 5조회 2,201

댓글 0