시나리오 - 날이 갈수록 크로스 플랫폼에 대한 관심과 기대가 커지는 가운데 크로스 플랫폼 개발자가 어느새 하나의 개발직군처럼 보이는 것 같다. 현재까지 시장에 나와있는 크로스 플랫폼 들에 대해 조금씩 알아가 보자.
크로스 플랫폼에 관심이 있거나 개발 현업에 종사하고 있다면 심심찮게 리액트 네이티브라는 이름을 들어봤을 것이다.
리액트 네이티브란, 자바 스크립트와 리액트를 사용하는 프레임워크로 하나의 코드로 iOS & Android 앱을 개발 가능하다.
현 메타(구 페이스북)에서 개발한 프레임워크로 웹의 리액트를 모바일 앱 개발에 접목한 기술이다.
1. 한 번의 코드로 두 가지 플랫폼을 지원
크로스 플랫폼이 가지는 가장 큰 장점인 하나의 코드로 iOS, Android 2가지 앱을 동시에 개발할 수 있다.
2. 핫 리로딩(Hot Reloading) 지원
핫 리로딩이란 코드를 수정하게 되면 즉시 갱신되어 그 결과 값을 확인할 수 있게 해주는 것이다.
3. 네이티브와 통합
네이티브 컴포넌트를 사용할 수 있기 때문에 성능적으로 우수하고, 쉽게 네이티브 모듈을 연동할 수 있다.
4.커뮤니티와 생태계
이부분도 개발환경을 선택할 때 빼놓을 수 없는 중요한 부분이다. 리액트 네이티브는 꾸준히 사용되어 온 만큼 커뮤니티도 활발하다.
필요한 라이브러리도 쉽게 찾을 수 있고 도움이 필요한 경우도 커뮤니티등을 통해 도움을 받을 수 있는 확률도 높다.
1. 성능 제약
React Native는 네이티브 앱보다 성능이 다소 떨어질 수 있다. 특히 그래픽이나 애니메이션, 복잡한 연산을 많이 사용하는 앱에서는 네이티브 앱보다 느리게 작동할 가능성이 있다. 따라서 고성능이 필요한 게임 앱이나 AR/VR 앱에는 적합하지 않을 수 있다.
2. 네이티브 기능 제한 및 호환성 이슈
React Native가 많은 네이티브 API를 지원하지만, 모든 네이티브 기능을 즉시 사용할 수 있는 것은 아니다. 최신 네이티브 기능이나 특정 플랫폼 종속적인 기능은 직접 네이티브 모듈을 작성해야 할 수도 있다. 이 경우 Java, Swift, Objective-C 등의 언어를 추가로 사용해야 하므로 개발이 복잡해질 수 있다.
3. 업데이트 및 버전 관리 어려움
React Native와 네이티브 플랫폼(Android, iOS) 간의 업데이트 속도가 다르기 때문에, 새로운 OS 버전이나 네이티브 SDK가 출시되면 이에 맞게 React Native 버전도 빠르게 업데이트되어야 한다. 호환성 문제가 발생할 수 있으며, 새로운 네이티브 기능을 사용할 때까지 시간이 걸릴 수 있다.
4. 크기 문제
React Native는 기본적으로 JavaScript 런타임을 포함하고 있기 때문에 네이티브 앱보다 앱의 크기가 더 커질 수 있다. 이로 인해 앱의 다운로드 용량이 커져 초기 설치에 영향을 줄 수 있다.
5. 디버깅과 성능 최적화의 어려움
React Native는 JavaScript와 네이티브 코드를 연결하는 브릿지 구조를 사용하기 때문에, 디버깅이 복잡해질 수 있다. 또한 JavaScript와 네이티브 코드 간의 통신이 많은 경우 성능 저하가 발생할 수 있으며, 이를 최적화하는 데 시간이 걸릴 수 있다.
1. 빠르게 결과를 확인해 봐야하는 경우
빠른 피드백이 필요한 스타트업이나 1인 개발자에게 최적이다.
한 번의 코드 작성으로 두 플랫폼을 동시에 출시할 수 있고, 핫 리로딩으로 빠르게 기능을 점검할 수 있기 때문이죠.
2. 웹 개발 경험이 있어 앱 개발에 빠르게 도전해 보고 싶은 경우
웹 개발 경험이 있는 사람이라면, React Native는 정말 빠르게 적응할 수 있다. React를 다뤄본 적 있다면 구조가 친숙하게 느껴질 겁니다.
3. JavaScript와 React에 익숙한 경우
JavaScript나 React에 익숙하다면, 네이티브 개발로 바로 진입할 수 있다. 새로운 언어를 배우는 부담 없이, 네이티브 앱 개발에 접근해 볼 수 있다.
4. 모바일 앱 성능과 네이티브 기능이 중요한 경우
React Native는 네이티브 모듈과 통합이 용이해, 앱 성능과 사용자 경험을 중시하는 개발자에게도 좋은 선택이 될 수 있다.
- 공식문서
https://reactnative.dev/docs/getting-started
GitHub의 ‘React Native 공식문서 한국어 번역’ 저장소: 공식 문서의 한국어 번역본을 제공
https://github.com/dev-seomoon/react-native-docs-ko
[로티파일즈] LottieFiles Figma to Lottie Course - 피그마에서 Lottie 애니메이션 만들기 (2) | 2024.06.25 |
---|---|
[지라] 자동화 말머리 추가하기 (JIRA Automation) (2) | 2023.04.11 |
[Slack + GitHub] GitHub 작업 알림받도록 연동해보기 (0) | 2022.06.29 |
[iOS개발 경험공유] swift tuple 활용해보기 (0) | 2022.06.24 |
[SwiftUI] 인텔리제이(intellij) AppCode 사용해보기 (Xcode랑 첫인상 비교) (0) | 2022.03.01 |
댓글 영역