네이티브 앱 개발보다 더 빠른 개발이 필요한 상황은 모든 개발팀이 직면하고 있고, 다들 비슷한 고민을 할 겁니다.
가난한 회사가 흔해 빠진 앱 만드는데나 편리한 것이 크로스 플랫폼 프레임워크라고 하는 이야기도 있지만, 모바일 앱이 핵심은 아니지만, 지원은 해야하는 상황인 개발팀들도 많을 겁니다.
물론, 모바일 앱이 그 비지니스 모델의 핵심이라면, 안드로이드와 iOS 모두 네이티브 앱으로 개발하는 것이 맞을 수도 있습니다. 개발생산성은 곧 비용이므로, 네이티브 개발이 과연 정답인지는 상황마다 다를 수 있지요. 적절한 타협, 어렵죠.
페이스북이 개발하여 그동안 많은 개발팀에게 선택 받은, 풍부한 사용자층을 가지고 있는 리액트 네이티브를 이용해서 기존에 네이티브로 개발된 앱을 전환한 흥미로운 사례 이야기가 있어 읽어봤습니다.
기술적인 코딩 내용들도 많으니 관심 있는 분들은 직접 읽어보길 추천합니다.
리액트 네이티브의 긍정적인 평가
좋은 평가가 좀 줄어든 것 같긴 합니다.
그래도 크로스 플랫폼 프레임워크는 필요하고, 리액트 네이티브가 여전히 강자이긴 합니다.
초기에는 리액트 네이티브가 가장 막강한 크로스 플랫폼 프레임워크였습니다. 요즘엔 플러터가 상당히 좋아져서 플러터가 좋다는 분들도 많아졌지만, 그동안은 필적할 대상이 없었죠. 자바스크립트만 알면 꽤 괜찮은 모바일 앱을 한방에 안드로이드와 iOS 모두 만들어낼 수 있으니까요. 리액트로 웹개발을 해봤다면, 모바일 앱 개발도 비교적 쉽게 할 수 있습니다.
사용자가 많아지니, 개발자 입장에서 저변이나 채용 시장등이 더 좋다는 장점도 있습니다.
아직도 인터넷에서 구할 수 있는 정보들은 플러터 보다는 리액트 네이티브쪽이 더 많습니다.
리액트 네이티브의 부정적인 평가
유명 서비스들 중에 도입했다 네이티브로 돌아선 곳들이 좀 있어서 부정적인 의견도 많이 늘어난 것 같습니다. 하지만, 남의 이야기가 반드시 내 상황에 맞는 건 아닐 수도 있으니 신중한 점검이 필요해요.
React Native 자체도 배워야 하는 부분이라 개발자에게는 부담일 수 있다고 합니다. 기반이 iOS, Android 라서 두개 플랫폼도 알아야 하니 총 3개에 능해야 하는 부담입니다. 하지만, 이건 리액트 네이티브 뿐만 아니라 모든 크로스 플랫폼 프레임워크들이 다 똑같습니다.
iOS, Android와 비교하면 교육, 트레이닝(의 리소스가 한정되어있기 때문)에 개발팀이나 회사에서 직접 별도의 투자가 필요한 부분도 있다고 합니다. 개발자 커뮤니티가 아무리 활성화 되어 있어도, 역사와 전통을 자랑하는 네이티브 분야 보다는 작을 수 밖에 없습니다.
리액트 네이티브 커뮤니티는 죽어가고 있다는 평가도 있습니다. AirBnb가 포기하고 발빼면서 적은글이 두고 두고 회자되는데, 결국 네이티브로 돌아갈 거면 처음부터 네이티브로 개발하는게 나은거 아닌가 생각하는 개발팀들이 늘어나고 있는 것이겠죠.
기존 앱의 근간을 전환하는 것은 쉽지 않다
읽고 가장 먼저 든 생각은, 리디북스 정도 되니 가능한 일.
어짜피 대부분의 기능을 모두 리액트 네이티브로 옮겨갈 예정이여서 리액트 네이티브 위에 네이티브를 올리는 방향으로 가기로 결정
새로운 화면은 리액트 네이티브로 작성하고 기존 화면은 네이티브 화면을 유지하도록 결정 (네이티브 화면은 점진적으로 리액트 네이티브로 전환)
네이티브와 프론트 모두 간과할 수 없음. 네이티브 개발자가 프론트 개발을, 프론트 개발자가 네이티브 개발을 알아가야함. 서로 간 교류가 성공의 핵심임.
중간에 시도하기엔 작은 일이 아니죠.
기존 앱에 새로운 기능들을 추가하는 작업을 멈추고 유지보수만 하면서 근간을 바꿀 수 있는 기간을 확보하는 것이 쉽지 않은 상황의 개발팀들도 많으니까요.
그리고, 모든 것을 바꾸지 않고 기존 화면들은 유지한 채 새로 추가될 화면들만 리액트로 개발하는 방법을 택한 것은 좋은 선택이었다고 보입니다. 완전 새로 만드는건 위험요소가 너무 많습니다.
새로 만들어야 한다면, 리액트 네이티브 vs 플러터
먼저, 반드시 네이티브로 만들어야 하는지를 신중히 결정해야 합니다.
하지만, 반드시 네이티브로 만들지 않아도 되는 경우가 많을 겁니다.
크로스 플랫폼 프레임워크 써도 될 것 같으면
이제 선택지도 넓어졌습니다. 플러터까지 가세를 했으니까요.
- https://youtu.be/siow15Yn8r8 - 플러터 2년전 평가, 별로다
- https://youtu.be/nyHIau1shc0 - 플러터 1년전 평가, 이제 쓸만하다
그리고 요즘의 평가는 비지니스용 앱 개발해도 충분하다는 평가 입니다.
리액트 네이티브냐, 플러터냐 의견들이 분분하겠지만 저는 플러터가 더 좋습니다.
구글이 너무 많은 서비스들을 중간에 종료시켜 버려서 믿음이 안가긴 하지만, 더 많은 모바일 앱이 나오게 하기 위한 수단으로 플러터를 계속 밀어줄 것으로 생각이 되거든요.
아마 리액트 네이티브도 안 없어지고, 플러터도 안 없어질 것 같습니다.
자바스크립트 좋아하고, 특히 리액트로 웹 개발하는 곳은 리액트 네이티브가 아주 좋은 선택일 수 있습니다.
웹 프레임워크도 리액트와 vue.js, 어느 것이 정답이야 할 수 없을 정도로 이제 둘 다 훌륭하니까요.
모바일 앱 프레임워크도 리액트 네이티브와 플러터가 쌍두마차가 될 것 같습니다.
솔직히 말하면 제가 자바스크립트를 별로 안 좋아해서 dart 라는 언어를 사용하는 플러터를 더 좋아하는지도 모르겠습니다.