[3편] 실패에서 배운다

GraphQL 전환, 서버 주도 UI, 그리고 플랫폼팀의 자격

by 오유나
이 글은 Pragmatic Engineer의 뉴스레터 및 팟캐스트 에피소드 Building Reddit’s iOS and Android apps at scale​를 바탕으로 작성하였습니다.


REST -> GraphQL: 이론보다 어려운 현실

Reddit은 몇 년에 걸쳐 GraphQL로 API를 전환했습니다. 이 전환은 ‘기술적으로 더 나아 보이니까’가 아니라, 실무에서 이미 REST의 한계를 절감했기 때문입니다.

• 모바일에서 불필요한 데이터가 과도하게 전달됨

• 클라이언트마다 요청 로직이 달라 동기화가 어려움

• 버전 관리와 계약(Contract) 이슈가 반복됨


GraphQL로 바꾸면, 각 클라이언트가 필요한 데이터만 선택해서 요청할 수 있고, 타입 안정성이 생기며, 일관된 명세 관리가 가능해집니다.


하지만 문제는 그다음이었습니다. Reddit은 초기엔 REST의 구조를 그대로 GraphQL로 옮기는 ‘1:1 매핑’을 했습니다. 결과는 다음과 같았습니다.

• 데이터 과다 요청(over-fetching): GraphQL이지만 REST처럼 사용해서 생긴 문제

• 클라이언트 로직 유지: 서버가 간결하지 못해 여전히 복잡한 계산이 앱에 남음

• 느린 응답 속도: 초기에 GraphQL 응답이 REST보다 느려 사용자 경험 악화


이걸 보며 느꼈습니다. 기술 전환의 핵심은 단지 ‘무엇으로 바꿀 것인가’가 아니라, ‘어떻게 바꿀 것인가’에 대한 전략입니다. 구조만 바꾸고 패러다임은 그대로 두면, 결국 기술도 팀도 지쳐버립니다.


서버 주도 UI: 구현은 가능하지만 유지가 어렵다

서버에서 정의한 UI 구성(JSON 기반)을 앱이 해석해 그리는 구조. 많은 기업이 이 개념을 탐냈고, Reddit도 마찬가지였습니다. 특히 포스트 피드 영역에서 시도했죠.

• 왜? 클라이언트에 과도한 렌더링 로직이 분산되어 있었고, 화면 간 일관성이 없었기 때문입니다.

• 무엇이 어려웠나? UI 정의를 서버로 넘겼더니, 각 요소가 어떤 모델을 참조하는지 단절됨.

• 결과는? 이중 페칭, 상태 동기화 문제, 클릭 불능 오류 같은 이슈가 발생함.


특히 “게시글을 클릭했는데 아무 반응이 없다”는 문제는 서버와 클라이언트 간 요청의 비동기 실패로 발생한 이슈였습니다. 정작 사용자에겐 그냥 앱이 망가진 것처럼 보이죠.


Reddit은 결국 이 구조를 일부 롤백하고, 피드 영역만 다시 고정형 UI로 재구성하게 됩니다.


저는 이 사례를 보며 ‘서버 주도 UI’라는 기술 자체가 문제라기보다는, 조직의 준비도와 커뮤니케이션 체계, 그리고 복잡도를 관리할 체력이 없을 때 도입하면 안 되는 기술이라는 점을 실감했습니다.


플랫폼팀, 아무나 갈 수 있을까?

Reddit의 플랫폼팀 리더들은 이 질문에 명확하게 답했습니다.


“우리는 기술 엘리트가 아니다. 플랫폼팀은 서비스팀을 돕기 위한 팀이다.”


플랫폼팀에 필요한 역량은 다음과 같습니다.

1. 자기 코드의 장기적 결과를 책임질 수 있는 사람

빠르게 기능 만들고 지우는 것과 달리, 플랫폼팀의 코드는 5년 이상 유지되며 수십 명이 쓴다.

2. 사람을 돕고 싶은 의지가 있는 사람

본인의 멋진 코드보다, 피처팀의 고통을 줄이는 것이 더 중요하다고 생각하는 사람.

3. 겸손한 태도와 장기적 사고력

최신 기술보다 중요한 건, 그것이 조직에 필요한 시점인지 판단할 줄 아는 감각.

4. 커뮤니케이션 역량

기술을 도입할 때, 그것을 사용하는 수많은 팀과 협업하고 설득해야 한다.


저는 개인적으로 이 말을 인상 깊게 기억합니다.


“우리는 ‘그 기술이 멋지니까’ 도입하지 않는다. 그 기술이 문제를 덜어주니까 도입한다.”


좋은 플랫폼팀은 기술보다 사람을 본다

Reddit 시리즈를 쓰며 가장 크게 느낀 건, Reddit의 플랫폼팀이 진짜로 ‘사람 중심의 기술’을 만들고 있다는 점이었습니다.

성능보다 피로를 줄이는 설계를 하고, 구조보다 공감을 먼저 만들며, 기술보다 신뢰를 쌓고 있었습니다.


그리고 이건 저희 모두에게 해당하는 이야기라고 생각합니다.

나는 지금, 동료의 문제를 해결하고 있는가?

기술을 통해 일하기 쉽게 만들고 있는가?


이 질문 앞에서, 저도 다시 저의 일하는 방식을 돌아보게 됩니다.

keyword
화, 목, 토 연재
이전 15화[2편] 플랫폼팀이 문화를 바꾸는 방법