Trend of Information Tech

Flutter vs. ReactNative

한글순화운동 2020. 10. 14. 22:51

간편함, 그리고 크로스 플랫폼으로 각광받는 두 프레임워크에 대해서 종종 질문을 받습니다.
매번 답변도 달라졌던 것 같고, 명확하게 설명을 잘 못했었던 것 같은데요 -
왜냐면 각자 장단점이 뚜렷하게 있거든요. 어느 쪽을 선택해도 나쁘지 않아요.
기존 언어가 무엇이냐도 그렇게 중요하지 않습니다.
그러다가 오늘 또다시 컨설팅 아닌 컨설팅을 하다 재미있는 표현을 건져서 끄적여 봅니다.


두 가지 기준으로 말해보고자 하는데요, 첫째는 유효성입니다.
리액트 네이티브는 자바스크립트의 애드온add on 형식입니다.
물론 jsx나 기타 라이브러리들을 얹다보면 이게 자바스크립트인지 뭔지 헷갈리고
npm을 통해서 설치해야 하는 종류들도 많고.. (이 쯤해서 약간 어느 쪽 편을 들 것인지 느낌이 오겠죠)

유효성이라 함은, 정보의 숲 나아가 정보의 바다에서 얼마나 제대로 된, 그리고 본인이 원하는 지식을 얻느냐에 달려있습니다. 비율이죠.
리액트 네이티브는 리액트에서 파생되었고, 세계적인 FAANG에서 이끌고 있다보니 그 빈도와 정보가 엄청나게 많습니다.
리액트 혹은 네이티브 전용 라이브러리들만 있을 정도니까요.
반면, 개발자들이 문제에 직면했을 때 적확한 정보를 찾을 확률은 이에 비례해 낮아집니다.
리액트와 리액트 네이티브가 다르고, 이 프레임워크를 구사하는 수준은 정말 하늘과 땅차이입니다.
그래서 막상 정보를 찾아도 해석을 해야하고, 본인 것으로 소화하다가 체하는 경우도 많습니다.
리액트를 말 그대로 주워듣고 제게 물어보는 친구들에게 러닝커브, 즉 배우는 난이도가 상당히 세다는 걸 꼭 강조합니다.

쉽게 숫자로 비유를 하자면 약 100,000 즉 10만개의 정보가 있다 한다면 7만 개의 유사 혹은 동일한 정보가 있다는 겁니다.
3만개의 핀트가 어긋난, 혹은 지금은 돌아가지 않는, 라이브러리가 달라서 되지 않는 해결책들이 있어서 지치는 경우가 발생하죠.
수많은 정보에서 필터링을 잘하시는 분이 아니라면 정보의 늪에 빠질 수 있다는 점이죠.

반면 플러터는 작은 풀이지만 그나마 범주가 작습니다. 물론 플러터도 초고수와 초심자의 차이는 크겠지만,
앞에서 언급한 정보의 늪에서 빠질 확률은 거의 1/10 정도라고 느껴졌습니다.
2만개의 정보에서 17000개의 정보가 매칭될 확률,, 대략 85%는 되어보인달까요.


다음은 위에서 언급하다가 말았던 점, 바로 조합과 관련된 것입니다.
개발하는 언어는 하나일지라도 조합하는 라이브러리와 프레임워크 조합은 사람의 이름 수 만큼 많다고도 볼 수 있는데요,
이 라이브러리/프레임워크 조합의 차이에서 발생하는 점이 큽니다.
먼저 플러터에 대해서 언급하자면, 플러터는 기본 라이브러리와 펍데브pub dev에서 검색되는 라이브러리만 사용한다고 볼 수 있습니다.
그렇기 때문에 그냥 어떤 사람이 해당 기능이나 효과를 사용한다면, 따라하면 됩니다. 우회할 수 있는 루트가 그렇게 많지 않거든요.
대신 큰 단점도 있죠. 막히면 답이 없습니다.. 카카오api는 개발자 포럼에서 당분간 플러터를 응대할 계획이 없다고도 했죠.
어떻게든 얹을 수는 있는데,, + 어차피 공식 튜토리얼도 별 것이 없긴 하지만 로컬 기반의 서비스에 장애가 많습니다.

반면 리액트 네이티브는 천차만별입니다.
클론코딩을 하는 것이 아니라면, 너무나도 많은 자유도가 주어져 있습니다.
특정 프로세스를 구현하지 못해서 어떤 미디엄이나 깃헙을 찾아도, 추가해야 하는 라이브러리가 너무 많습니다.
혹은 엉뚱한 데에서 충돌이 발생해서 또다른 문제점을 야기시킵니다. 이것도 끝이 없는 것은 매한가지죠.


쓸 점은 많지만, 딱 두 가지로 한정해 봤습니다.
공통점도 참 많은 두 프레임워크지만, 이처럼 다른 점도 많습니다.
본인의 성향도 중요하지만, 본인이 어느 방향으로 성장하느냐도 참 중요합니다.
결론을 내드리자면, 그냥 끌리는 걸로 시작해 보세요. 뭔가 사전에 미리 재본다고 모두를 재단하기가 힘듭니다.
물론 능력자분들은 다르겠지만요.