리액트 네이티브는 iOS와 안드로이드에서 동작하는 네이티브 모바일앱(이하 '앱')을 만드는 자바스크립트 프레임워크이다. 리액트 네이티브는 사용자가 인터페이스를 만드는 페이스북의 자바스크립트 라이브러리인 리액트에 기반을 두고 있다. 하지만 브라우저가 아닌 모바일 플랫폼이 타깃이다. 웹 개발자가 익숙한 자바스크립트 라이브러리를 이용하면서 겉모습과 실제 동작까지 진짜 네이트브인 모바일 앱을 만들 수 있다. 게다가 작성한 코드 대부분을 플랫폼 간에 공유할 수 있어서 리액트 네이티브를 이용하여 손쉽게 iOS와 안드로이드 앱을 동시에 개발할 수 있다. 


  공식 리액트 네이티브 프로젝트는 iOS와 안드로이드에서 모두 동작하는 모바일 앱을 작성할 수 있게 해준다. 커뮤니티 프로젝트를 이용하면 리액트 네이트브로 윈도우, 우분투 , 웹 등 다른 플랫폼에서 동작하는 앱을 만들 수 있다. 리액트 네이티브는 Cordvoa 나 Ionic과 같은 기존의 크로스 플랫폼 앱 개발 방법과는 눈에 띄는 차이점이 있다. 바로 대상 플랫폼의 표준 렌더링 API를 사용한다는 점이다. 자바스크립트, HTML, CSS 를 사용하여 모바일 앱을 만드는 기존의 방법들은 웹뷰를 이용하여 렌더링을 한다. 이러한 방식은 앱을 실행하는데 있어서 성능을 떨어뜨리는 단점이 존재한다. 네이티브 UI를 사용하지 않을뿐 이를 흉내낼 뿐이며 결과는 어색하기만 하다. 애니메이션과 같은 아주 섬세한 부분에 대한 리버스 엔지니어링이 엄청나게 들며 이는 쉽게 구식이 되어버린다. 

  리액트 네이티브는 개발자가 작성한 마크업을 플랫폼에따라서 그에 상응하는 진짜 네이티브 앨리먼트로 전환한다. 리액트 메인 UI쓰레드와 분리되어 실행되어 성능상의 이점이 존재한다.  리액트 네이티브의 렌더링 갱신주기는 리액트와 같다. props와 state가 변경될때 리액트 네이티브는 뷰를 다시 렌더링 한다. 리액트 네이티브와 브라우저에서 실행하는 리액트의 가장 큰 차이점은 HTML , CSS 마크업이 아니라 대상 플랫폼의 UI 라이브러리를 이용하여 렌더링한다는 점이다. 개발 경험과 크로스 플랫폼 개발 가능성이라는 두가지 면에서 리액트 네이티브는 지금까지의 모바일 앱 개발 방법보다 진보했다고 할 수 있다.


발췌 빠른 모바일 앱 개발을 위한 React Native 2/E [이종은 저 ]

'React & React Native ' 카테고리의 다른 글

ES6 - 화살표 함수  (0) 2018.10.02
Application Styles has not been registered  (0) 2018.10.01
No bundle URL present  (0) 2018.09.21
Can't find variable : Fragment  (0) 2018.09.21
React Native 2/E 실습  (0) 2018.09.20
블로그 이미지

클라인STR

,