[React Native] React Native?!

프린스송·2021년 8월 5일
2

React Native

목록 보기
1/10
post-thumbnail

안녕하세요!! 오늘은 swift관련 포스팅이 아닙니다!ㅋㅋㅋ 바로 제가 요즘 관심이 생긴 React Native에 대해 간단히 포스팅을 해보려고 합니다. iOS관련 앱개발만 하다가 안드로이드도 함께 개발이 가능한 크로스 플랫폼 앱개발도 재미있을 것 같아서 공부를 해보려 합니다.


React Native란?

리액트 네이티브(React Native)는 페이스북이 개발한 오픈 소스 모바일 애플리케이션 프레임워크입니다. 리액트 네이티브보다 더 흔히들 알고 계실 React는 반응형 웹을 위한 페이스북이 제작한 프레임워크입니다. 하지만 리액트 네이티브는 더 나아가 안드로이드, iOS, 웹, UWP용 애플리케이션을 개발하기 위해 사용되며, 개발자들이 네이티브 플랫폼 기능과 더불어 리액트를 사용할 수 있게 한다네요!!
요즘 굉장히 핫한 프레임워크라고 할 수 있죠. 이전에는 안드로이드와 iOS개발을 위해 안드로이드 개발자와 iOS개발자를 따로 두고 제작을 하였다면 하나의 코드로 두 플렛폼의 개발이 가능하니 정말 편리하지 않을 수가 없겠네요. 안드로이드는 코틀린이나 자바, iOS는 swift, objective-c를 사용했다면 React Native는 자바 스크립트만을 사용하여 모든 플랫폼의 앱을 만들 수 있습니다. 그래서 요즘 스타트업 기업들이나 많은 개인 앱 개발자들은 이러한 크로스 플랫폼 프레임워크를 많이 사용하여 개발을 한다고 합니다.

리액트 네이티브의 가장 큰 특징은 앞서 말씀드렸다시피 자바 스크립트로 코드를 짜고 작업한다는 점입니다. 하지만 인터페이스는 네이티브 위젯으로 표시하여 각 플렛폼에 맞는 UI를 제공받을 수 있는 거죠!


갑자기 React Native?

제 velog를 보셔도 아실테고 저는 지금까지 계속 iOS관련 앱 개발 공부만을 해왔었고 이 쪽으로 진로를 설정했습니다. 하지만 많은 스타트업 기업에서도 이런 크로스 플랫폼 개발자를 선호한다는 사실을 깨달았죠. 그 이유가 일단 비용적이나 시간적이나 매우 효율적이고 복잡한 기능을 사용하지 않은 앱 같은 경우에는 이런 크로스 플랫폼 개발이 훨씬 효율적이게 됩니다. 그리고 저 같은 경우도 아직 많이 배우는 단계이고 요즘 트렌드인 개발도 한번 공부를 해보면 좋을 것 같아서 선택하게 된 점도 있고요!

역시 또 한가지 빼먹을 수 없는 것인 크로스 플랫폼 개발! 제가 iOS 앱 개발을 선택하고 공부하게 된 계기는 단순히 내가 아이폰을 쓰고 맥북을 쓰는 이러한 이유도 있었고 또 애플이 가진 기술력과 많은 제품들을 보며 그 중 하나인 앱개발에 흥미를 가진 것도 있었습니다. 하지만 이 휴대폰 시장만을 본다면 안드로이드 사용자들이 훨씬 많이 분포 되어있기 때문에 어찌본다면 수요가 많은 안드로이드 앱개발도 같이 하는 것이 맞을 것 같다고 생각이 되었습니다!


React Native 장점

  • 크로스 플랫폼
    가장 큰 장점이죠. 바로 안드로이드와 iOS를 동시에 개발할 수 있다는 것입니 다. 시간 절약이 가능하고 인력 또한 낭비하지 않게 되죠. 이 장점이 많은 사람들이 React Native 선택하는 이유가 아닐까 싶습니다.
  • 오픈 소스 플랫폼
    React Native 오픈 소스 플랫폼이기 때문에 이 기술과 관련된 문서를 모두가 사용할 수 있으며 모든 사람이 네이티브 커뮤니티에 쉽고 빠르게 접근 할 수 있습니다.
  • 소스코드의 공유와 재사용
    페이스북의 React에서 파생되어 리액트의 방식을 그래도 사용합니다. 따라서 공유또한 쉬워지죠. 그리고 컴포넌트 기반 개발 방식을 사용하여 소스코드의 재사용률을 매우 극대화 시켰다고 합니다.
  • 웹 개발자를 위한 용이성
    React Native는 웹 개발인 React에서 파생된 프레임워크이므로 기존에 자바 스크립트 기반인 React로 웹 개발을 했었던 개발자에게는 매우 쉽게 앱 개발로 넘어갈 수 있습니다. (저는 웹 개발을 하지 않았으므로 패쓰..)
  • 효율적인 비용
    이것 역시 안드로이드와 iOS 둘 다 개발이 가능해 비용 측면에서도 높은 효율성을 보이고 있습니다.
  • 학습
    자바 스크립트 기반으로 쉽게 학습이 가능하고 jsx또한 크게 어렵지 않습니다.

React Native 단점

  • API 접근성
    네이티브 개발에 비해 다양한 API를 사용하지 못합니다. 아무래도 두 플랫폼을 동시에 개발하는 거라 세부적인 면에서의 개발은 네이티브 개발을 이기지 못할것입니다.
  • 새로운 네이티브 기능 개발
    내가 원하는 기능에 대한 오픈소스가 존재하지 않는다면 직접 네이티브 기능을 제작해야합니다. 그러기 위해서는 각 플랫폼 개발을 따로 또 숙지를 해야한다는 단점이 생기죠.
  • 타사 라이브러리 가용성
    네이티브 개발인 안드로이드나 iOS 개발보다는 라이브러리에 대한 지원이 적습니다. 많은 라이브러리를 이용한 더 창의적인 앱 개발은 힘들겠네요..
  • 성능
    React Native는 브릿지를 사용해 자바 스크립트의 스레드와 네이티브 스레드를 연결시켜 동작하는 하이브리드 앱 방식입니다. 이러한 방식은 네이티브 개발 방식보다 성능이 떨어질 수 있습니다.
  • 학습
    React Native를 개발하기 위해 React에 대한 상식도 익혀야 하며 네이티브 부분도 어느정도 숙지하고 있어야 합니다.

오늘은 React Native에 대한 개념과 장,단점에 대해 아주 간단하게 포스팅을 해보았습니다. 벌써 기대가 되네요! 과연 어떤 개발 방식이 저한테 보여질 것이며 어떤 성취감이 다가올지..! 그럼 빨리 공부해서 다음 포스팅에서 뵙겠습니다. 오늘 하루도 수고 많으셨습니다!

profile
[iOS / Swift] [React Native]

1개의 댓글

comment-user-thumbnail
2022년 6월 19일

좋은 글 감사합니다! 여쭤볼게 있는데 제가 이제 막 코딩에 입문한 사람으로서 react native를 하려면 js를 알아야하고 js를 알려면 html 을 먼저 알아야한다는 글을 본 적이 있습니다! react-native를 통해 앱 개발을 하려면 html -> js -> react-native 순서가 맞을까요?

답글 달기