Shopify is moving from React Native back to Swift and Kotlin
Shopify, React Native에서 Swift·Kotlin 네이티브로 회귀 — LLM이 뒤집은 모바일 스택의 계산
Shopify가 2020년의 React Native 올인 결정을 뒤집고 모든 모바일 앱을 Swift와 Kotlin으로 재구축한다고 발표했습니다. 결정적 변수는 코딩 에이전트의 발전으로, '같은 기능을 두 플랫폼에 두 번 만드는 비용'이라는 핵심 가정이 무너졌기 때문입니다. Shop 앱은 AI 지원 하에 개념 증명에서 스토어 출시까지 12주 만에 네이티브 재구축을 완료했습니다.
- 주제
본문
Shopify가 2020년에 내린 React Native 전면 도입 결정을 공식적으로 철회하고, Shopify·Shop·Point of Sale·Inbox 등 모든 모바일 앱을 Swift와 Kotlin 네이티브로 다시 작성한다고 밝혔습니다. React Native 자체는 여전히 훌륭한 프레임워크이며 지난 6년간 약속한 이점을 충실히 제공했다고 평가하면서도, 결정의 근거가 된 핵심 가정 하나가 LLM의 발전으로 바뀌었다는 것이 전환의 이유입니다.
왜 다시 네이티브인가
2020년 React Native를 선택한 이유는 세 가지였습니다. 같은 기능을 두 번 만들지 않는 것, 모바일 경험이 없는 개발자도 스택을 넘나들며 기여하게 하는 것, 플랫폼 간 기능 패리티를 쫓는 대신 가치를 배포하는 데 시간을 쓰는 것입니다. React Native는 이 약속을 지켰고, 성능 최적화와 프레임워크 업데이트·외부 의존성 대응에 상당한 리소스가 들었지만 감수할 만한 트레이드오프였습니다.
그런데 Shopify는 2021년부터(ChatGPT 출시 1년 전부터) LLM으로 소프트웨어를 만들어 왔고, 2025년 말에 이르러 모델이 단순한 코딩 가속을 넘어 '두 번 빌드하는 것이 여전히 두 배의 작업인가'라는 질문 자체를 던지게 만들 수준이 됐습니다. Swift와 Kotlin으로 핵심 부분을 재구축하는 프로토타입에서 에이전트는 iOS 버전을 참조해 Android 기능을 구현하거나 그 반대로 작업할 수 있었고, 개발자가 주력 스택 밖에서도 효과적으로 기여하도록 도왔으며, 공유 스펙·테스트·리뷰 체크포인트를 통해 플랫폼 간 패리티 유지 비용을 크게 낮췄습니다. 두 플랫폼을 유지하는 비용 자체는 사라지지 않았지만 더 이상 2020년처럼 결정적 요인이 아니며, 네이티브는 플랫폼 기능과 퍼스트파티 툴링에 더 가까이 붙고 코드와 플랫폼 사이의 프레임워크·의존성 레이어를 줄여 줍니다.
공개한 React Native 오픈소스의 거취
React Native Skia는 Shopify가 2026년 말까지 스폰서를 계속하고, 이후 William Candillon이 저장소를 포크해 새 이름으로 라이브러리를 이어가며 원본은 아카이브됩니다. 주간 약 200만 회 다운로드되는 FlashList는 생태계의 중요성을 고려해 호환성을 깨는 치명적 이슈는 계속 수정하되, 장기 관리를 맡을 기업과 협의 중입니다. Restyle은 사용자 기반이 작아 2026년 말까지 동작을 유지한 뒤 아카이브하며, 원하는 팀이 포크해 인계받을 수 있습니다.
이번엔 그린필드 — Helix와 마이그레이션 방식
과거 React Native로의 전환에서는 점진적 이전(브라운필드)을 택했지만 이번에는 새로 작성(그린필드)이 명확한 승자였습니다. LLM이 React Native 버전을 참조로 네이티브 기능을 잘 만들고, 기존 제약 없는 클린 슬레이트를 얻으며, 프로토타입이 에이전트 이전 시대보다 훨씬 빠른 재구축을 보여줬기 때문입니다. 앱스토어 쇼핑 카테고리 상위권인 Shop 앱이 첫 대상으로, AI 지원 하에 개념 증명에서 네이티브 앱 출시까지 12주가 걸렸습니다. 300개 이상의 화면, 홈·잠금화면 위젯, Apple Watch 앱, complications, Siri Shortcuts를 포함한 가장 큰 Shopify 앱의 이전도 진행 중입니다.
한편 LLM에 코드베이스를 통째로 주고 한 번에 변환을 시도하면 유지보수 불가능한 코드가 나오기 때문에, Shopify는 Helix라는 시스템을 만들었습니다. 개발자가 화면을 지정하면 Helix가 React Native 코드를 읽고 몇 분 안에 리뷰 가능한 작은 체크포인트 순서를 제안하며, 각 체크포인트는 테스트로 동작을 증명하고, 실행 중인 앱과의 시각 리뷰를 통과하고, 두 명의 적대적 코드 리뷰어를 견디고, 사람의 승인을 받아야 커밋되고 다음 단계로 넘어갑니다. 모든 리뷰 피드백은 기억되어 마이그레이션이 진행될수록 루프의 자율성이 커집니다.
에이전트를 위한 아키텍처 — 빠른 피드백 루프
시뮬레이터 제어는 에이전트 작업의 병목이었습니다. 접근성 트리나 스크린샷에 의존해 상태를 읽고 검증하는 방식은 느리고 불안정해, 코드 수정은 초 단위인데 검증에 몇 분이 걸렸습니다. 이를 해결하기 위해 비즈니스 로직을 UI와 완전히 분리해 데스크톱에서 헤드리스로 실행하고, 이를 CLI로 에이전트에 노출해 시뮬레이터 없이 밀리초 단위로 이터레이션하게 만들었습니다. 이 CLI로 에이전트는 앱 상태를 조사하고 화면 간을 이동하며 동작을 수행해 수 시간씩 자율 작업이 가능하며, 시뮬레이터가 필요할 때는 리모트 모드로 연결해 레이아웃이나 접근성 트리 검사 없이 명령으로 UI를 구동해 빠른 E2E 테스트를 수행합니다. Shopify는 성공 기준을 이전 완료가 아니라 제품 속도·앱 품질·에이전트의 자율 작업량으로 측정하겠다고 밝혔습니다.
Reddit 반응
- @khendron — 흥미로운 관점이며 장기적으로 어떻게 될지 궁금합니다. 다만 LLM 사용료가 순수하게 얼마인지는 전혀 언급이 없습니다. 스택을 바꾸는 일이 공짜인 것처럼 이야기하고 있습니다.
원문: Shopify Engineering / 번역·요약: Trawling