내가 새로 맡게된 프로젝트는 .. 앱이다..
스펙을 무엇으로 가져갈지 고민을 되게 많이했다.
오늘은 알아본 내용에 대해 정리해보려고 한다.
이 내용은 회사 내 기획자, 디자이너, 대표를 모시고 세미나를 진행했다!
*요약 : 성능이 가장 좋지만 러닝커브가 높다.
iOS:Swift / Objective c
Android :Java / Kotlin
언어를 위와같이 새로 배워야했기에 스타트업에서 mvp를 빠르게 만드는데 적합하지 않다고 판단했다! 그리고 나 혼자 만들어야돼서 불가능,,은 아니지만 당장 만드는 앱에 많은 기능이 필요하지 않기도 해서 패스!
하지만 나중에 서비스 커지고 살 붙고 자금적 여유가 생기면 바로 네이티브로 전환할 예정이다!
*요약: 기기 자체 기능(카메라, 생체 인증 등) 구현이 어렵지만 가장 간편함
웹 앱은 말 그대로 웹 앱이다,, 반응형 웹을 앱처럼 쓰는것! 여기서 또 모바일 웹 앱, 그냥 웹 앱으로 나눌 수 있는데 UI/UX측면에서 조금 더 앱처럼 만들것을 모바일 웹 앱이라고 한다! 다운로드 없이 어디서든 다운없이 볼 수 있다는 것이 가장 큰 장점이고, 요즘 유행인 PWA로 쓸 수 도 있다. 웹의 장점을 살린 대신 브라우저 의존성이 높은것과, 기기에 접근해야하는 기능을 써야할때 기능을 다 쓰지 못할 수 있다는 점이 있다! 대신 모든 기기에서 거의 같은 화면을 볼 수 있음.. 우리가 지정해준 브라우저로 보여지기 때문에! (내가 민감한 부분이라 큰 메리트로 느껴짐)
*요약: 네이티브 언어 + 웹 뷰
웹과 앱이 합쳐진 것이다! 이 하이브리드 웹 앱을 나눠놓은 기준이 말하는 사람마다 다르던데, 내가 정리한 바로는 '네이티브'언어에 웹 뷰를 혼합한 방식이다. 요즘 거의 모든 앱이 웹 뷰를 필수적으로 가져가고 있다. 조금 더 유저에게 매끄럽고 부드러운 사용성을 제공해줄 수 있고, 유지보수에 조금 더 편리하고, 운영체제마다 업데이트를 해주지 않아도 되며 (일부), 브라우저를 박아놓는 것이기 때문에 사용자가 보는 화면이 거의 동일해진다! 가장 이상적인 방식이라 생각하는데, 도대체 어느 정도의 비중으로 가져가는게 좋을까?에 대한 의문점이 있다.
요약: 한 가지 언어로 두 가지 운영체제에 적용할 수 있는 간이 방식
사실 크로스 플랫폼은 앱 제작 방식의 한 종류라고 볼 순 없겠지만, 같이 비교해보면 좋을 것 같아서 4번으로 넣었다.
크로스 플랫폼(영어: cross-platform) 또는 멀티 플랫폼(영어: multi-platform)은 컴퓨터 프로그램, 운영 체제, 컴퓨터 언어, 프로그래밍 언어, 컴퓨터 소프트웨어 등이 여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것을 뜻하는 용어이다.
즉, 네이티브가 아닌 코드를 이용해 IOS, Android가 각각 이해할 수 있는 코드로 변환된다!
React Native, Flutter가 이에 해당한다!
리액트 네이티브는 자바스크립ㅌ, 리액트에 능한 개발자가 다루기 쉽다는 장점이 있고, 플러터는 다트라는 언어를 새로 배워야하지만 여러 UI Component가 잘 만들어져 있다는 장점이 있다.
하지만 이들로 제작했을때 성능적인 퍼포먼스가 떨어지기도 하고, 운영체제가 업데이트 되었을 때 유지보수가 굉 장 히 힘들다는 단점이 있다. 빠르게 개발하고 싶을때 사용했다가, 나중엔 거의 네이티브로 전향하는 방향으로 가는 것 같다!!
시간이 촉박하고 MVP를 빠르게 출시해야하는 상황 속에서 나는 원래 프론트 개발자였고 자바스크립트, 리액트로 작업을 했었기에 리액트 네이티브와 부분적인 웹 뷰를 가져가려고 한다! 이후에 여건이 되면 빠르게 네이티브로 전향하려고 한다.
수정, 질문 언제든 환영입니당!!