React Native와 함께 인프런 앱 새로 만들기│인프콘2024

admin | | 조회 9


[주요 목차]

인프런 앱의 역사와 발전

React Native 선택 이유와 아키텍처

플레이어 구현과 웹뷰 문제 해결


안녕하세요! 오늘은 'React Native'를 이용해 인프런 앱을 새로 만들었던 경험담을 나눠보려고 해요. 많은 개발자들이 앱 개발을 시작할 때 어떤 기술 스택을 선택할지 고민하잖아요. 특히 크로스 플랫폼 앱 개발의 경우에는 더더욱 그렇죠. 그래서 이번 글에서는 인프런 앱의 역사, React Native를 선택한 이유, 그리고 실제 개발 과정에서 겪었던 다양한 문제들을 다뤄볼게요. 이 글을 통해 여러분도 앱 개발 시 유용한 인사이트를 얻고, 비슷한 상황에 직면했을 때 어떻게 대처해야 할지에 대한 힌트를 얻길 바라요. 자, 그럼 시작해볼까요?


React Native와 함께 인프런 앱 새로 만들기│인프콘2024 - 실전 화면 1 - ReactNativeReact Native와 함께 인프런 앱 새로 만들기│인프콘2024 · 실전 화면 1

인프런 앱의 역사와 발전

인프런 앱은 2021년에 처음 출시되었는데요, 그때는 앱 개발 경험이 없는 프론트엔드 개발자가 만든 앱이었어요. 결과는 아시다시피 그리 좋지 않았는데, 사용자 리뷰도 안 좋았고 결국 2023년 4월에 공개 중지되었죠. 이후, 새로운 인프런 앱을 만들기로 결심하게 되었고, 2023년 말에는 모바일 셀을 신설해 5명의 팀이 구성되었어요. 그 후, 2024년 초부터 인프런 앱 개발을 시작해, 6월 중순에는 스토어에 출시할 수 있었습니다.

새로운 인프런 앱은 이전의 단순한 리더 앱에서 벗어나, 사용성을 개선하는 데 집중했어요. 예를 들어, 강의를 구매하고 보는 과정에서 백그라운드 재생, 배속 설정, 노트 기능 등 다양한 기능을 추가했죠. 이러한 변화는 사용자 경험을 크게 향상시켰고, 더 많은 피드백을 받을 수 있게 되었답니다.

React Native와 함께 인프런 앱 새로 만들기│인프콘2024 - 주요 포인트 2 - ReactNativeReact Native와 함께 인프런 앱 새로 만들기│인프콘2024 · 주요 포인트 2

React Native 선택 이유와 아키텍처

그렇다면 왜 React Native를 선택했을까요? 사실, 앱 개발을 시작할 때 팀의 상황이 큰 영향을 미쳤어요. 우리 팀은 React 개발자가 많았지만, Android 개발자는 한 명도 없었거든요. 그래서 크로스 플랫폼 프레임워크로 React Native를 선택하게 되었죠. 또, React Native의 CLI와 Expo의 차이점에 대해서도 고민했어요. Expo는 여러 서드파티 라이브러리를 관리해주고, 업데이트가 쉬워서 많은 개발자들이 선호하죠.

그러나 우리 팀은 커스터마이징이 중요했기 때문에 React Native CLI를 선택했어요. 이 결정은 팀의 기술 스택과 경험에 따른 결과였죠. React Native의 아키텍처를 살펴보면, 자바스크립트 런타임과 네이티브 UI 사이의 통신이 이루어지는 구조로 되어 있습니다. 하지만 이 과정에서 발생할 수 있는 지연 문제와 동시 작업의 어려움은 개발자들에게 도전이 되었죠.

React Native와 함께 인프런 앱 새로 만들기│인프콘2024 - 주요 포인트 3 - ReactNativeReact Native와 함께 인프런 앱 새로 만들기│인프콘2024 · 주요 포인트 3

플레이어 구현과 웹뷰 문제 해결

앱의 핵심 기능 중 하나인 플레이어는 네이티브로 구현했어요. 기존의 React Native Video 라이브러리를 사용하지 않은 이유는, 이전 앱에서 많은 문제가 있었고, 필요한 기능이 부족했기 때문이었죠. 그래서 직접 네이티브 코드를 작성해 플레이어를 구현했습니다. 이로 인해 더 빠른 유지보수와 성능 개선이 가능했어요.

또한, 웹뷰 문제도 만나게 되었어요. 웹뷰에서 특정 페이지에서 줌 기능이 작동하지 않는 문제가 발생했는데, 이는 메타 태그가 자바스크립트 사이드에서 제거되는 현상 때문이었죠. 여러 번의 시도 끝에, 서드 파티 라이브러리와의 충돌이 원인임을 알게 되었고, 이를 해결하기 위해 자바스크립트 메서드를 오버라이딩하는 방식으로 문제를 해결했어요.

이런 경험들은 정말 많은 것을 가르쳐 주었고, 앱 개발 과정에서의 문제 해결 능력을 더욱 키워주었습니다. 앞으로도 더 나은 앱을 만들기 위해 계속해서 학습하고 개선해 나가야겠죠.


[자주 묻는 질문]

React Native의 장점은 무엇인가요?

React Native의 가장 큰 장점은 크로스 플랫폼 개발이 가능하다는 점이에요. 즉, 하나의 코드 베이스로 iOS와 Android 앱을 동시에 개발할 수 있어요. 또한, React의 생태계를 활용할 수 있어 다양한 라이브러리와 도구를 쉽게 적용할 수 있습니다.

인프런 앱을 새로 만들면서 가장 어려웠던 점은 무엇인가요?

가장 어려웠던 점은 사용자 피드백을 반영하는 것이었어요. 이전 앱에서의 실패 경험을 바탕으로, 사용자 인터뷰와 테스트를 통해 실제 사용자의 목소리를 듣고 개선점을 찾아내는 과정이 매우 중요했습니다.

플레이어를 네이티브로 구현한 이유는 무엇인가요?

플레이어를 네이티브로 구현한 이유는 성능과 커스터마이징의 유연성 때문이에요. 기존 라이브러리에서 문제가 많았던 경험이 있었고, 직접 구현함으로써 필요한 기능을 완벽하게 맞출 수 있었습니다. 이를 통해 사용자 경험을 개선할 수 있었죠.

목록
글쓰기
한국 서버호스팅
전체보기 →

댓글 0

jpg/png/gif/webp/zip · 최대 100MB · 10개

리뷰

0
0건의 리뷰
5★
0
4★
0
3★
0
2★
0
1★
0
0/5000
아직 작성된 리뷰가 없습니다. 첫 리뷰를 남겨주세요!