on
ReactNative 와 플러터(flutters) 비교 정리
ReactNative 와 플러터(flutters) 비교 정리
반응형
분명히 하기 위해, 저는 이러한 비교가 우리에게 어떤 가치도 주지 않는다고 말하지는 않지만, 우리는 그것이 단지 기술이라는 것을 이해할 필요가 있습니다. 장기적으로는 두 프레임워크가 동일한 작업을 수행할 것입니다.
2017년 플렛의 최초 출시 이후 많은 기사를 봐왔습니다. 이 모든 것에는 React Native와 Flute의 장단점이 포함되어 있다. 기사 외에도, 우리는 용감한 예측을 들을 수 있는 많은 비디오도 볼 수 있습니다. 제 의도는 몇몇 그룹의 사람들이 이러한 비교들을 너무 심각하게 받아들이는 것에 대한 생각을 공유하는 것입니다.
성능에 관한 모든 것
Flutters의 기본 원리는 React Native와 약간 다르지만, 두 기술 모두 모바일 애플리케이션 작동과 동일한 효과를 얻을 수 있습니다. 일부 기사나 비디오는 이 전투의 첫 번째 논쟁이 될 수 있는 다른 기술보다 한 기술의 더 나은 성능을 보여준다. 맞아요. 만약 어떤 것이 기본적으로 기기에서 더 잘 작동하고 우리는 앱의 전반적인 느낌을 개선하기 위해 어떤 것도 추가로 쓸 필요가 없다면, 우리는 그것을 사용해야 한다! 그러나, 이 결론은 특정한 행동이나 특정한 상황만을 취한다. 여기서 찾을 수 있는 괜찮은 기사입니다. 일부 사례에서 보듯이 RN은 Fluter보다 우수하고 그 반대의 경우도 있으며 벤치마크 테스트도 있습니다. 따라서 일반적인 앱에서 모든 것을 올바르게 만들면 모든 프레임워크에서 매우 멋진 애니메이션이 생성될 것이라고 가정할 수 있습니다.
다른 경우에는 성능에 대한 논의가 별다른 차이를 초래하지 않습니다. 예를 들어, 내가 한 기사에서 찾은 이 표를 봐라.
공연란을 읽으면 아무 단서도 떠오르지 않는다. 점수나 점수가 없기 때문에 진짜 차이가 무엇인지 구별하기가 정말 어렵습니다. 나는 이 기사의 저자가 저지른 실수를 지적하고 싶지 않다. 왜냐하면 좀 더 넓게 설명하면 그것이 사실일 수도 있기 때문이다. 나는 단지 많은 경우에 차이가 정말 작다는 것을 보여주고 싶을 뿐이고 일반적으로 우리는 이 주제를 생략할 수 있다.
모든 것을 위한 하나의 코드베이스
시행 후 모두가 후회한다.
하지만 아이러니하게도, 이 개념은 소프트웨어에 등장합니다. 왜냐하면 존재하기 때문입니다. Java는 모든 머신에서 실행할 수 있는 이러한 목적을 가지고 있으며 특정 프로세서에 대해 걱정할 필요가 없습니다. RN과 Fluter는 안드로이드와 iOS용 모바일 앱을 만들 수 있게 해주었고, 그건 괜찮지만, 웹 앱을 만드는 것은 어떨까요?
Fluter 또는 React Native에는 자체 웹 구현(https://github.com/necolas/react-native-web)://dev/web 및 https://github.com/necolas/react-native-web))이 있다는 것을 알고 있으며, 어떤 솔루션이 더 나은 지원을 제공하는지 다시 생각해 볼 수 있습니다. 하지만 우리가 그것을 비교할 필요가 있을까요?
이와는 별도로, 우리는 모든 플랫폼에 대해 하나의 코드베이스에 모든 것을 포함하는 것이 소프트웨어 개발의 단점 없이 훌륭한 아이디어라고 말하는 팀을 만나지 못했습니다. 때로는 효과가 있고 팀도 이익을 얻을 수 있지만, 이를 관리하고 개발하는 것은 정말 어렵습니다. 프로젝트 팀에서 경험이 충분하다면 계속 진행하실 수 있을 것 같은데, 그렇게 할 수 있어서 다행입니다. 하지만 팀의 이런 상황은 유지하거나 성취하기 어려울 수 있다. 제 생각에는, 이 프레임워크가 모바일 개발에 널리 사용되고 있기 때문에 이것을 비교하는 것은 좋지 않습니다.
내가 말한 것이 어디에나 적용될 수는 없다. Unity는 완전한 크로스 플랫폼 개발을 위한 훌륭한 솔루션이지만, 게임 개발에서는 웹 앱이나 모바일 앱 개발보다 상대적으로 할 일이 더 많습니다.
크로스 플랫폼은 React Native 또는 Fluter의 기본이지만, 때때로 기본 코드가 필요한 상황에 처할 수 있으며 RN이나 Fluter 중 어느 것도 당신의 위치를 방어할 수 없도록 보장할 수 없습니다. 물론 한 프레임워크는 특정 기능을 위해 작성된 라이브러리를 가지고 있고 다른 프레임워크는 그렇지 않은 경우가 있을 수 있으며, 그 반대의 경우도 있을 수 있습니다. 이러한 경우 선택한 프레임워크에 앱을 빌드해야 하는 이유가 있을 수 있지만 향후 앱에서 잠재적으로 필요한 모든 라이브러리를 확인할 수는 없습니다.
이 점을 요약하면, 크로스 플랫폼은 매우 좋은 점이며, React Native와 Flature에 나와 있습니다. 지금은 간단한 React 앱을 쓰는 것이 더 쉬울 수 있기 때문에 이러한 솔루션을 웹 개발에 사용하지 않을 것입니다. 적어도 그것을 유지하는 것이 더 쉬울 것이다. 네이티브 코드의 관점에서 우리는 단지 그것에 대비할 필요가 있다. 항목 아래의 비교: "전면적인 지지"는 다음과 같은 진술로 이어집니다.
커뮤니티가 핵심입니다.
그렇다, 기술은 사람들을 위해 그리고 사람들에 의해 창조된다. 솔루션을 활성화하고 점점 더 많은 사용자에게 전달하기 위해 양쪽 모두에 이러한 솔루션이 있어야 합니다. 플렛은 구글의 해결책이고 리액트 네이티브는 페이스북의 해결책이다. 우리는 두 솔루션 모두 프레임워크를 유지 관리할 수 있는 충분한 힘을 가지고 있다는 것을 알고 있습니다. 이 멋진 커뮤니티는 어떨까요? 구글 트렌드에서 확인해 봅시다.
지금 보시다시피 플렛이 이 대회에서 선두를 달리고 있습니다. 결론적으로 리액트 네이티브는 향후 몇 년 동안 손실될 것이며 현재처럼 훌륭한 소프트웨어를 제공하지 못할 것이며 미래에는 아무도 개발에 이 소프트웨어를 사용하지 않을 것이다. 많은 틀이나 도서관, 심지어 언어에도 같은 말이 있습니다. 내가 가장 최근에 생각하고 있는 예는 물론 Angular vs React이다. 같은 회사들 간의 싸움입니다. 끝은 어떻게 됐죠? 끝이 없었다. 때때로 우리는 이 두 가지 해결책의 비교와 함께 다음 기사를 볼 수 있지만 나타나는 빈도는 4년 전보다 훨씬 더 낮아졌다. Angular를 알고 그것을 좋아하는 사람은 여전히 그것으로 프로젝트를 만듭니다. 아무 일도 일어나지 않았어요. 기술은 여전히 발달되어 있다. 구글 트렌드에 따르면 Angular는 그들의 커뮤니티를 잃었지만 2010년의 현실은 2015년과 달랐다. 주요 경쟁자는 jQuery였고 웹 앱을 구축하기 위한 js 전용 솔루션도 적었다. 사람들은 새로운 것을 선택하고 확인하기를 원하지만, 그것이 오래된 기술이 버려질 것이라는 것을 의미하지는 않는다. 현재 도서관이 개발되어 있고, 커뮤니티가 넓으며, 인기가 있다면 설치할 수 있습니다. 대부분의 경우 특정 솔루션이 문제를 해결하는지 확인해야 합니다.
기술 분야에서 인기에 따라 개발 도구를 선택했다면 하나의 도구만 사용할 수 있다는 점을 기억하십시오. 트렌디한 것은 멋있지만 더 큰 규모로는 아무 의미가 없다.
우리가 생각할 수 있는 것보다 더 많은 의존성이 있다.
이것은 어느 정도 이전 섹션과 관련이 있다. 특정 솔루션을 구축하는 데는 여러 가지가 있습니다. 비교는 전체 그림의 좁은 부분에 불과하다. 이 전투에서 잠재적인 다음 플레이어가 모든 상대방의 통계를 망칠 수 있거나 리액트 네이티브의 다음 버전이 최신 M1/M2 Mac 장치의 개발에 지속적인 문제를 가지고 있고 Fluter가 이러한 문제들을 더 일찍 해결할 것이라고 상상해보라. 또한, 대기업들은 다양한 솔루션에 많은 돈을 투자한다. 만약 페이스북이 그들 자신의 칩을 디자인하고 리액트 네이티브 앱이 이 장치들에서 원활하게 실행될 수 있다면 어떨까? 물론, 그것은 잠재적으로 비현실적이지만 단지 하나의 예에 불과하다. 기술을 사용하는 환경과 분리할 수 없기 때문에 현재 성능 검사 횟수가 더 많습니다.
대부분의 예측은 우리의 미래를 실현시키지 못한다.
제가 처음에 용감한 예측에 대해 말했듯이요. 우리는 솔직히 앞으로 며칠 안에 무슨 일이 일어날지 모른다. 올해는 이 기술을 선택할 것이라고 말할 수 없고, 다음 해에는 다른 기술을 선택할 것이다. 왜냐하면 여러분은 이전 선택과 비교한 것을 보았기 때문이다. 비교를 통해 현재 기술 상태에 대해 알 수 있습니다. 왜냐하면 때때로 매우 유용한 정보를 찾을 수 있기 때문입니다. 그러나 이 정보를 바탕으로 어떤 결정도 내릴 수 없습니다. 내가 말했듯이, 모든 프로젝트는 다른 요구사항과 경험에 달려있다. 이러한 요구사항과 지식은 당신이 지향하는 방향의 포인트가 되어야 한다.
알고 계시면 사용하셔도 됩니다.
위의 모든 절을 요약합니다. 제 기사의 주요 목표는 개발에 참여하고 특정 기술에는 제한이 없다는 것을 아는 사람들의 목소리를 내는 것이었습니다. 정말 중요한 것은 특정 솔루션에 대한 경험과 지식입니다. 만약 여러분이 그것을 가지고 있다면, 여러분은 특정한 틀에서 무엇인가를 할 수 없는 지점에 도달하는 것이 정말 어렵다는 것을 알 것입니다. 앞서 말씀드린 비교 내용처럼, 몇 가지 차이점에 대해 자세히 살펴보고 비교 항목을 좀 더 자세히 살펴보도록 하겠습니다. 모든 것이 다 다르고 다른 개념에 바탕을 두고 있기 때문에 이러한 것들은 기술 토론에서 가장 중요한 마지막 포인트로 여겨져야 합니다.
from http://devcloset.tistory.com/364 by ccl(A) rewrite - 2021-09-13 16:26:43