React Native 릴리스

React Native 0.84 — Hermes V1이 기본 엔진으로

원문: React Native 0.84 - Hermes V1 by Default

2026년 2월 11일 · 약 6분 분량

출처: reactnative.dev/blog/2026/02/11/react-native-0.84

Alex Hunt
Alex Hunt
Software Engineer @ Meta
Alan Lee
Alan Lee
Software Engineer @ Meta
Christian Falch
Christian Falch
Software Engineer @ Expo
Gabriel Donadel Dall'Agnol
Gabriel Donadel Dall'Agnol
Software Engineer @ Expo
문서 범위 · 2026-10-02 확인

블로그 번역은 최초 발표 당시의 설명을 보존합니다. 본문의 “최신 버전”, 지원 상태, 출시 예정 안내도 발표 당시 기준입니다.

0.84.x 패치 내역을 별도로 정리했습니다. 확인한 가장 최근 정식 패치는 0.84.1입니다.

오늘 React Native 0.84를 릴리스하게 되어 기쁩니다!

이번 릴리스에서는 Hermes V1이 기본 JavaScript 엔진이 되어 모든 React Native 앱이 상당한 성능 향상을 얻게 됩니다. 또한 iOS와 Android 양쪽에서 레거시 아키텍처 제거를 계속 진행했고, iOS에서는 사전 컴파일(precompiled) 바이너리가 기본으로 제공됩니다.

주요 변경 사항 (Highlights)

그 외

Hermes V1이 기본으로

React Native 0.82에서 실험적 opt-in으로 처음 공개된 이후, 이제 iOS와 Android 모두에서 Hermes V1이 React Native의 기본 JavaScript 엔진이 됩니다.

Hermes V1은 Hermes 엔진의 다음 세대로, 컴파일러와 VM 양쪽의 큰 개선을 통해 측정 가능한 수준의 JavaScript 성능 향상을 제공합니다.

내 앱에는 어떤 의미인가

Hermes V1에서 빠져나오는 방법 (opt-out)

패키지 매니저 오버라이드
package.json에서 기존 hermes-compiler 패키지 버전을 강제로 고정합니다.

package.json — npm
"overrides": { "hermes-compiler": "0.15.0" }
package.json — yarn
"resolutions": { "hermes-compiler": "0.15.0" }
package.json — pnpm
"pnpm": { "overrides": { "hermes-compiler": "0.15.0" } }

iOS
CocoaPods 의존성을 설치할 때 RCT_HERMES_V1_ENABLED=0과 RCT_USE_PREBUILT_RNCORE=0 환경 변수를 함께 넘깁니다.

Android
android/gradle.properties에 hermesV1Enabled=false를 추가하고, React Native를 소스에서 빌드하도록 설정합니다.

iOS 사전 컴파일 바이너리 기본 적용

React Native 0.84부터 iOS에서 사전 컴파일 바이너리가 기본으로 제공됩니다. 이전에는 opt-in이었지만 이제 기본으로 켜지며, iOS 앱의 빌드 시간이 크게 줄어듭니다.

즉, 클린 빌드를 할 때마다 React Native 코어를 소스에서 컴파일할 필요가 없습니다. 사전 컴파일된 .xcframework 바이너리를 pod install 과정에서 자동으로 내려받아 사용합니다.

참고

React Native를 소스에서 빌드해야 한다면(예: Hermes V1에서 빠져나오려는 경우), pod 설치 시 RCT_USE_PREBUILT_RNCORE=0을 지정해 사전 컴파일 바이너리를 끌 수 있습니다.

레거시 아키텍처 컴포넌트 제거

새 아키텍처를 유일한 런타임 옵션으로 만든 0.82의 작업에 이어, React Native 0.84에서도 iOS와 Android 양쪽에서 레거시 아키텍처 코드를 계속 제거하고 있습니다. RFC에 설명한 대로, 릴리스마다 레거시 아키텍처 클래스를 몇 개씩 제거해 나갑니다.

iOS

0.83에서 레거시 아키텍처 코드를 컴파일에서 빼는 실험적 RCT_REMOVE_LEGACY_ARCH 플래그를 도입했는데, 0.84에서는 이것이 기본 동작이 됩니다. 레거시 아키텍처 코드가 더 이상 iOS 빌드에 포함되지 않으므로 빌드 시간과 앱 크기가 모두 줄어듭니다.

이미 새 아키텍처로 넘어온 앱이라면 깨질 일은 없습니다. 호환에 필요한 Interop Layer 코드는 그대로 남아 있습니다.

iOS에서 레거시 아키텍처 코드를 다시 켜려면 소스에서 빌드해야 합니다. 다음 플래그와 함께 CocoaPods 의존성을 설치하세요.

RCT_USE_PREBUILT_RNCORE=0 RCT_REMOVE_LEGACY_ARCH=0 bundle exec pod install

Android

이번 릴리스에서 제거된 레거시 아키텍처 클래스 목록입니다.

com.facebook.react.LazyReactPackage
com.facebook.react.bridge.CxxModuleWrapper
com.facebook.react.bridge.CxxModuleWrapperBase
com.facebook.react.bridge.CallbackImpl
com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
com.facebook.react.bridge.OnBatchCompleteListener
com.facebook.react.bridge.ReactCxxErrorHandler
com.facebook.react.bridge.ReactInstanceManagerInspectorTarget
com.facebook.react.modules.debug.DidJSUpdateUiDuringFrameDetector
com.facebook.react.devsupport.BridgeDevSupportManager
com.facebook.react.uimanager.NativeKind
com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener
com.facebook.react.uimanager.layoutanimation.LayoutAnimationController
com.facebook.react.uimanager.layoutanimation.LayoutAnimationListener

Node.js 22 이상 필수

React Native 0.84는 Node.js v22.11 이상을 요구합니다. 이 버전업으로 React Native 툴링 생태계 전반에서 최신 JavaScript 기능을 쓸 수 있게 됩니다.

업그레이드 전에 Node.js 버전을 먼저 올려두세요. nvm이나 fnm 같은 버전 매니저 사용을 권장합니다.

기타 변경 사항

React 19.2.3

이번 릴리스는 React 19.2.3을 React Native에 반영해, React 팀의 최신 수정과 개선을 포함합니다.

ESLint v9 Flat Config

React Native의 ESLint 설정이 ESLint v9 Flat Config를 지원합니다. 프로젝트에서 최신 ESLint 툴링을 도입하기가 더 쉬워집니다.

플랫폼 지원

접근성

onPress나 onLongPress 핸들러가 있는 Text 컴포넌트는 이제 자동으로 accessibilityRole="link"를 갖게 되어, 스크린 리더가 상호작용 가능한 텍스트를 올바르게 읽어줍니다.

Android에서는 재활용(recycle)되는 뷰의 접근성 상태 문제를 고치는 작업이 많이 이루어졌습니다. 뷰가 재활용될 때 isClickable과 OnClickListener 상태가 제대로 초기화되도록 해서, 스크린 리더가 잘못된 상태를 읽는 문제를 막았습니다.

URL API 개선

URL에 빠져 있던 표준 속성들(hash, host, pathname 등)과 URLSearchParams의 메서드들(get, set, delete 등)이 추가되어, React Native의 URL 구현이 웹 표준에 더 가까워졌습니다. URLSearchParams의 중복 엔트리 문제도 수정되었습니다.

호환성이 깨지는 변경

iOS

Android

C++

JS

전체 호환성 깨짐 목록은 0.84 CHANGELOG에서 확인하세요.

Deprecation

이번 릴리스에는 두 가지 deprecation이 있습니다.

감사의 말

React Native 0.84에는 95명의 컨트리뷰터가 만든 650개 이상의 커밋이 담겨 있습니다. 모든 분들의 노고에 감사드립니다!

이번 릴리스에서 특히 큰 기여를 해주신 분들께 특별히 감사를 전합니다.

0.84로 업그레이드하기

참고

이제 0.84가 React Native의 최신 안정 버전이며, 0.81.x는 지원 종료(unsupported) 상태가 됩니다. 자세한 내용은 React Native 지원 정책을 참고하세요.

업그레이드

기존 프로젝트에서는 React Native Upgrade Helper로 버전 간 코드 변경 사항을 확인하고, 함께 업그레이드 문서도 참고하세요.

💡 새로운 것: Community CLI 프로젝트를 위한 실험적 upgrade-react-native AI 스킬도 사용해볼 수 있습니다.

새 프로젝트 생성

npx @react-native-community/cli@latest init MyProject --version latest

Expo

Expo 프로젝트에서는 React Native 0.84를 expo@canary 릴리스로 사용할 수 있습니다. 다음 SDK인 SDK 56은 그다음 안정 릴리스인 React Native 0.85와 함께 제공됩니다.

0.84.x 패치 릴리스

확인일: 2026-10-02 · 배포일: 한국 시간(UTC+9) · RC와 nightly는 제외

공식 GitHub 릴리스와 CHANGELOG의 변경 항목을 한국어로 정리했습니다. 기록이 짧거나 비어 있는 버전은 공식 태그 비교로 보충하고 그 근거를 표시했습니다. 각 항목은 해당 패치의 변경 사항입니다.

버전배포일주요 내용
0.84.12026-02-28Android 모노레포와 Hermes V1 비활성화 설정 수정

0.84.1 · Android 모노레포와 Hermes V1 비활성화 설정 수정

배포일: 2026-02-28

출처: 공식 릴리스 0.84.1

태그: announcementrelease
본문 크기18
코드 크기16
const width = 100;