기술면접 03

DaY·2021년 4월 30일
1

기술면접

목록 보기
3/6
post-thumbnail

Reference 01
Reference 02

Native App

Android 또는 iOS 같은 어떤 구체적인 플랫폼만을 위해 만들어진 응용 프로그램을 네이티브 앱(Native App)이라고 한다.
Android 모바일 앱 개발의 경우는 Kotlin 또는 Java로 네이티브 앱을 만들 수 있고 iOS의 경우 Swift 또는 Objective C로 만들 수 있다.
앱의 실행 속도가 빠르고 유용한 API의 지원도 받을 수 있는 장점이 있는 반면 다른 운영체제에서도 실행되기 위해서는 시간도 노력도 돈도 많이 드는 단점이 있다.

장점

  • 사용자에게 가장 빠르고 안정적이며 반응이 빠른 환경을 제공
  • 다양한 네이티브 기능을 쉽게 활용 - 카메라, 마이크(microphone), GPS 및 스와이프 제스처(swipe gesture)

단점

  • 둘 이상의 코드 베이스 - 네이티브 앱은 Android와 IOS의 호환이 되지 않기 때문에 별도로 제작
  • 더 많은 비용이 들고 빌드 시 시간이 더 오래 걸림

3D 게임이나 애니메이션을 제작할 경우
어떤 장치의 특별한 기능을 사용하고 싶을 경우
앱 기능이 많고 상당히 복잡한데 그 성능이 정확히 나오게 하고 싶을 경우

Cross-platform App

네이티브 코드가 아닌 언어로 코딩을 한 후, 나중에 ios/android가 이해할 수 있는 코드로 변환

크로스 플랫폼 프레임 워크(Cross-platform frameworks)

  • Google이 만든 Flutter - Dart -> C, C++로 컴파일
  • Facebook이 만든 React Native

장점

  • 코드를 한 번만 작성하면 2개의 플랫폼에서 사용 가능
  • 시간 절약
  • 다양한 배경의 개발자 유입 (백엔드 개발자, Java 개발자)
  • 다양한 형태의 라이브러리, 튜토리얼, 커뮤니티 발전

단점

  • 네이티브가 아님
  • 퍼포먼스 이슈 발생 (속도 저하)
  • 지원하는 플러그인 부족
  • 정보 부족

Hybrid App

하이브리드 앱은 네이티브 앱과 웹 앱의 기능을 결합한 것으로 JavaScript, HTML 및 CSS와 같이 잘 알려진 언어와 프레임 워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 하이브리드 앱을 빠르게 만들 수 있다.
비용도 시간도 덜 들고 유지 보수도 쉽고 기본 API 기능도 사용 가능하나 오프라인(offline)으로는 작동하지 않고 똑같은 코드를 베이스로 하기 때문에 안드로이드나 아이폰 등 각 디바이스의 특정 기능을 사용하는 데 문제가 발생할 수도 있다.

장점

  • 하나의 코드 베이스 - 하나의 앱을 빌드하고 약간 조정하여 두 플랫폼에서 모두 작동, 그러므로 시간과 돈을 절약
  • 하이브리드 앱 개발자는 종종 네이티브 애플리케이션 개발자보다 저렴
  • 손쉬운 확장 - 네이티브 기능 액세스 가능

단점

  • 성능(Performance) 문제
  • 크로스 플랫폼 개발과 UX의 어려움 - 하이브리드 플랫폼이 각 네이티브 플랫폼에서 적절하게 실행되도록 하려면 일반적으로 상당한 노력이 필요
  • 경우에 따라 총비용이 네이티브 앱의 비용과 맞먹을 수 있음

다양한 플랫폼(모바일이나 웹)을 통한 사용자층이 넓을 경우
내용을 기본으로 한 간단한 프로젝트인 경우
애니메이션도 없고 복잡한 기능도 필요 없을 경우
시간은 촉박한데 여러 디바이스에서 실행돼야 하는 앱을 만들어야 할 경우
프로젝트 아이디어가 있는 경우 가장 간단하게 테스트해보고 싶을 경우

PWA (Progressive Web App)

사용자들에게 네이티브 앱의 느낌을 주면서도 웹 브라우저에서 바탕화면에 바로가기를 추가하여 특별한 다운로드와 인스톨 과정 없이 기본 앱처럼 사용할 수 있다는 것이 특징
오프라인에서도 사용할 수도 있고 알림 메시지도 받을 수 있고 iOS보다 안드로이드가 훨씬 용이하긴 하지만 디바이스들의 하드웨어적인 기능(카메라나 GPS 같은)을 사용할 수도 있다.

PWA는 각 플랫폼에 최적화된 사용자 경험을 기반으로 하며, PWA만을 위한 언어나 프레임워크 또는 PWA만을 위한 전문 개발자도 필요가 없다.
리액트(React)나 앵귤러(Angular)만 있으면 만들 수 있다.

장점

  • 서비스 워커(Service Worker)를 사용하여 오프라인이나 느린 네트워크에서도 작동
  • 서비스 워커 업데이트 덕분에 항상 최신의 상태로 유지
  • HTTPS를 통해 제공되므로 안전성 확보
  • 다양한 플랫폼에서 실행 가능
  • 네이티브 앱보다 훨씬 저렴하고 빠르게 개발
  • 다양한 화면 크기 수용 - 훌륭한 반응형(데스크톱, 모바일, 태블릿 등 모든 폼 팩터에 맞음)
  • 네이티브 앱과 비슷하기 때문에 사용하는데 어려움이 없음
  • 참을성 있게 설치해야 할 인스톨 단계가 없음
  • 검색 엔진에서 검색이 가능

단점

  • 오래된 브라우저들은 PWA를 지원하지 않음
  • iOS에서는 성능이 약하고 애플의 장치에 대한 지원이 적음
  • 앱 스토어에서는 사용할 수 없으므로 마케팅 효과 떨어짐
  • 배터리 전력 소모가 큼

기본 앱의 기능이 있는 다중 플랫폼 앱이 필요할 경우
많은 사용자들이 다양한 채널을 통해 동시 접속할 때도 동일한 서비스를 제공하고자 할 경우
강력한 전자 상거래 서비스를 제공할 경우

0개의 댓글