수십 명이 아닌 수백 명이 만드는 모바일 앱
이 글은 Pragmatic Engineer의 뉴스레터 및 팟캐스트 에피소드 Building Reddit’s iOS and Android apps at scale를 바탕으로 작성하였습니다.
레딧 앱에는 약 580개의 화면이 있습니다. 이 숫자를 처음 들었을 때 저는 ‘레딧이 그렇게 많은 UI가 있었나?’ 의문이 들었습니다. 보통 유저 입장에서 떠오르는 건 피드와 게시글 상세, 댓글, 프로필 정도니까요. 그런데 그 수백 개의 화면은 운영툴, 신고 흐름, 광고, 실험 기능, 관리 기능 등 서비스 곳곳에 퍼져 있는 모든 ‘기능 단위 화면’의 총합입니다.
실제로 저도 스타트업에서 앱을 만들다 보면, 출시 초기에 단순했던 앱이 점점 복잡해지고, 언제부턴가 기능 수가 파악되지 않을 정도로 늘어나게 됩니다. 하나하나는 작은 기능인데, 모이면 어느 순간 ‘덩어리’가 되어버리죠.
이걸 관리하려면 단순한 기술력보다 ‘어떻게 구조화할 것인가’에 대한 조직의 합의가 필요합니다. 그래서 레딧도 결국은 플랫폼팀을 중심으로 코어 스택(Core Stack)이라는 설계 기준을 도입합니다.
Core Stack은 일종의 개발 프레임워크입니다. 플랫폼팀이 정의한 이 스택은 다음과 같은 구성을 갖습니다.
• 모노레포 기반 코드 구조 (각 기능별 모듈화)
• Android는 Jetpack Compose + MVVM, iOS는 SliceKit(자체 UI 래퍼) SwiftUI로 점진 이전
• REST API GraphQL 전환
• 공통 디자인 시스템 구축
이걸 보고 저는 과거의 저를 떠올렸습니다. 수많은 기능이 엉켜 있는 앱을 정리할 때, 어느 것부터 손대야 할지 몰라서 팀원들끼리 표준을 만들고 다시 무너지고… 결국은 ‘누가 먼저 질서 있는 방향으로 정리를 시작해 주느냐’가 핵심이었습니다.
Core Stack은 그 역할을 합니다. ‘이렇게 만들면 너도 생산적이고, 우리도 관리가 편하다’는 명확한 방향. 동시에 이 스택은 강제가 아닌 권고이기 때문에, 각 팀은 필요한 만큼만 도입하고, 점진적으로 따라갈 수 있습니다.
즉, 이건 ‘새로운 기술을 도입하자’가 아니라, “개발자들이 주도적으로 구조를 이해하고 확장할 수 있게 하자”는 설계의 철학입니다.
Reddit 팀의 답은 명확했습니다.
• 개인 프로젝트에는 꽤 유용하다.
• 실무에서는 자동완성(AI Assist)의 수준.
• 구조를 설계하거나, 복잡한 앱에선 큰 도움 되진 않는다.
이건 저도 실감합니다. 예를 들어 Git 사용법이나, 어떤 컴포넌트가 적절한지 빠르게 레퍼런스를 찾아보는 용도로는 ChatGPT가 정말 유용합니다. 하지만 실전 앱 개발, 특히 유지보수성과 성능을 고려해야 하는 작업에서는 여전히 ‘사고의 도구’ 정도입니다.
그래도 저는 이 부분에서 한 가지 인사이트를 얻었습니다.
“AI 도구의 핵심 가치는, 나의 사고를 더 빠르게 구체화할 수 있도록 돕는 것”이라는 점입니다. 그리고 앞으로는 아마도 AI 도구를 디버깅이나 테스트 생성에 더 적극적으로 통합하는 플랫폼팀의 역할이 중요해질지도 모르겠습니다.