토스ㅣSLASH 22 개발자 컨퍼런스 내용을 정리한 내용입니다.
미친 생산성을 위한 React Native
토스 글로벌
- 1,100만 유저 보유
- 글로벌 팀 엔지니어 총 5명
- fronted developer 1
- android developer 1
- ios developer 1
- server developer 2
문제
해결 방법
첫번째 방법. 앱의 모든 플로우를 웹으로 만든다면?
- 항상 최신 기능 제공 가능, 하지만 네트워크 환경 의존성
- 동남아는 네트워크가 불안정
두번째 방법. cross platform 프레임워크 사용?
- FLUTTER
- 장점 : 훌륭한 공식 라입러리 생태계, RN보다 많이 사용됨
- 단점 : 높은 학습 비용
- React Native
- 장점 : Codepush 기능 사용 가능, 채용에 용이한 풍부한 개발자 풀
- 단점 : 빈약한 공식 라이브러리 생태계
React Native 도입 과정
옵션 1. 기존 앱에 부분적으로 적용하기
-
기존 프로젝트에 적용 가능
-
1 React Native Bundle : N 진입점
-
React Native와 Native 간의 통신
-
Bundle을 다운로드 받아 사용
점진적 개발 가능, 기존 모듈 활용 가능, Migration Fault 이슈로부터 자유로움
옵션 2. 완전히 새롭게 다시 작성하기
- 시간이 더 오래 걸린다.
- cross platform 이점
완전히 새롭게 다시 작성하기 선택!
- 부담스러운 선택일 수도 있었지만, 조금 더 멀리 보면 훨씬 더 많은 비즈니스 로직을 플랫폼 간 공유할 수 있는 완전히 작성해나가는 방식이 추후 더 좋을 것 같다는 판단을 함.
RN 적용 후 느낀 장점
- code push 덕분에 유저들이 앱을 업데이트할 필요가 없어졌다.
- RN 덕분에 플랫폼별로(안드로이드/ios) 구현이 다를 경우 발생하는 팀 차원의 비효율성이 많이 개선되었다.
ios 개발자로서 RN 사용 후기
- 빨라진 개발 속도 (how reloading)
- 커리어 고민 (기술의 유망성, 전문성의 포기, 역량의 확장)
Front 개발자로서 RN 사용 후기
- 저렴한 학습 비용
- 역할의 확장
- 더 높은 복잡성
팀 RN 사용 후기
- 빠르게 실패와 개선 과정 반복 가능
- 채용이 어려운 초기 스타트업에 좋다.
https://www.youtube.com/user/TOSSservice