5P by xguru 2019-08-15 | favorite | 댓글 4개

Dropbox 는 2013년 시작할때 양플랫폼간에 공유하기 위해 C++을 사용.
그때는 팀이 작았고, 빠르게 성장하는 모바일 로드맵을 지원하기 위해서 였음.
현재는 Swift 와 Kotlin 을 이용하는것으로 바꿨고, 이것은 코드 공유를 위해 드는 아래와 같은 숨겨진 비용 때문임 ( 사실 별로 숨겨지지도 않음 )

- 커스텀 프레임워크와 라이브러리에 따른 오버헤드
- 커스텀 개발 환경의 오버헤드
- 플랫폼간의 차이점을 처리하는데 따른 오버헤드
- 개발자를 교육하고 채용하고 유지하는데 드는 오버헤드

결론적으로 한개의 코드로 쓰는건 좋아보이지만, 오버헤드가 크다는거
이 글의 마지막 패러그래프는 "Android / iOS 개발자 뽑아요!" 인게 중요

조직에서 감당할 수 있는 오버헤드냐 아닐까요
뭘 선택도 감당할 수 있다면 가장 잘 할수 있는것에 집중하는 게 맞을 것 같아요
어차피 플랫폼마다 다른건 어쩔수 없는거 같아요. 하이브리드로 만들어도 차이점이 사라지지는 않더군요

크로스플랫폼이라는 또 하나의 플랫폼일 뿐.
그것도 더 복잡하고 어설픈..

요즘에 React Native는 완성도가 상당히 높던데요..
물론 Dropbox같이 Device 의존적인 앱으로 가면 기존 Hybrid 앱의 고통이 여전하겠지만요..

글이 긴데, 사실 Dropbox 는 특이하게 C++ 을 써서 그런거고
작은 조직에서는 한개의 코드로 멀티 플랫폼을 지원하는거가 솔직히 초반에 땡기는게 사실.

10년전에는 HTML5과 Phonegap 을 이용한 Hybrid 개발이 그랬고,
요즘은 React Native 와 Flutter 같은 것이 나와서 한번에 여러 플랫폼 지원이 가능하다는걸로 모두를 유혹하고 있음

내 생각은, 작은 조직에서는 위와 같은 방식으로 코드쉐어 하는게 장점이 분명히 있음.
다만 프로덕트가 성장함에 따라 이건 다시 기술부채가 되어감.
사용자가 늘고, 조직이 크고, 개발자가 더 늘어나면 Web/iOS/Android 모두 그에 맞는 기술로 발전하는게 최종 모습이 되는 것이라고 생각함.

https://news.hada.io/topic?id=309 에 있는 좋은 기술 부채에 대한 글에서 처럼
의도를 가지고 기술 부채를 만드는게 중요. 이자가 불어나기 전에 빚을 갚읍시다.