DARO React Native SDK
DARO | 광고수익화 고민을 끝내는 가장 강력하고 간편한 솔루션
DARO는 광고 수익화 플랫폼 입니다. iOS, Android, React Native SDK를 지원합니다. “앱 개발사를 위한 가장 강력하고 간편한 광고수익화 솔루션” 입니다. 수익화에 고민이 있으시면 한번 사용해 보세요.
최근 React Native SDK 를 출시했습니다.
들어가며
7년 전, Airbnb는 React Native를 사용 중단한다고 발표했습니다. 당시 Airbnb의 발표는 큰 충격을 주었고, React Native의 미래에 대한 의문을 불러일으켰습니다. 성능 문제와 기술적 제약으로 인해 대규모 애플리케이션에서는 적합하지 않다는 Airbnb의 결정은 많은 개발자들에게 React Native의 한계를 상기시켰습니다.
하지만 그 후에도 React Native는 살아남았고 꾸준히 진화해왔습니다. 특히 최근 도입된 New Architecture는 JavaScript Interface(JSI) 도입하고 성능을 대폭 개선하며 React Native의 새로운 가능성을 열어줬습니다. 여러 우여곡절에도 불구하고 여전히 살아남았습니다.
강한 자가 살아남는게 아니라 살아남는 자가 강하다고 하죠. React Native는 개발자들의 요구와 기술의 변화에 꾸준히 적응하며, 현재까지도 크로스플랫폼 앱 개발의 도구로 살아 남았습니다.
이번 글에서는 React Native SDK를 개발하면서 느낀점들을 공유하려고 합니다.
React Native
크로스플랫폼 프레임워크로 페이스북에서 관리하고 있고 Javascrpit와 React 를 활용해 네이티브 앱을 개발 할 수 있습니다.
React Native SDK 개발를 개발하게 된 이유
DARO의 고객사 중 약 40%가 React Native 로 개발된 앱들이었습니다. 앞으로도 계속 React Native 를 사용하는 고객사가 증가할 예정이어서 React Native는 필수적인 플랫폼이 되었던 것이죠. 팀에는 React 나 React Native 개발자가 없었기에 iOS개발자인 제가 개발을 진행하게 되었습니다. SDK의 구조는 iOS나 Android 사이드의 SDK 를 React Native 에 인터페이스를 만드는 느낌이라고만 생각했습니다.
개발을 시작하고 며칠 후 0.76 버전이 배포 되었어요. React Native 에서 New architecture 가 기본으로 사용되도록 바뀌었습니다. New Architecture는 얼핏 느끼기에 SDK개발 난이도가 올라간듯 했어요. 특히 New architecture 로 개발된 앱들은 Old architecture나 New architecture로 개발된 SDK를 사용할 수 있었는데요. Old architecture 로 개발된 앱들은 Old architecture로 개발된 SDK만 사용할 수 있었습니다. 가장 이상적인 방법은 Old architecture와 New architecture 모두 지원하는 SDK를 개발해야 했지만 시간과 경험 둘 다 부족한 상태였기 때문에 Old architecture를 먼저 개발하고 안정화 된 후 New architecture를 지원하는 것으로 방향을 잡았습니다.
처음 구조를 만들때 많은 시행착오를 했는데요. expo native module 구조를 참고하여 개발하려고 했는데 추상화가 깊고 expo 에 의존이 생길 수 밖에 없었습니다. React Native 는 커뮤니티가 활성화 되어 있고 네이티브 모듈을 쉽게 만들 수 있는 툴도 이미 있었습니다. https://callstack.github.io/react-native-builder-bob/create Swift & Kotlin 환경으로 빠르게 시도해 볼 수 있었어요.
개발 경험
iOS 개발자로서 React 코드를 작성하면서 여러가지 충격을 받았습니다. 우선 React Native 의 Hot Reloading 은 아직 SwiftUI의 Preview 보다 훨씬 좋습니다. SwiftUI의 Preview가 하나의 화면만 가능하다면 React Native는 전체 앱이 Hot Reloading 이 되기 때문에 코드를 작성하고 결과를 확인하는 사이클이 훨씬 짧았습니다.
물론, SDK를 개발할 때에는 인터페이스를 위해 Android(Android 개발자가 진행)와 iOS의 네이티브 코드를 작성하는 시간이 더 많았기 때문에 Hot Reloading의 장점을 많이 느끼진 못했었는데 expo 를 이용해 앱을 개발하면서 더 크게 느낄 수 있었습니다.
Cursor는 최고의 개발 도구
Cursor가 없었으면 개발시간은 몇배 더 걸렸을 거에요. Cursor의 Chat, Compose를 사용해 배움과 코딩을 동시에 진행할 수 있었습니다. 특히 웹 컨텐츠도 해석할 수 있고 이미지도 처리할 수 있어서 그야말로 만능 툴이에요. Typescript는 물론 Objective-C나 Swift, Kotlin 도 개념만 알고 있으면 쉽게 코딩할 수 있었습니다.
마치며
React Native SDK를 개발하면서 크로스플랫폼 개발의 장단점을 직접 경험할 수 있었습니다. iOS 개발자의 관점에서 봤을 때, Hot Reloading의 편리함은 분명한 장점이었습니다. Cursor와 같은 AI 도구의 도움으로 새로운 환경에서도 빠르게 적응하고 개발할 수 있었죠.
물론 Old Architecture와 New Architecture의 호환성 문제나 네이티브 코드와의 연동 등 여러 도전과제도 있었습니다. React Native는 이제 안정적인 크로스플랫폼 개발 도구로 자리잡았다는 생각이 듭니다.
다음 글에서는 expo 를 이용해 DARO SDK를 테스트 할 수 있는 날씨앱을 8시간 만에 개발하고 배포한 경험을 공유해 보겠습니다.
참고한 자료들
- https://reactnative.directory/
- https://docs.expo.dev/modules/native-module-tutorial/
- https://www.cursor.com/
⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌
- 딜라이트룸 채용 공고 살펴보기 ⏰
(+ 여기서 지원하면 입사 축하금 100만원💸)