본문 바로가기

MY개발생각

[개발생각] Webview앱 vs Native앱

앱을 만들때, 웹뷰로 만들지, 네이티브로 만들지는 한번쯤 고민해 보는것 같다. 참고로, 개인프로젝트면 웹뷰가 편하긴 한것같다..ㅋ

(Dart, Swift등 또 배우기, 귀찮아...)

 

웹뷰앱과 네이티브앱 장단점을 생각했을때,

만약 최고의 앱을 만들 목표라면, 너의 선택은? 이라고 누군가 묻는다면,

나는 '네이티브앱'을 선택할듯하다.

외국어도 네이티브가 제일 외국어 잘하지... 앱도 네이티브가 성능, 기능면에서 더 뛰어난건 반론을 할수가 없지 않을까? ㅋ

 

그렇다면, 네이티브앱이 가장 큰 단점이라고 생각하는것은? 이라고 묻는다면, 배포/장애대응등이지 않을까..

하지만, 이걸 단점이라고 생각하기보다는, 장점을 얻기위한 트레이드오프라고 보고,

배포/장애에 대한 대응을 잘 할수있도록,

프로세스를 만들고, 실수를 줄이도록 배포과정을 정비하는데 더 신경을 쓴다면,

단점이라고 보기도 어렵지않을까 한다..

 

한 예로 '카xx 뱅크' 초기에 앱을 어떻게 만들지를 정말 많이 논의했던것 같다.

그때는 클라이언트 개발자, 서버 개발자, 기획자 모두 모여서, 브레인스토밍을 하며,

어떻게 앱을 만들지를 이야기를 정말 많이 나눴다.(이 논의만 한달했나??)

참, 희귀한 의견도 많이 나왔다 ㅋ 브레인스토밍이니 괜찮지!!

 

그때 나온 의견들 몇가지.

1) 유니티로 만들자.

  -  비주얼,이펙트를 끝내주게 만들자, 크로스플랫폼도 지원되니 일석이조다!



2) 네이티브로 만들자 (안드로이드 : 코틀린, 아이폰 : 스위프트)

  - 네이티브앱이 정석이고, 가장 성능상으로도 뛰어나다. 가장 중요한것 'UX의 반응성'이 가장 빠르다.



3) 웹뷰로 만들자 

  - 배포/장애대응이 빠르다 (웹서버 배포만 하면 해결된다.)



4) 언리얼.... (이건..굳이 언급을..ㅋ)

 

여기서 사실 네이티브앱과 웹뷰 의견이 가장 유력했다. 

 

결론은 2번 네이티브로 만들기로 했다.

 

이유는 간단하다.

사용자의 UX가 모든 이유의 최우선이 되야한다는 기준이 있었기 때문이다.

사용자에게 좋은 경험을 준다면, 그 이외의 다른 힘든 부분은 넘어야하고 해결해야하는 과제일 뿐이라는 생각에 결국은 모두가 동의했다.

(때마침, 케이뱅크가 웹뷰앱으로 오픈했는데...참..별로긴했다)

 

네이티브앱을 만들면, 클라이언트 개발자는 좀더 부담감을 갖게 되는게 사실 맞다.

한번 배포가 되고, 개발이 잘못되면, 배포를 다시해야하고, 그 배포는 앱심사라는 단계를 거쳐야하기때문이다.

(앱 심사 참 까다롭지...)

그리고 앱심사시간만큼 배포/적용되는 시간도 더 걸리긴한다. 

 

하지만, 우리는 먼저 이런 버그가 생기지 않게, 줄일수있는 방법을 먼저 생각을 해야하는것이 아닐까 한다.

적어도 소프트엔지니어의 마인드를 가지고 있다면 말이다.

 

우리는 잘못된 개발/버그를 줄이는 방법에 개발 초점을 맞춰야하고, 그것을 없애거나, 줄이기 위한 방법을 생각하는데 더 집중해야한다.

골을 넣기위해 최선을 다해야 하지, 골을 먹고서 어떻게 할지를 먼저 생각을 하지않는것과 같다.

 

하지만, 네이티브앱을 테스트하기란 상당히 어렵긴하다.

디바이스 모델별, OS버전별, 종류별 수십종을 QA가 테스트를 진행한다.

이렇게 테스트를 진행하기에, 버그를 줄일수있었던 것이다.

이런 여력이 정말 없다면, 그때는 웹뷰앱도 고려를 해야하지 않을까? 생각이 든다.

 

웹뷰앱도 성능을 올리기 위한 여러 테크닉이 있다.

만약 웹뷰앱으로 만들기로 정했다면, 이런 테크닉들을 정말 잘 활용하여 잘 만들어야 하겠다.