React-native 시작하기

nevermind·2022년 12월 7일
0

개발자를 시작하게 된 이유인 버스 관련 앱을 이제 만들어보고자 한다!

🤩 React-native(RN)란

  • 페이스북에서 만든 오픈소스 모바일 애플리케이션 프레임워크로 안드로이드와 IOS앱을 만들 수 있는 크로스 플랫폼(하이브리드 플랫폼)이다

  • 앱을 개발할 때 일반적으로 Android는 Kotlin과 Java가 / IOS는 Objective-C와 Swift이 대표적이다. (각각 OS에 최적화된 언어이다, 각각 OS별로 개발하는 것을 Native개발이라고 한다)

  • JS로 코딩한 컴포넌트는 React-Native 플랫폼을 거쳐 Android Native, IOS 코드 각각 변환된다

  • React-native 환경에서는 native환경(Android, IOS)와의 인터페이스를 위하여 브릿지 역할을 하는 Native-modules를 사용한다

🌉 브릿지란?


출처 : https://brocoders.com/blog/react-native-interview-questions/

  • RN(React-Native)은 JS(javascript)로 개발하지만 Native코드(Android,IOS)로 통신할 수 있다. 그 이유는 브릿지 때문인데 브릿지와 동작하는 Thread 개념을 이해해야한다
  • 브릿지는 JS코드를 이용해서 네이티브 계층과 통신하는 역할을 한다
  • 브릿지는 JS thread 정보를 받아 네이티브에 전달
    - JS thread는 JS 코드가 실행되는 장소이며 보통 React 코드로 구성됨

🐯 React-Native 장점

  • JS만으로 앱을 만들 수 있기에 러닝 커브가 높지 않다(Kotlin, C, Swift 등 러닝하지 않아도 된다)
  • 소스코드의 재사용, 개발 속도가 빠르다(리액트 특징)
  • 오픈소스로 리소스가 풍부하다 (많은 개발자들이 사용하여 커뮤니티가 활성화 됨)

🦁 React-Native 단점

  • 기능에 한계가 있다.
    - 필요한 기능이 RN에 없다면 직접 Native로 제작해야한다.
  • Native로 개발방식보다는 성능이 떨어진다
    - RN 브릿지를 사용하여 Native thread를 연결시켜 동작하는 하이브리드 앱이기에 Native보다는 성능이 떨어진다
  • 언어 장벽이 있다 (RN 커뮤니티는 영어가 활성화 됨)
  • 성능 이슈가 있다.(비즈니스 로직이 많이 복잡하거나 뷰 스택이 높게 쌓이면 속도가 느려지는 성능 이슈가 있다)

🧤 RN 개발할 수 있는 방법 2가지

🟡 1. React-Native-CLI

  • 어떠한 툴도 사용하지 않고 오로지 RN으로만 개발하는 형식
  • 초기 설정 까다롭고 Anroid Studio, Xcode 등 각 플랫폼마다 설치하고 빌드
  • 개발자가 원하는 기능, 라이브러리 등 자유롭게 사용 가능

🟢 2. Expo-CLI

  • 초기 설정이 간단하고 Android나 IOS별로 플랫폼 IDE(개발환경)을 설치하지 않고 시뮬레이터를 사용할 수 있다
  • 네이티브 파일들을 제어할 수 없고 개발자의 자유도가 낮아짐, Expo가 제공하는 기능들만 사용가능
  • 즉, react-native cross 플랫폼으로 개발하기 위한 빌드도구이다

=> 플랫폼마다 IDE를 하지 않아도 되는 편리성과 빠른 앱 개발을 위해 Expo를 사용하여 개발을 시작해보고자 한다.


출처 : https://firework-ham.tistory.com/117
http://reactspring.io/?page_id=1015
https://firework-ham.tistory.com/102
https://ejko0911.medium.com/react-react-native-3b62854ea073
https://fomaios.tistory.com/entry/React-Native-Expo%EB%9E%80-feat-%EC%84%A4%EC%B9%98%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

profile
winwin

0개의 댓글