brunch

You can make anything
by writing

C.S.Lewis

by 이종우 Peter Lee Nov 29. 2019

[번역] 왜 다음 모바일앱은 React Native ?

Deciding on React Native React Native 

원본 URL : https://www.tivix.com/blog/why-react-native-for-mobile-app


다음 모바일 앱에 React Native를 사용해야합니까?



다음 모바일 앱을 구축하기 위해 어떤 프레임 워크를 사용해야합니까?


현재 모든 앱을 기본적으로 구축하는 것 외에도 몇 가지 옵션이 있습니다.


그중 하나가 React Native 입니다. 복잡한 사용자 인터페이스를 비교적 빠르게 구축하기 위해 원래 Facebook에서 만들었지 만 현재 인기가 높아지고 있습니다. 큰 타자 Instagram, Netflix 및 Bloomberg는 모두 React Native 또는 가까운 사촌 ReactJS를 사용하여 모바일 앱을 구축했습니다.


이 기사는 당신이 모든 과대 광고 가치가 있는지 결정하고 알아내는 데 도움이 될 것입니다. 우리는 다룰 것입니다 :


그것이 무엇인지 그리고 어떻게 작동하는지에 대한 요약

언제 어디서 React Native를 사용해야합니까?

장단점

대안

.... 마지막으로 기본 iOS 또는 Android 앱을 구축하는 것보다 낫든 나쁘든? 




기본 반응 : 기본


React Native의 장단점을 살펴보기 전에 기본 사항을 낮추는 것이 중요하다고 생각했습니다.


React Native는 XHP (Facebook의 마크 업 구문)를 JS 좌표 시스템에 넣음으로써 만들어진 자바 스크립트 라이브러리 인 ReactJS에서 개발 한 오픈 소스 모바일 애플리케이션 프레임 워크 입니다.


페이스 북이 복잡하고 역동적 인 UI를 구축하는 방법을 찾고 있던 2011 년에도 여전히 고성능을 유지할 수있었습니다. 아이디어를 얻은 사람은 엔지니어 Jordan Walke였습니다 (이 기사와 직접 관련이 없지만 게임 변경 모바일 개발 플랫폼을 개발 할 때 우리는 당신이 어떤 가치를 가질 자격이 있다고 생각합니다).


2 년 후 2013 년에 출시 된 React Native는 하이브리드 모바일 개발을 허용 하며 기본 요소 와 Facebook에서 작성한 ReactJS 라이브러리를 모두 사용합니다 .


React Native 작동 방식


PhoneGap, Xamarin 또는 Cordova와 같은 대안과 비교할 때 React Native에 대한 눈에 띄는 것 중 하나는 다른 엔진을 사용하여 코드를 래핑하는 대신 네이티브 모바일 컨트롤러 를 사용한다는 것입니다.


이 접근 방식을 사용하면 각 기본 플랫폼에서 앱을 빌드하지 않고도 앱을 iOS 및 Android에서 '집에'보이게 할 수 있습니다. 프로그래밍하지 않았더라도 기본 앱의 모양과 느낌을 얻을 수 있습니다.


언제 어디서 React Native를 사용해야합니까?


React Native는 모바일 우선 프레임 워크입니다. 따라서 회사에서 개발에 모바일 우선 접근 방식을 사용하는 경우 유혹적인 옵션입니다.


그럼에도 불구하고, 그것이 잘 맞는지 확인하기 위해 조금 더 파는 것이 좋습니다. 프로젝트를 가장 잘 구축하는 방법을 알아낼 때 다음을 고려해야합니다.



보안 요구



React Native는 자바 스크립트를 기반으로하며 취약한 담당자가 있습니다. 앱에 유형 A 보안 (예 : 모바일 뱅킹)이 필요한 경우 타사 애드온에 매우주의를 기울이고 악성 코드 스 니펫에주의를 기울여야합니다.



메모리 관리 문제



자바 스크립트 기반 라이브러리는 계산 집약적 인 앱에는 적합하지 않은 경향이 있습니다. 속도가 없으며 소수를 지원하지 않습니다.


예를 들어 Bloomberg, Instagram 및 Netflix와 같은 React Native를 사용하는 회사는 빠르고 안정적인 UI가 필요합니다. 고급 계산을 수행 할 필요가 없으며 외부 위협으로부터 고객의 저축 계정을 보호합니다.


React Native는 최고 수준의 사용자 인터페이스를 개발하려는 Facebook의 노력에서 비롯된 것이므로이를 사용하는 주된 이유로 여기에 집중하십시오.


React Native의 장단점


모바일 앱에 React Native를 사용하는 방법에는 여러 가지가 있지만 프로그래머는 완벽한 플랫폼이 없다는 것을 알게 될 것입니다!


몇 가지 장단점을 살펴 보겠습니다.


찬성


JavaScript를 기반으로합니다.


… 그것은 두 가지 주요 이점을 제공합니다


JavaScript는 세계에서 가장 널리 사용되는 프로그래밍 언어 중 하나이며 성숙한 커뮤니티가 있습니다. 틈새 언어가 아니므로 코드를 직접 작성하거나 숙련 된 개발자를 찾아서 코드를 작성하는 데 아무런 문제가 없습니다.


또한 가장 빠르고 가장 역동적 인 중 하나입니다 . 업데이트 된 변경 사항을 확인하기 위해 개발 된 앱을 다시 시작할 필요가 없으며 Apple에서는 검토주기없이 실시간으로 JavaScript 기반 앱을 변경할 수도 있습니다.



기본 컨트롤 및 모듈이 포함되어 있습니다


위의 내용을 살펴 봤지만 이것이 React Native의 주요 장점이므로 반복해서 좀 더 자세히 살펴볼 가치가 있습니다.


React Native는 기본 API를 사용하여 기본을 렌더링하므로 플랫폼 별 버전의 앱 및 구성 요소를 작성할 수 있습니다. 따라서 다른 플랫폼에서 앱을 만들고 유지 관리하기 위해 별도의 팀이 필요하지 않습니다 . 여러 플랫폼에서 하나의 코드베이스를 유지 관리 할 수 있습니다 .


React Native를 사용하면 개발 인력을 두 번 이상 고용해야하는 비용을 절약 할 수 있으며 개발 팀을 단일 우산으로 통합하여 작업 속도를 높일 수 있습니다.


안정적인 고성능 앱 구축


React Native는 단순화 된 데이터 바인딩 방법을 사용하므로 자식 요소가 부모 데이터에 영향을 줄 수 없습니다. React Native를 사용하여 객체를 변경하려면 먼저 상태를 수정 한 다음 업데이트를 적용하여 안정적이고 안정적인 앱을 만들어야합니다.


또 다른 장점은 UI와 별도의 스레드를 직접 사용하여 코드를 원시 API로 렌더링하기 때문에 대안보다 성능이 향상된다는 것입니다. 다른 크로스 플랫폼 프레임 워크는 WebView (모바일 엔진)를 사용하여 코드를 렌더링합니다. 이는 아래의 '기본 반응 대안'에서 더 많은 이점을 얻을 수 있지만 성능 측면에서는 약간의 희생이 따릅니다.


오픈 소스 커뮤니티가 빠르게 발전하고 있습니다.


React Native는 매우 어린 프레임 워크입니다.


물론, 이것은 단점을 가질 수 있지만 (1 분 후에 도달 할 것입니다), 또한 인기가 급격히 증가하고 있으며 그 뒤에 열성적인 오픈 소스 커뮤니티 가 있습니다. 현재 사용할 수있는 구성 요소의 범위는 제한되어 있지만 커뮤니티가 성장함에 따라 라이브러리가 빠르게 확장되고 있습니다.


오픈 소스이므로 언제든지 직접 기여할 수 있습니다! 올바른 구성 요소를 찾을 수없고 다른 구성 요소도 필요할 수 있다고 생각되면 직접 코딩하고 공유하십시오. 오픈 소스 코딩의 정신에 빠져 동료 개발자가 도와주십시오.


단점


적은 수의 기성품 구성품


위에서부터 계속해서 React Native는 아직 어리다.


이는 사용 가능한 기성품 구성 요소가 비교적 적음을 의미합니다. 자체적으로 큰 문제는 아니지만 (네이티브 코드를 사용하거나 JavaScript에서 처음부터 빌드 할 수 있음) 많은 사람들이 React Native를 사용하여 시간 절약 혜택을 제공한다는 점을 감안할 때 이러한 종류의 프레임 워크의 가장 큰 장점 중 하나를 취소합니다 .


물론, 사용할 수있는 타사 구성 요소 라이브러리가 있지만 React Native의 신뢰할 수있는 타사 구성 요소 라이브러리를 찾는 것은 운이 좋게도 약간 운이 좋을 것입니다.


금을 칠 수 있습니다.


마찬가지로, 당신은 당신이 직접 코딩했을지도 모르는 정도로 비공식적 인 비공식 구성 요소를 디버깅하려고 시도하면서 서클에서 돌아갈 수 있습니다.


React의 상대적 미숙함은 AirBnB 가 최근 React Native 를 일몰 하기로 결정 하고 네이티브 개발로 전환 한 이유 입니다.


가브리엘 펄 (Gabriel Pearl) 개발자는 “미숙함이 잘 드러나지 않아 사소한 일이 아주 어려워지는 사례가있다 . "불행히도, 이러한 인스턴스는 예측하기 어렵고 해결하는 데 몇 시간에서 며칠이 걸릴 수 있습니다."


JQuery 또는 CSS에 대한 지원 부족


이것은 매우 자명하다.


당신이나 당신의 개발팀이이 문제를 해결할 수 있습니까? 예.

특정 상황에서 이것이 실제로 성 가실 수 있습니까? 또한 그렇습니다.


다른 많은 크로스 플랫폼 개발 도구와 달리 React Native는 하이브리드 도구가 아닙니다. 자체 DOM과 같은 기본 뷰 계층 구조와 스타일 구현이 있으며 CSS와 유사하지만 호환되지 않습니다. JQuery는 HTML DOM에 의존하기 때문에 React Native는이를 지원할 수 없습니다.


React Native를 사용하여 처음부터 구축하는 경우에는 너무 많은 문제가 발생하지 않지만 다른 프레임 워크에서 마이그레이션하려는 경우 약간의 생각이있을 것입니다.


지연 SDK 업데이트 및 호환성 문제


React Native는 일반적으로 iOS 또는 Android가 SDK를 업데이트 할 때 반응 속도가 매우 느립니다.


이것은 성가 시며 작은 조그만 목록 중 하나입니다. 이들은 거래 중단자가 아니지만 React Native를 사용하는 모든 사람에게 종종 심각한 좌절의 원인이됩니다 ( '화면에서 크게 소리 지르는 개발자'를 읽습니다).


조심하십시오 :


핫 리로딩 실패

커뮤니티 라이브러리와 다른 버전의 React Native 간의 비 호환성

에뮬레이터 문제

반응 탐색 문제

패키지를 자주 재설치해야 함


미래는 명확하지 않습니다


아무도 확실히 알아낼 수없는 것은 Facebook이 네이티브 장기 반응에 전념하고 있는지 여부입니다. 우리가 아는 것은 지금 그리고 아마도 가까운 장래에 페이스 북에 적합하다는 것입니다. 앞으로? 누가 알아…


React의 라이센스 및 특허도 계속 지켜 볼 가치가 있습니다. 최근까지 페이스 북은 오픈 소스 기술에 대한 인기없는 'BSD + 특허'라이센싱 모델을 추진하고있었습니다.


기본적으로 React를 개방형 기술로 사용할 수 있지만, 그렇게 할 경우 특허 침해로 Facebook을 고소하거나 보유하려는 특허를 상대 할 수 없습니다 . 귀하에게는 지적 재산권이 없습니다.


오픈 소스 커뮤니티로부터 상당한 압력을받은 후, 그들은 훨씬 더 평등 한 MIT 라이센스로 바뀌 었지만, 이것이 그다지 적합하지 않다고 생각합니다. 당신의 합법적 독수리는이 공간의 움직임에주의를 기울여야합니다.


네이티브 반응에 대한 대안


React Native가 유일한 크로스 플랫폼 개발 도구는 아닙니다. 필요에 따라 다음을 고려할 수도 있습니다.


Xamarin


Microsoft가 소유 한 Xamarin은 C # 코드베이스를 사용하여 기본 iOS, Android 및 Windows 앱을 작성합니다. CA Mobile, World Bank 및 Alaska Airlines를 포함한 광범위한 조직에서 사용하는 인기있는 오픈 소스 옵션입니다.


PhoneGap


Adobe의 PhoneGap은 HTML, CSS 및 JS의 하이브리드를 사용하는 오픈 소스 Apache Cordova 프레임 워크를 기반으로하는 저렴한 다중 플랫폼 개발 도구입니다. 평판이 좋지만 복잡한 것은 아니지만 기본적으로 '느낌'을 느끼는 간단한 앱을 만드는 데 좋습니다. Wikipedia 는 PhoneGap 프레임 워크를 기반으로합니다.


코로나


게임 앱에 고품질 그래픽이 필요한 경우 Corona를 사용하는 것이 좋습니다. Lua 스크립팅 언어 (신속하고 강력한 게임 앱을 생성 함)를 사용하며 기본 라이브러리 또는 API를 호출 할 수있는 보너스가 있습니다.


Qt


Qt는 C ++ 기반의 크로스 플랫폼 프레임 워크입니다. 특히 그래픽 인터페이스에 적합하며 Sky, Mercedes Benz, Pergeot 및 LG를 포함한 가전, 자동차 및 의료 산업 전반에서 큰 타자들이 사용합니다.


(이것이 궁금하다면 '귀염둥이'보다는 '귀엽다'라고 발음된다).


Ionic


Ionic은 일련의 웹 구성 요소를 기반으로하는 하이브리드 앱 개발을위한 오픈 소스 SDK입니다. 이는 사용자가 Angular, vue.js 또는 React를 포함하여 원하는 사용자 인터페이스 프레임 워크를 선택할 수 있음을 의미합니다.


완전히 네이티브 앱을 만드는 것보다 React가 더 낫습니까?


치트의 대답 : 그것은 당신이 '더 나은'의 의미에 달려 있습니다.


궁극적으로 실제 네이티브 앱만큼 기본적으로 동작하는 것은 없습니다. 크로스 플랫폼 개발 도구를 사용하는 동안 고유의 진위를 찾고 있다면 도구가 아무리 우수하더라도 절대 찾지 못할 것입니다.


아직도, 많은 경우에, React Native는 진정으로 가까이 온다 . React를 사용하여 빌드 된 앱은 기본 구성 요소로 인해 WebView와 같은 타사 엔진에 의존하지 않고 네이티브 컨트롤러를 사용하여 코드를 래핑하기 때문에 다른 크로스 플랫폼 앱보다 기본적으로 동작합니다.


이제 '더 나은'이라는 말이 '더 나은 것'을 의미한다면 그것은 또 다른 이야기입니다.


올바른 상황에서 React Native 는 시간과 비용을 절약 할 수 있습니다 . 각 플랫폼마다 별도의 개발자 팀을 고용 할 필요가 없으며 필요한 기본 구성 요소를 찾을 수 있다고 가정하면 처음부터 모든 것을 만드는 것보다 훨씬 빠릅니다 .


또한 앱이 너무 복잡한 작업을 수행 할 필요가 없으면 훌륭한 결과를 얻을 수 있습니다.


물론, A 형 보안 요구 (잠재적 JavaScript 취약성), 과도한 계산 (십진수 문제) 또는 게임 앱 (전문화하려는 경우 도구가 더 우수함)에 대한 첫 번째 선택이 될 수는 없지만 다재다능하지는 않습니다. , 그리고 그 이름까지 인상적인 A-list 앱을 자랑합니다.


상대적으로 적은 양의 기본 성능으로 인해 React Native는 액세스 가능하고 비용 효율적이며 빠릅니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari