Development/React Native

[React Native] 컴파일러 비교: Hermes vs. JSC

레오나르도 다빈츠 2024. 12. 9. 10:52

 

🚀 비교

  JSC Hermes
특징   meta에서 React Native만을 위해 만들었다.
컴파일 방식 JIT(Just-In-Time)
런타임에 코드를 컴파일하는 JIT(Just-In-Time)을 사용한다.
AOT
자바스크립트 코드로 실행 전 네이티브 머신 코드로 컴파일하는 선행 컴파일(AOT)을 사용한다. 미리 컴파일하여 바이트코드 형식으로 변환한다. 이를 통해 앱 시작 속도가 빨라지고 런타임 성능이 향상된다.
성능   헤르메스는 일반적으로 JSC보다 빠르며, 특히 저가형/구형 기기에서 더 빠르다.
메모리 사용량 메모리 관리를 위해 자동 가비지 컬렉션을 제공하며 IOS와 macOS 환경에서 최적화가 잘 되어있지만 메모리 사용 측면에서는 헤르메스보다 다소 무겁다고 평가된다. 하지만 최신 하드웨어에서는 성능차이가 크게 나지 않을 수 있다. JSC보다 메모리를 적게 사용한다. 이는 메모리 제한 장치에서 실행되어야하는 앱에 장점이 된다. 하지만 복잡한 연산에서는 JSC에 비해 약간 느릴 수 있다.
디버깅   디버깅 도구에 대한 접근을 제공하지 않아 브레이크 포인트같은 간단한 디버그가 어렵다. 하지만 Flipper와 함께 사용하면 문제를 완화할 수 있다.
호환성 자바스크립트 그 자체로 동작하기 때문에 대부분의 npm 모듈과 더 널리 호환된다. 하지만 헤르메스보다 느리고 더 많은 메모리를 사용할 수도 있다. 타사 라이브러리와 호환되지 않을 수 있다.
개발 JSC는 최신 ECMAScript 표준을 빠르게 지원하고, 특히 성능 최적화와 관련하여 많은 최신 기능들이 JSC에 먼저 적용된다.  

 

 

 

 

🚀 결론

  • Hermes는 React Native와 같은 모바일 애플리케이션에서 성능과 메모리 최적화를 중요시하는 프로젝트에 더 적합하다. 특히 앱의 초기 로딩 시간을 단축시키고, 모바일 환경에서 더 가볍고 빠르게 동작하는 장점이 있다.
  • JSC는 웹과 더 긴밀하게 연관된 환경에서 좋은 성능을 발휘하며, JavaScript 표준과 최신 기능을 더 잘 지원하는 경향이 있다. 특히 복잡한 애플리케이션에서 런타임 성능이 중요하다면 JSC가 더 적합할 수 있다.