ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 나는 모바일 개발자입니다. Native, Hybrid개발자 무엇이 좋을까?
    IT 2019. 9. 18. 14:00

     

    대학교 연구실에서 우연히 삼성과의 프로젝트 과제로 인해 안드로이드를 접하게 되었다.

    그 당시 java로 개발 중이던 프로젝트가 있었고, java를 사용하는 안드로이드를 자연스럽게 접하게 되었다.

     

    그렇게 시작되며 회사도 입사했고, 회사에서 개발일(android, 서버, mfc 등..)을 하며 세상이 변화하는 모습을 지켜보았다.

     

    이제는 모바일에서 동작을 시키려는 움직임들이 여럿 포착되었다. 그래서 앞으로 모바일 개발자로 살기 위한 다짐을 하게 되었다.

    그렇게 공부를 하며 Android, Swfit, Spring을 배우며 우여곡절끝에 스타트업에서 하나의 앱을 상용화까지 성공을 시켰다.

     

    그래서 난 네이티브개발자로 자리를 잡고 있다.

     

    두서가 너무 길었다.

    네이티브냐? 하이브리드냐?의 편 가르기를 하고 싶은 것이 아닌 네이티브 개발자의 개인 의견임을 밝힙니다.

     

    먼저 장단점을 알아보자.

    * 네이티브(Android, Swfit)

    1. 장점

    - 해당 플렛폼에 적합한 코드로 다양한 화면과 기능을 만들 수 있다.

    - 디바이스 컨트롤(GPS, 센서, 물리버튼등등)에 용이하다.

    - 타 앱들과의 커뮤니케이션이 가능하다. (예 - 공유하기 기능, SNS 로그인 기능)

    (SNS 로그인은 webapp경우 앱 연동이 아닌 웹에서 재 로그인 형태의 구조를 띄어 아이디와 로그인을 해야 하는 단계가 추가되어 불편함을 가진다)

    2. 단점

    - 각 플렛폼별 개발(기능 추가, 수정)에 두배 가량의 시간과 비용이 소모된다.

    - 각 플렛폼별 제한사항을 고려해야 한다.

    - 플랫폼별 관리가 필요하다.

     

    * WebApp

    1. 장점

    - 시간과 비용이 네이티브에 비해 적다.

    - 별도의 플랫폼을 구별하지 않는다.

    - 유지관리가 편하다.

    - 웹 환경에 맞는 기능들을 사용할 수 있다.

    - 모바일용 링크를 만들어 별도의 웹페이지를 만들 필요 없다.

    2. 단점

    - 각 디바이스별 컨트롤이 불편하다.

    - 타 앱들과의 커뮤니케이션이 어렵다.

    - 위 단점 두 개를 해결하기 위해 불가피하게 네이티브를 확인해야 할 수도 있다.

    - 기능과 데이터가 많을 경우 성능 저하는 어쩔 수 없다.

     

    * 크로스플랫폼 - Flutter, Xamarin(하나의 언어로 개발하여 Android, iOS별 두 개의 플랫폼으로 변환.) - 여기는 조금 더 공부해보아야겠다.

    1. 장점

    - 시간과 비용이 네이티브에 비해 적다.

    - 유지관리가 편하다.

    2. 단점

    - 각 디바이스별 변환 과정에서 제한되는 기능이 발생한다.

    - 성능 저하가 발생할 수 있다.

    - ...

     

    * 결론

    비용과 시간 절약을 위해선 하이브리드를 선택해도 된다.

    하지만 프로젝트가 점점 커지고 사업의 확장성이 불가피하다면 네이티브가 더 어울릴 수 있다. (성능 차이)

    (디바이스 스펙과 하이브리드의 발전을 통해  하이브리드와 네이티브의 성능 차이는 줄어들 수 있지만 여전히 차이는 보인다.)

    디바이스와의 컨트롤과 타 앱들과의 커뮤니케이션이 필요한 앱은 네이티브가 더 어울릴 수 있다.

    (하이브리드를 선택해도 되지만, 결국 디바이스와의 통신, 타 앱들과의 통신을 위해 네이티브의 지식이 혹은 인력이 필요할 것이다.)

     

     

     

    댓글

Designed by Tistory.