본문 바로가기
Web/React & React Native

[앱만들기] 웹개발자가 가장 쉽게 어플만들기① (언어 종류 및 선택)

by tyrannojung 2021. 7. 6.
반응형

 저는 자바 스프링을 주력으로 하는 웹팀에서 웹 개발하고 있는 개발자입니다. 이번에 저희 팀에서는 '구현된 웹''앱'으로 만드는 작업을 해야만 했습니다. 모든 팀원이 앱을 개발해 본적도, 구동하는 방식도 모르는 상태였습니다. 그래서 앱에 대한 배경지식이 전무한 상태로 자료조사를 진행했으며, 가장 쉬운 방법으로 실제 구현까지 진행해봤습니다. 목표는 이미 구현된 웹사이트(웹앱)를 앱 배포에 필요한 패키징 처리만 안드로이드, 아이폰으로 하는 (깡통) 앱을 만드는 것입니다.

 

 

앱 종류 (웹앱 vs 네이티브 앱 vs 하이브리드 앱 vs 크로스 플랫폼)

 

 

웹앱

 

웹앱은 모바일 화면에 맞게 개발된 웹페이지입니다. 개발단계에서부터 모바일을 고려해서 홈페이지를 제작하였기 때문에 다양한 모바일 기기에서 주소를 입력하더라도 그에 맞는 화면이 알맞게 보입니다. (요즘은 부트스트랩을 통해 쉽게 웹앱을 구현할 수 있습니다.) 하지만 웹앱은 순수 웹페이지기 때문에 휴대폰의 기능을 사용할 수 없으며, 스토어를 통한 앱 설치가 불가능합니다. 즉 웹앱은 웹이기 때문에 브라우저에서 주소를 입력해야만 접속할 수 있습니다.

 

 

 

네이티브 앱

 

네이티브 앱은 모바일 기기에 최적화된 언어로 개발된 어플입니다. 보편적으로 '아이폰은 xcode/swift로 개발'하며 '안드로이드는 java(or kotlin)/android studio'로 개발합니다. 각자의 휴대폰 환경에 맞는 언어로 개발되므로 높은 사양의 그래픽과 성능의 퍼포먼스를 극대화할 수 있으며 핸드폰의 기능(카메라 기능, 진동의 세기 등)을 핸들링할 수 있습니다. 하지만 아이폰과 안드로이드 모두 앱을 출시하고 싶다면 서로 비슷하지도 않은 두 개의 언어를 배워야 하므로 학습량이 많아 진입장벽이 높습니다. 스타트업에서는 시간과 인력에 따른 비용 소모가 크므로 신중하게 결정해야 하죠.

 

 

 

하이브리드 앱

 

HTML, CSS, JS만으로도 사이트를 구축할 수 있는, 웹 개발자가 어플을 만들기 위해 처음으로 듣는 용어는 단연 하이브리드 앱일 겁니다. 하이브리드 앱은 모바일 UI를 제작한 후(웹앱) 아이폰/안드로이드 웹뷰로 패키징하여 어플을 만드는 방식으로 구현을 위해 사용하는 개발도구로는 폰갭, 코르도바, 아이오닉 등이 있습니다. 앱을 만들기 위해 네이티브 앱의 지식이 전혀 필요 없다는 장점이 있습니다. 하지만 자바스크립트의 한계로 인해 핸드폰만의 강력한 기능 구현에는 제한이 있으며 시대가 많이 지난 프레임워크들이라 사람들의 관심도가 떨어져 커뮤니티가 활성화되어있지 않아 최신 정보를 얻기가 쉽지 않습니다. 그래서 요즘 개발자들은 하이브리드 앱을 개발하지 말고, 크로스 플랫폼을 권장하고 있습니다.

(출처 :https://okky.kr/article/626989)

 

 

 

 

 

크로스 플랫폼

 

크로스 플랫폼은 네이티브 코드가 아닌 걸로 코딩하더라도 나중에 IOS Android가 이해할 수 있는 코드로 변환되는 것으로 대표적인 언어로는 google flutter, react react-native 등이 있습니다. 

코드를 한 번 작성하면 2개의 플랫폼(IOS, Android)에서 확인할 수 있어 시간 절약에 도움을 주며 개발도구 특성상 다양한 배경의 개발자(백엔드 개발자 JAVA 개발자 앱 개발자 등)를 끌어 모을 수 있어 다양한 형태의 라이브러리, 튜토리얼, 커뮤니티가 발전되고 있습니다. 즉 사람들의 관심이 높아 최신 정보를 얻기가 쉽습니다. 실제로 크로스 플랫폼으로 개발된 어플 사례로는 페이스북, 인스타그램, 디스코드, Skype 등이 있습니다. 하지만 여전히 완전한 네이티브가 아니라는 점에서 퍼포먼스에 대한 이슈가 생길 수밖에 없습니다.

 

 

결론

 

 저희 회사는 스타트업의 특성을 가지고 있어 대기업처럼 많은 인력의 충원을 하지도 못할뿐더러 단기간에 큰 퍼포먼스를 내야 합니다. 해서 저희는 '크로스 플랫폼'으로 개발을 진행해 보았습니다. 크로스 플랫폼은 이미 큰 기업에서도 활용하고 있으며 이는 '검증됐다'라고도 보여졌습니다. 

 

 에어비엔비는 크로스 플랫폼으로 사용하다가 결국 네이티브로 전환했다고 합니다. 하지만 저는 기술 부채라는 말이 있듯이 기술적으로 해결되어야 할 문제들을 일단 뒤로 미루고, 비즈니스를 중점적으로 생각하는 것이 좋아 보이며, 생산성을 높이는 것을 우선적으로 바라보았습니다.

 

 궁굼한점 댓글로 부탁드리며 아직 배움이 부족해 잘못된점 또한 댓글로 남겨주시면 감사하겠습니다!

 

 

참고영상자료

 

노마드코더 - 네이티브 앱 vs 크로스 팰랫폼 앱 vs 하이브리드 앱

반응형

댓글