Migrating an Ecosystem: An Empirical Study of How React Native Libraries Adopted the New Architecture
이 실증적 연구는 React Native 생태계의 새로운 아키텍처로의 이전을 분석하며, 주요 이정표들이 인기 있는 라이브러리들 사이에서 채택을 가속화한 반면, 이주되지 않은 채 휴면 상태인 패키지의 상당 부분이 여전히 사용되고 있어 호환성 계층이 장기적인 인프라가 되어버린 파편화된 지형을 초래하고 있음을 밝히고 있다.
원본 논문은 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
소프트웨어의 세계에서 플랫폼은 수많은 애플리케이션이 구축되는 토대입니다. 도시의 인프라가 건물이 어떻게 지어지는지를 결정하는 것과 마찬가지로, 이러한 디지털 토대는 개발자들이 모바일 앱을 만들 수 있도록 필수적인 도구와 규칙을 제공합니다. 때때로 이 플랫폼의 소유자들은 성능을 개선하거나 새로운 기능을 추가하기 위해 핵심 시스템을 교체해야 합니다. 이는 플랫폼 자체뿐만 아니라 그에 의존하는 수천 개의 독립적인 도구와 라이브러리들에게도 거대한 작업입니다. 토대가 변하면, 그 위에 세워진 모든 구조물도 결국 적응해야 하며, 그렇지 않으면 더 이상 맞지 않게 됩니다. 이는 복잡한 과제를 낳습니다. 즉, 거대하고 분산된 독립적 창작자들의 생태계가 자신들의 발밑 지형이 변할 때 어떻게 반응하느냐 하는 문제입니다. 이 질문은 단순히 기술적인 문제가 아니라, 인간의 협업, 유지보수, 그리고 디지털 도구의 생애 주기에 관한 연구입니다.
독립 연구가인 레반트 크리슈나 마둘라(Revanth Krishna Maddula)의 최근 연구는 인기 있는 모바일 애플리케 Anwendungen 구축 프레임워크인 리액트 네이티브(React Native) 생태계 내에서 발생하는 바로 이 시나리오를 조사합니다. 리액트 네이티브는 최근 "브리지(bridge)"라고 알려진 기존의 통신 시스템을 더 빠른 새로운 아키텍처로 교체했습니다. 이 전환은 즉각적으로 이루어지지 않았습니다. 몇 년에 걸쳐 세 단계로 진행되었습니다. 첫째, 새 시스템이 선택 사항으로 제공되었습니다. 둘째, 새로운 시스템이 표준 설정이 되었으나 개발자가 원할 경우 여전히 이전 방식으로 되돌릴 수 있었습니다. 마지막으로, 기존 시스템이 완전히 꺼지면서 새로운 아き텍처가 유일한 옵션이 되었습니다. 마둘라는 이 변화에 생태계가 어떻게 반응했는지 측정하고자 했습니다. 그는 단순히 공식 발표나 가장 인기 있는 앱만을 본 것이 아니라, 커뮤니티 디렉토리에 나열된 약 2,800개의 라이브러리 전체 카탈로그를 분석했으며, 특히 새로운 시스템에 맞춰 다시 작성되어야 하는 네이티브 코드를 포함한 1,444개의 라이브러리에 집중했습니다.
결과는 매우 다른 두 집단이 서로 다른 속도로 움직이고 있다는 이야기를 보여줍니다. 네이티브 코드를 포함하고 있는 라이브러리 중 약 62%가 새로운 아키텍처로 성공적으로 이주했습니다. 이러한 성공적인 라이브러리들은 생태계의 핵심적인 역할을 수행하며, 전체 주간 다운로드 수의 95%를 차지합니다. 이는 대다수의 사용자에게 전환이 사실상 완료되었음을 의미합니다. 그러나 이주하지 못한 519개의 라이브러리로 구성된 상당한 꼬리 부분이 존재합니다. 이들은 주로 수년 동안 업데이트되지 않은 오래되고 휴면 상태인 프로젝트들입니다. 이들이 전체 사용량에서 차지하는 비중은 작지만, 여전히 매주 수백만 건의 다운로드를 기록하고 있습니다. 연구에 따르면 이 미이주 라이브러리 중 115개는 주당 최소 10,000건의 다운로드를 기록하고 있으며, 41개는 100,000건 이상의 다운로드를 기록하고 있습니다. 이들은 이름 없는 도구들이 아닙니다. 파일 시스템, 비디오, 결제 및 알림을 처리하는 널리 사용되는 컴포넌트들이 포함되어 있습니다. 너무나 많은 애플리케이션이 여전히 이들에 의존하고 있기 때문에, 플랫폼 소유자들은 생태계의 큰 부분을 망가뜨리지 않고는 기존 시스템을 단순히 제거할 수 없습니다.
이러한 이주 타이밍은 압박과 대응에 관한 구체적인 이야기를 들려줍니다. 플랫폼이 선택 사항에서 기본 설정으로, 그리고 마지막으로 필수 요구 사항으로 이동함에 따라 라이브러리가 업데이트되는 속도가 증가했습니다. 매달 전환되는 라이브러리의 수는 느린 흐름에서 꾸준한 흐름으로 늘어났습니다. 그러나 데이터는 이러한 공식적인 마감 기한이 이주하지 않은 라이브러리들을 변화시키지는 못했다는 점을 시사합니다. 정체되어 있는 라이브러리들은 시간이나 경고의 부족 때문이 아니라, 관리자가 부재했기 때문에 변화하지 못했습니다. 연구 결과, 특정 라이브러리가 이주할 것인지를 예측하는 가장 강력한 변수는 단순히 해당 라이브 much 업데이트가 여전히 진행 중인지 여부였습니다. 수년 동안 새로운 버전을 출시하지 않은 라이브러리는 플랫폼의 규칙과 상관없이 이주할 가능성이 낮았습니다. 여전히 활발하게 유지보수되고 있는 라이브러리들 사이에서도, 새로운 시스템이 기본 설정이 된 지 2년 이내에 이주한 비율은 절반 미만이었습니다.
이 라이브러리들이 어떻게 업데이트되었는지에 관한 놀라운 발견도 있었습니다. 플랫폼 소유자들은 필요한 코드를 자동으로 생성하는 "코드젠(Codegen)"이라는 특정 공식 이주 경로를 설계했습니다. 그러나 생태계는 이 단일 경로를 따르지 않았습니다. 대신, 이주 대상이 파편화되었습니다. 성공적으로 이주한 라이서리의 거의 절반은 공식 경로 대신 엑스포 모듈(Expo Modules)과 니트로 모듈(Nitro Modules)이라는 서드파티 프레임워크를 사용하는 것을 선택했습니다. 이러한 서드파티 도구들은 새로운 시스템을 구축하는 더 쉽거나 빠른 방법을 제공하여 이주 노력의 상당 부분을 흡수했습니다. 이는 생태계가 이제 플랫폼 자체의 공식 도구만큼이나, 혹은 그보다 더 많이 이러한 외부 프레임워크에 의존하고 있음을 의미합니다. 연구는 이로 인해 새로운 종속 계층이 생성되었으며, 생태계 전체의 안정성이 이제 이러한 중개자들에게 부분적으로 달려 있다고 언급합니다.
연구진은 이주하지 않은 라이브러리 제작자들이 무엇을 말하고 있는지도 살펴보았습니다. 그 결과, 10곳 중 1곳 미만의 매우 적은 수만이 문서에 새로운 아키텍처나 자신의 유지보수 상태에 대해 언급했다는 것을 발견했습니다. 대부분은 아무 말도 하지 않았습니다. 목소리를 낸 이들 중에서도 메시지는 주로 방치에 관한 것이었습니다. 일부 라이브러리는 명시적으로 '사용 중단(deprecated)'으로 표시되었고, 다른 것들은 아카이브되거나 새로운 관리자를 찾고 있는 것으로 기재되었습니다. 소수의 라이브러리는 새로운 시스템을 지원한다고 주장했지만, 코드를 자세히 살펴보면 여전히 기존 시스템에서 실행되고 있었습니다. 이들은 호환성 레이어(compatibility layer)에 의존하여 작동하고 있었습니다. 이 레이어는 기존 코드가 새 시스템에서 실행될 수 있도록 돕는 번역기 역할을 하지만, 영구적인 해결책은 아닙니다. 연구는 생태계의 상당 부분에서 이 호환성 레이어가 임시적인 가교가 아니라 영구적인 목적지가 되어버렸다고 시사합니다.
이러한 발견의 함의는 이 플랫폼 위에서 작업하는 모든 이들에게 명확합니다. 라이브러리에 붙은 공식적인 "지원됨(supported)" 라벨이 반드시 완전히 업데이트되었음을 보장하는 것은 아닙니다. 그것은 단지 라이브러리가 호환성 레이어를 통해 작동하고 있다는 의미일 수도 있습니다. 개발자들에게 있어, 이는 라이브러리의 상태를 확인하려면 표면적인 선언보다 더 깊이 들여다봐야 함을 의미합니다. 연구는 다운로드 수가 높은 휴면 상태의 종속성이 가장 위험한 종속성임을 강조하는데, 이는 호환성 레이어가 향후 제거될 경우 문제를 일으킬 가능성이 가장 높기 때문입니다. 플랫폼 소유자들에게 주는 교훈은, 마감 기한을 설정하는 것이 활발한 관리자들에게는 효과적이지만, 생태계의 휴면 상태인 꼬리 부분에는 아무런 영향을 미치지 못한다는 것입니다. 연구는 결론적으로, 호환성 레이어는 장기적인 인프라로서 계획되어야 하며, 플랫폼은 이주 과정에 필수적인 역할을 하게 된 서드파티 프레임워크들과 적극적으로 소통해야 한다고 밝힙니다. 전환은 완료되었다고 선언할 수 있는 단일 사건이 아니라, 생태계가 자신만의 파편화된 방식으로 나아가는 지속적인 과정입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.