Skip to content

요약: 토스 | Slash 22 - 미친 생산성을 위한 React Native

기존 앱의 문제점

  • 느린 배포 속도, 적은 개발 리소스
  • iOS 빌드 속도 - 하루 1/3 침대, 1/3 지하철, 1/3 빌드
  • 배포 심사 - 느리고 불규칙적, 1일 ~ 4주
  • 앱 업데이트 - 동남아의 느린 네트워크, 자동 업데이트를 꺼둔 유저들도 많다.

Flutter vs React Native

장점단점
Flutter훌륭한 공식 라이브러리 생태계 React Native보다 더 많이 사용됨높은 학습 비용
React NativeCodepush 기능 사용 가능 채용에 용이한 풍부한 개발자 풀빈약한 공식 라이브러리 생태계
  • Code Push (React Native) - 앱 내에 JavaScript 번들을 포함할 수 있고, 해당 번들을 업데이트해서 앱 업데이트 없이 최신 기능을 전달 가능

결론

  • 앱을 완전히 다시 만들기로 하고, 병렬적으로 기존앱은 부분적으로 React Native를 적용
  • Native API가 필요한 기존 앱 기능을 구현해보면서 테스트
  • 비싼 그래픽 연산과 같은 높은 성능이 필요한 작업은 부분적으로 Native View를 띄워 해결

과정

  • Native 코드를 건드려야 하는 작업과 JavaScript로만 완료할 수 있는 태스크 2가지로 분류
  • 기존 앱 사용자의 경험을 해치지 않기 위해 꼼꼼하고 많은 테스트를 수행
  • 메인 로직이 아닌 숨어있는 로직을 코드레벨에서 발견하며 옮김. 광고 마케팅 툴, 푸시, 로그 등
  • 3개월간 200번에 달하는 Code Push를 통한 업데이트가 가능했음

React Native 사용 후기 - iOS 개발자

  • 개발 속도 - 핫 리로딩. Swift로 개발시 3달, 미숙한 TypeScript로도 2주
  • 커리어적인 고민 - 전문성 포기하는건 아닐지? 기술은 이미 6 ~ 7년 지났고 Object C에서 Swift로 넘어갈 때 느꼈던 기분. 역량 확장이라고 생각하고 고민을 하지 않기로 결정

React Native 사용 후기 - 프론트엔드 개발자

  • 저렴한 학습 비용
  • 역할 확장 - 앱의 모든 flow에 관여

팀 관점에서

  • 빠르게 실패, 개선 반복 가능
  • 채용이 어려운 초기 스타트업에 유용할 것