본문 바로가기
App/React Native

[React Native] 소개 및 채택 과정

by 백승전 2022. 2. 20.

 

개요

 

요즘 리액트 네이티브를 공부하며 앱 개발 계획을 앞두고 있습니다. 리액트 네이티브 공부 일지를 작성하기에 앞서, 리액트 네이티브가 무엇이고 제가 왜 채택했는지에 대해 이야기를 해 볼까 합니다.

 

리액트 네이티브란?

 

리액트 네이티브를 말씀드리기에 앞서, 이 친구 이름이 리액트와 이름이 매우 비슷하죠? 리액트는 페이스북에서 개발한 웹 사이트를 개발할 때 가장 많이 사용하는 라이브러리 중 하나입니다. 이 프론트엔드의 취업 시장 변화 속도와, 사용 기술의 변화 속도는 매우 빠르지만, 그럼에도 불구하고 아직까지 대부분의 모집 요강에선 '리액트로 개발이 가능한 사람'이 많이 보일 정도로 굉장히 인기 있는 기술이자 필수 기술입니다.

 

근데 이런 리액트와 환경이 거의 비슷하고, 자바스크립트로 앱 개발이 가능한 프레임워크가 있다고 합니다. 그게 바로 리액트 네이티브입니다. 리액트 네이티브의 특징으로는 크로스 플랫폼 앱이라는 것입니다. 크로스 플랫폼 앱이란 네이티브 코드가 아닌 걸로 코딩을 해도 안드로이드와 iOS가 이해할 수 있는 코드로 변환해 한 번의 코딩으로 두 개의 플랫폼에서 개발이 가능하게 해주는 멋진 친구를 의미합니다.

 

보통 앱 개발자라고 하면 안드로이드 개발자와 iOS 개발자로 나뉘게 되는데요. 왜냐하면 안드로이드는 자바나 코틀린, iOS는 Swift로 개발 언어도 다르고 환경도 다르기 때문입니다. 하지만 리액트 네이티브는 리액트로 코딩을 하면 자바스크립트 코드로 컴파일 후에 안드로이드와 iOS에서 최적화 된 코드로 실행시켜 주기 때문에 '두 번 해야 할 것'을 '한 번에 끝낸다'라는 엄청난 장점을 가지고 있습니다.

 

참고로 이 크로스 플랫폼 앱으로는 리액트 네이티브뿐만 아니라 여러분들이 한 번씩은 들어보셨을 만한 Flutter도 포함되어 있습니다. 이처럼 기존에는 안드로이드와 iOS 둘 다 앱 출시를 하고 싶었으면 두 번 개발을 함으로써 두 배 혹은 그 이상의 노력과 시간을 투자해야 했지만, 한 번의 코딩으로 두 가지 플랫폼에서 앱 개발이 가능하다는 건 확실히 개쩌는 것 같긴 합니다..

 

물론 세상만사 장점이 있으면 단점도 존재하겠죠? 뻔하디 뻔한 이유입니다. 편한 만큼 더욱 deep한 개발이 불가하거나 퍼포먼스 향상 과정에서 이슈를 야기할 수 있다는 단점이 존재합니다. 아무튼 적절히 장단점이 섞인 이 리액트 네이티브를 채택한 이유는 다음과 같습니다.

 

리액트 네이티브를 채택한 이유

 

사실 이 이유 하나만으로 충분하다고 보는 이유입니다. 프론트엔드 개발자가 앱 개발을 하고자 할 때 가장 접근하기 쉽다고 생각하기 때문입니다.

 

왜냐하면 프론트엔드 개발자는 자바스크립트가 생명인데, 이 리액트 네이티브가 자바스크립트로 개발이 가능한 프레임워크이기 때문입니다. 그리고 프론트엔드 시장에서 리액트가 굉장히 인기라고 아까도 말씀드린 만큼, 저 역시도 조금만 다룰 줄 아는 정도라 리액트 공부도 손 놓을 수 없는 상태입니다. 그런데 이 리액트 네이티브는 리액트와 매우 비슷하기 때문에 일석이조로 리액트 공부도 될 것 같아서 채택을 하였습니다.

 

뿐만 아니라 리액트 개발자를 구하는 모집 요강의 우대 조건에는 가끔 가다 리액트 네이티브도 다뤄본 개발자를 희망하는 문구가 보입니다. 이런 점에서 저는 시장은 확실히 '이 둘을 이름만 같고 엄연히 다른 분야, 다른 기술'로 보는 게 아니라 '비슷하기 때문에 둘 다 배워봤고 잘하는 개발자'를 원하는구나 생각도 들어서 더욱 리액트 네이티브 공부에 박차를 가할 수 있었습니다.

 

아 그리고 제가 너무 리액트를 찬양하는 것 같아 헷갈리실까 봐 덧붙이자면, 웹 개발을 할 때 사용하는 프레임워크는 리액트뿐 아니라 뷰와 앵귤러도 있습니다. 그리고 당연히 리액트, 뷰, 앵귤러의 장단점이 다 있고, 회사마다, 개발자마다 선호하는 라이브러리와 프레임워크가 다르기 때문에, 본인의 취향이나, 개발하고자 하는 프로젝트의 성격, 속해 있는 집단의 성격 등이 고려되어야 합니다.

 

그 중 저는 취업 시장에서의 수요나, NPM 트렌드나 깃허브, 스택 오버 플로우와 같은 각종 사이트와 커뮤니티 트렌드 지표를 봤을 때 가장 수요가 많고 핫해서 리액트를 공부하고자 했던 것이고, '리액트를 하면서 리액트 네이티브까지 할 줄 알면 앱 개발도 가능하겠네?' 하는 생각의 흐름이 여기까지 도달하게 되었습니다. 그러니 '이 새끼 존나 하나만 알고 둘은 모르네' 안 하시길 바라겠습니다.

 

아무튼 이후에 제가 리액트 네이티브로 개발도 어느정도 해 보고, M1 환경에도 익숙해지면, '리액트 네이티브의 설명과 장단점', 'M1에서 리액트 네이티브 개발 환경 세팅하기' 등의 이야기로 찾아 뵙도록 하고, 당분간은 공부 일지로 찾아뵈며 꾸준히 복습을 할 계획입니다.

댓글