[React Native]앱 개발 도전하며 삽질 끝에 얻은 소소한 경험

chaewon Im·2021년 11월 9일
0

회고

목록 보기
1/4


교내 해커톤에 참가하면서 그동안 써보고 싶었던 React Native로 간단하게 앱을 만들어보게 되었다. 정말정말 앞이 캄캄했던 40시간이였는데, 그 시간동안 처음으로 앱을 만들면서 배웠던 내용들을 간단하게 시리즈로 정리해보려고 한다.


Contents 📄

1. 왜 React-Native 였나?
2. 직접 부딪히니 느껴지는 단점들
3. 첫 앱개발 후기


1. 왜 React-Native 였나? 🤔

우선 나는 웹 프론트엔드 개발을 주력으로 하고 있다. 앱 개발은 지식도 경험도 모두 전무했다.(그냥 네이티브 앱/크로스 플랫폼 앱/하이브리드 앱 등등 정도의 구분만 가능한 상태)

사실 지독한 앱등이인지라 IOS 개발이 제일 하고싶었다. (맥북 유저인데 swift 안써보면 낭비 아니냐며..~)그래서 제일 먼저 해커톤을 위해 패기넘치게 Swift 강의를 찾아보며 실습을 해봤으나 swift 문법은 물론이고 기본적인 앱의 구조도 모르다보니 이걸 이틀 공부하고 40시간만에 앱 하나를 뚝딱하는 것은 무리일 것이라는 판단이 들었다. 안드로이드 역시 같은 이유였다. 그리고 xcode나 안드로이드 스튜디오를 쓸 때에는 이 파일 저 파일 돌아다니며 개발을 하는데..일단 플랫폼의 기본적인 구조부터 이해해야 하는 나는 각 파일들이 무슨 역할을 하는건지, 왜 옮겨다니며 개발을 하는지도 모르는 채로 실습을 하니 더 어렵게 느껴졌다.

반면에 자바스크립트/리액트를 기반으로 하는 react native는 상대적으로 덜 어렵게 다가왔고, 아래와 같은 장점들을 보며 지금의 나에게는 네이티브 보다는 크로스 플랫폼 앱이 더 적합하다는 판단이 들었다.

  • RN에서 사용하는 컴포넌트들은 공식 문서만 보고도 충분히 이해하고 사용 가능했고, flex 스타일에도 익숙해서 처음임에도 금방 실습 내용을 따라가고 배운 내용을 바탕으로 어느정도의 앱 화면 정도는 구현까지 가능했다.

  • 다양한 오픈소스들이 많이 나와 있어서, 위의 장점에 더해 라이브러리까지 활용하면 짧은 시간에 UI를 퀄리티 있게 구현하기에도 좋을 것이라는 판단이 들었다.

  • 그 외에 hot reload 지원으로 즉각즉각 변경사항 확인이 가능하다는 점, 이왕 만드는 거 두개의 OS를 모두 경험해볼 수 있다는 점 등이 매력적이였다.

즉, 가장 큰 이유는 주어진 시간이 짧았기 때문에 단기간의 학습만으로도 어느 정도의 퀄리티를 보여줄 수 있을 정도로 구현이 가능할 것 같던 RN을 선택한 것! 다양한 장점들 중에서도 이게 가장 컸다.

그러나 직접 사용해보니 단점도 많이 느껴졌고, 결국 생각한 만큼의 구현을 성공하지 못하고 해커톤을 아쉽게 끝내게 되었다.😥😥


2. 직접 부딪히니 느껴지는 단점들 🤬

리액트 네이티브 단점들이야 검색하면 많이 나오니 생략하고, 그 중에서도 특히나 많이 체감했던 단점들에 대해 정리하려고 한다.

1. 디버깅이 좀 어려웠다

스타일 구현 후 백엔드와 연결을 시작하기 무섭게 우르르 쏟아져 나오는 에러들에 진이 빠졌었다. 사실 에러야 열심히 구글링을 통해 해결하면 되는거니까 평소같으면 마음을 가다듬고 찾아보겠지만, 문제는 시뮬레이터를 껐다 킬때마다 에러가 바뀐다는 것...그게 가장 사람 환장하게 했다. 또 에러 문구의 내용과 경로가 명확하지 않아 도대체 무엇이 문제인지 찾기 너무 어려웠다. 사실 40시간이라는 시간적 제약 때문에 더 다급해서 놓친 부분도 많고 그 때문에 에러도 많이 생기면서 단점이 더 치명적으로 느껴졌던 걸 수도 있다.(근데 원래 이게 RN의 단점 중 하나라고 한다.)

물론 그래도 살아날 구멍은 있는지 해커톤이 끝나고 현타가 와서 찾아보니 디버깅을 쉽게 하도록 도와주는 다양한 툴이 있는 것 같다!! 다음에는 얘네를 좀 적용해봐야겠다.

2. 오픈 소스에 의존해야 하는데 오히려 독이 된 경우

리액트 네이티브가 오픈소스 의존도가 높다는 사실은 이미 알고 있었다. 그래서 오히려 라이브러리를 잘 찾아쓰면 구현도 금방 할 수 있을거라는 희망찬 생각을 하고 있었다. 그러나 역시 이것도 어림도 없었다..멋진 UI를 구현하고 싶어서 찾아둔 라이브러리가 알고보니 두 달 전에 지원을 중단한 것이였다. 그것도 모르고 신나서 찾아놨다가 나중에 급히 디자인을 변경하게 되었다. 앞으로는 쓰기 전에 꼭 잘 확인해야겠다는 걸 깨달았다.😱

이 역시도 대표적인 단점이라고 한다. 관리가 제대로 되지 않는 오픈소스를 이용했다가 버그라도 생기면 잡기도 어렵고 업데이트가 될 때 까지 하염없이 기다려야 할 수도 있고, 버전 관리들이 제대로 되지 않으면 라이브러리들끼리 충돌이 일어나 노답이 되는(^^)상황도 발생한다고 한다.

3. 한국어 자료가 생각보다 많지 않다

정말 앱에 대해 아~~무것도 모른 채로 도전해야 했던 나는 RN의 인지도에 비해 생각보다 한국어 자료가 많지 않아서 살짝 놀랐었다. 당연히 강의도 많고 자료도 많을 줄 알았는데 진짜 기본적인 것 외에는 생각보다 많지 않았다. 열심히 블로그 작성해주신 오아시스같은 분들의 글을 정독하면서 도움을 많이 받았고, 진짜 이게 뭘까 싶은것들은 영어로 겨우 찾아가며 배우고 영어 강의들을 보며 혼자 익혔다.(그래서인지 자세한 개념은 잘 모르고 넘어간 것 같다) 나처럼 영알못들은 각오를 쫌 해야할 것이다..음..영어 공부나 해야겠다🔥


3. 첫 앱 개발 후기✨

진짜 앱으로 쳐맞은 40시간이라고 자부(?)할 수 있는데, 그래도 매번 만들고 싶다고 말로만 외치고 직접 경험할 시간은 부족했던 앱개발에 드디어 도전해보니 재미도 있고 뿌듯했다. 웹이랑은 다르게 스택 구조로 이루어지는 것도 신기했고, 정말 생각해보니 앱이라는 건 웹처럼 URL로 움직이는 게 아니라 탭 하나에 여러개의 내부 페이지로 이루어져 있다는 걸 깨달아서 또 재밌게 만들었던 것 같다.

그치만!!!결국 앱개발을 제대로 하려면 네이티브 지식은 기본적으로 필요하다는 생각이 들었다. 물론 나는 아직 웹 프론트 분야를 준비중이다 보니 네이티브까지 깊게 다루는건 효율상 무리겠지만..나중에 시간적 여유가 생기면 이 쪽도 더 공부해보고 나중에는 꼭!!IOS앱도 만들어 보고 싶다. 나는 집념의 앱등이니깐..

profile
빙글빙글 FE 개발자

0개의 댓글