프로젝트 LightSpeed : 페이스북 메신저앱을 작고 빠르게 재개발
(engineering.fb.com)- 크기는 1/4, 속도는 두배 빠른 iOS 메신저앱 배포시작
- 가능한 Native OS의 것들을 사용
- SQLite에 모든것을 저장하는 방식으로 변경. 작업은 다 DB에서 일어나고, UI는 이를 표시만 하는 형태로
- 앱과 서버가 기능별 통신을 하는것보다, DB와 서버브로커가 통신하게 해서 로직을 단순화
단순히 메신저가 빨라졌어요! 라는 글일줄 알았는데, 많은 인사이트를 주네요.
- 다양한 UI 프레임워크들이 나오지만, 최상의 사용자 경험을 위해서는 Native가 답
- UI 재사용을 위해서 SQLite DB를 선택
- 심지어 이를 더 확장해서, SQLite를 모든 기능들을 지원하는 유니버설 시스템으로 사용. 모든 기능이 다 DB에서 일어나고 UI는 표시만 하게
- 모든 기능을 지원하는 통합 스키마를 만들고, 스토어드 프로시져로 비즈니스 로직들을 만들수 있는 플랫폼을 별도 개발 (MSYS)
- 앱이 서버와 통신하는 방식도 개별 프로토콜에서 통합방식으로 전환
- 서버 브로커가 게이트웨이로 서버의 각 기능과 통신하고, 서버브로커와 앱의 DB가 싱크하게 해서 커뮤니케이션 로직을 단순화