출처 : https://www.codingworldnews.com/article/view/1249

페이스북은 오픈 소스 MIT 라이센스하에 헤르메스 라는 새로운 자바 스크립트 엔진을 발표했다고 테크전문지 'Packt'에서 보도했다. Facebook에 따르면이 새로운 엔진은 React Native 프레임 워크로 제작된 기본 Android 앱의 시작 시간을 단축한다.
Facebook 소프트웨어 엔지니어 Marc Horowitz는 11일(현지시간)Oregon 포틀랜드에서 개최된 Chain React 2019 컨퍼런스에서 Hermes를 발표했다 . Hermes는 개발자가 주로 Facebook에서 자사 앱을 실행하는 것과 같은 방식으로 앱 시작 성능을 개선하고, 저가형 스마트 폰에서 앱을보다 효율적으로 만들 수있는 새로운 도구이다.
헤르메스의 장점은 개발자가 단일 코드 기반으로 세가지 모바일 플랫폼을 모두 타겟팅 할 수 있다는 것이다. 크로스 플랫폼 프레임워크와 마찬가지로 성능, 보안 및 유연성면에서 장점이 있다. Hermes는 GitHub 에서 모든 개발자가 사용할 수 있다. 또한 자체 트위터계정과 홈페이지를 보유하고 있다.
데모에서 Horowitz는 Hermes가있는 React Native 앱이 Hermes없이 동일한 앱이로드 된 시간의 절반, 또는 약 2초 더 빨랐는데 아래 동영상에서 확인할 수 있다.
Horowitz는 Hermes가 APK 크기(앱 파일의 크기)를 Stock React Native 앱의 41MB의 절반으로 줄이고 앱의 메모리 사용량의 4 분의 1을 제거한다는 사실을 강조했다.
즉, 헤르메스 개발자는 제한된 메모리 리소스, 특히 저가형 휴대전화에서 여러 앱을 공유함으로써 다운로드 시간이 느려지고 제약 조건이 줄어들어 앱을 더 잘 사용하는 사용자를 더 빠르게 얻을 수 있다.
Register는 Facebook이 Hermes의 React Native를 Node.js로 밀어 넣거나 Facebook 브랜드 브라우저의 기반으로 만들 계획이 없다고 밝혔다. 이는 모바일 앱에 최적화되어 있고 다른 사용 시나리오에서는 다른 엔진에 비해 이점을 제공하지 않기 때문이다.
헤르메스는 JavaScript를 로드하고 파싱하는 대신 바이트 코드 사전 컴파일을 통해 효율적으로 시도한다. Hermes는보다 광범위한 바이트 코드 최적화를 위해 모바일 앱 구축 프로세스 중에 AOT (ahead-of-time) 컴파일을 사용한다. 유사한 라인과 함께, iOS 용 Fuchsia Dart 컴파일러 는 AOT 컴파일러이다.
자바 스크립트에서 더 많은 성능을 끌어낼 수있는 다른 방법이 있다. 예를 들어, V8 엔진은 사용자 정의 스냅샷 이라는 기능을 제공한다 . 그러나 이것은 Hermes를 사용하는 것보다 기술적으로 다소 까다롭다.
Hermes는 또한 자주 해석 된 코드를 기계어 코드로 컴파일하기 위해 다른 JavaScript 엔진에서 사용되는 JIT (Just In Time) 컴파일러를 포기한다. React Native의 컨텍스트에서 JIT는 모바일 앱 작업 부하를 줄이기 위해 그렇게 하지 않는다.
헤르메스가 존재하는 이유는 페이스북과 같이 React Native를 더 좋게 만드는 것이다다. "The Hermes는 개발자들이 빌드 스택을 제어하기 때문에 모바일 최적화를 더 많이 허용한다.
Hermes는 대부분 ES6 JavaScript와 호환된다. 엔진을 작게 유지하기 위해 명령문 및 로컬 모드 eval ()과 같은 일부 언어 기능에 대한 지원이 누락되었다.
'프로그램개발 > ClientSide(JavaScript,Angular,Vue)' 카테고리의 다른 글
자바스크립트 표준화 언어 ES2019의 새로운 기능을 소개합니다 (0) | 2019.08.01 |
---|---|
"웹 기술로 데스크톱 앱을 빠르게 개발"··· 오픈소스 툴 쿼크 등장 (0) | 2019.07.25 |
웹킷, 새 바이트코드 형식 지원··· "페이스북 메모리 소모 10% 줄어" (0) | 2019.06.27 |
2019년과 이후 JavaScript의 동향 - WebAssembly (0) | 2019.06.26 |
새로운 프론트엔드 프로임워크 Svelte (0) | 2019.06.07 |