비교 목록으로 돌아가기
크로스 플랫폼 UI

Perry vs React Native

React Native는 JavaScript/TypeScript로 iOS와 Android의 네이티브 UI를 구동할 수 있게 해줍니다 — UI 컴포넌트는 JS-to-네이티브 브리지 (또는 New Architecture에서는 같은 개념적 형태의 JSI/Fabric 레이어)를 통해 플랫폼 위젯에 매핑됩니다. Perry는 다른 접근을 택합니다: TypeScript를 사전에 네이티브 머신 코드로 컴파일하고, 네이티브 UI는 런타임 브리지가 아니라 컴파일된 바이너리의 일부가 됩니다.

React Native란 무엇인가?

React Native는 React로 모바일 앱을 만들기 위한 Meta의 프레임워크입니다. JavaScript는 임베디드 엔진 — 기본값은 Hermes, 또는 JavaScriptCore — 에서 실행되고, 브리지 (레거시) 또는 JSI/Fabric (New Architecture)을 통해 네이티브 iOS/Android 위젯과 상호작용합니다. 프레임워크는 모바일 우선 (iOS와 Android)이며, Microsoft가 Windows와 macOS용 커뮤니티 포크를 유지하고 있습니다. React Native는 Meta, Microsoft, Shopify, Discord 등 여러 회사의 앱을 구동해 왔습니다.

Perry란 무엇인가?

Perry는 TypeScript를 곧바로 네이티브 머신 코드로 컴파일합니다. perry/ui 모듈은 SwiftUI 스타일의 선언적 UI 시스템으로, 빌드 타임에 네이티브 플랫폼 위젯으로 컴파일됩니다 — 바이너리 안에 JS 런타임도, 브리지도, JSI도 없습니다. 같은 TypeScript 코드베이스가 macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly, 웹으로 컴파일됩니다.

나란히 비교

기능PerryReact Native
실행 모델AOT 컴파일된 네이티브 머신 코드JS 엔진 (Hermes/JSC) + 네이티브 브리지 (또는 JSI/Fabric)
앱 내 JS 엔진없음Hermes (기본) 또는 JavaScriptCore
UI네이티브 위젯 — SwiftUI 스타일 선언적 APIReact + 브리지·Fabric을 통한 네이티브 위젯
주요 타겟macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, 웹iOS, Android (Windows/macOS는 커뮤니티 포크)
서버·CLI·데스크톱 바이너리지원 (CLI 도구, 서버, 데스크톱 앱)지원하지 않음 (모바일 UI 프레임워크)
JS와 네이티브 사이의 브리지브리지 없음 — 네이티브 코드 자체가 프로그램있음 (레거시 브리지 또는 JSI/Fabric)
개발 중 핫 리로드perry dev (워치 모드 자동 재컴파일)Fast Refresh (매우 빠름)
성숙도1.0 이전안정, 프로덕션에 폭넓게 배포됨
컴포넌트 라이브러리perry/ui 코어 위젯 + perry-react React 호환 레이어방대함 — React Native + 커뮤니티 패키지

Perry가 앞서는 점

  • +배포되는 앱에 JS 엔진이 없습니다. Perry로 컴파일된 바이너리는 Hermes나 JSC를 동반하지 않습니다 — TypeScript가 곧 실행 파일입니다.
  • +브리지·JSI 비용이 없습니다. 네이티브 UI 호출은 JS-네이티브 마샬링이 아니라 직접적인 컴파일된 함수 호출입니다.
  • +더 넓은 플랫폼 적용 범위. 하나의 Perry 코드베이스가 데스크톱 (macOS/Linux/Windows), 모바일 (iOS/iPadOS/Android), 웨어러블 (watchOS/Wear OS), TV (tvOS), WASM, 웹으로 컴파일됩니다. React Native는 모바일 우선입니다.
  • +같은 컴파일러로 만드는 서버 사이드와 CLI 바이너리 — Perry는 UI 프레임워크일 뿐만 아니라 서버 런타임이기도 합니다.
  • +AOT 컴파일된 연산 성능 — 워밍업도, JIT도, 브리지 라운드트립도 없습니다.
  • +perry-react는 네이티브 위젯으로 컴파일되는 React/JSX를 제공하므로, 바이너리에 JS 엔진을 넣지 않고도 React의 정신 모델을 그대로 사용할 수 있습니다.

React Native이 앞서는 점

  • +방대한 커뮤니티 지원, 라이브러리, 도구를 갖춘 성숙하고 검증된 생태계.
  • +개발 중의 Fast Refresh는 업계 최고 수준입니다 — 코드 변경이 재빌드 없이 밀리초 안에 반영됩니다.
  • +거대한 인재 풀. React Native 개발자를 채용하기는 쉽지만, Perry는 새로운 도구입니다.
  • +확립된 CI/CD, App Store·Play Store 배포 파이프라인과 codepush 스타일의 OTA 업데이트.
  • +JSI/Fabric과 New Architecture는 React 프로그래밍 모델을 유지하면서 네이티브와의 역사적 성능 격차를 상당히 좁혀 왔습니다.
  • +Meta와 주요 채택 기업 (Microsoft, Shopify, Amazon)의 직접적인 지원이 프레임워크의 발전을 지속시킵니다.

Perry을 선택해야 할 때

모바일·데스크톱·워치·TV·WASM·웹을 아우르는 하나의 TypeScript 코드베이스를 원할 때, 배포되는 앱에 JS 런타임이 없기를 원할 때, 브리지 없는 네이티브 UI를 원할 때, 또는 이미 TypeScript에 투자했고 JS 엔진 대신 네이티브 컴파일을 원할 때 Perry를 선택하세요.

React Native을 선택해야 할 때

모바일 앱을 만들고 가장 성숙한 크로스 플랫폼 네이티브 UI 프레임워크를 원할 때, 이미 React 팀이 있을 때, React Native 라이브러리 생태계에 의존할 때, 또는 오늘날 업계 표준의 모바일 크로스 플랫폼 스택이 필요할 때 React Native를 선택하세요.

결론

React Native는 JS 런타임과 (지금은 개선된) 브리지를 가진 모바일 우선 프레임워크입니다. Perry는 TypeScript에서 네이티브 바이너리를 만드는 컴파일러로, 네이티브 UI는 컴파일 출력의 일부입니다. 가장 깊은 생태계를 가진 모바일 React를 원한다면 오늘날 React Native가 답입니다. 모바일 + 데스크톱 + 워치 + TV로 컴파일되는 하나의 TypeScript 코드베이스를 앱 안에 JS 런타임 없이 원한다면 Perry가 답입니다.

Perry 사용해보기

오늘 바로 TypeScript를 네이티브로 컴파일하세요.

시작하기