모바일 앱 개발

**모바일 앱 개발**(Mobile app development)은 하나 이상의 모바일 장치용 모바일 앱을 개발하는 행위 또는 프로세스로, 여기에는 개인 정보 단말기(PDA), 기업용 디지털 보조 장치(EDA) 또는 휴대 전화가 포함될 수 있다. 이러한 소프트웨어 애플리케이션은 많은 하드웨어 제약 사항을 고려하여 모바일 장치에서 실행되도록 특별히 설계된다. 일반적인 제약 사항으로는 중앙 처리 장치(CPU) 아키텍처 및 속도, 사용 가능한 랜덤 액세스 메모리(RAM), 제한된 데이터 저장 용량, 그리고 디스플레이(기술, 크기, 차원, 해상도) 및 입력 방법(버튼, 키보드, 스타일러스 유무를 막론한 터치스크린)의 상당한 다양성이 포함된다. 이러한 애플리케이션('앱')은 제조 과정에서 전화기에 사전 설치되거나, 웹 브라우저 내에서 "애플리케이션과 유사한" 경험을 제공하기 위해 서버 측 또는 클라이언트 측 처리(예: 자바스크립트)를 사용하는 웹 애플리케이션으로 제공될 수 있다.

모바일 앱 개발 부문은 유럽에서 상당한 성장을 경험했다. 2017년 진보 정책 연구소(Progressive Policy Institute)의 보고서에 따르면 2017년 1월 기준으로 유럽 연합(EU) 전역의 앱 경제에서 189만 개의 일자리가 있었으며, 이는 전년 대비 15% 증가한 수치이다. 이러한 일자리에는 모바일 앱 개발자와 앱 경제를 지원하는 기타 직위가 포함된다.

## 개요
모바일 장치용 애플리케이션 개발을 용이하게 하고 그 일관성을 위해 다양한 접근 방식이 취해졌다.

제품을 출시하는 대부분의 회사(예: 애플, 아이팟/아이폰/아이패드)는 공식 소프트웨어 개발 키트(SDK)를 제공한다. 또한 어떤 형태의 소프트웨어 테스트 및 품질 보증(QA)을 제공할 수도 있다. SDK 또는 기타 도구를 제공받는 대가로, 예비 개발자는 특권 정보 공유를 제한하는 어떤 형태의 비공개 계약(NDA)에 서명해야 할 수도 있다.

개발 프로세스의 일환으로, 모바일 사용자 인터페이스(UI) 디자인은 모바일 앱 생성에서 필수적인 단계이다. 모바일 UI 디자이너는 제약 사항, 상황, 화면 공간, 입력 방법 및 이동성을 디자인의 개요로 고려한다. 모바일 UI 디자인의 제약 사항에는 사용자의 제한된 주의 집중 시간과 사용자 손을 위한 모바일 장치의 화면 크기와 같은 폼 팩터가 포함된다. 모바일 UI 상황에는 장치가 사용되는 위치나 시간과 같이 사용자 활동에서 오는 신호 단서가 포함되며, 이는 모바일 앱 내 사용자 상호 작용에서 관찰될 수 있다. 이러한 상황 단서는 약속이나 활동을 예약할 때 자동 제안을 제공하거나 사용자를 위한 다양한 서비스 목록을 필터링하는 데 사용될 수 있다.

사용자는 종종 장치와의 상호 작용의 중심에 있으며, 인터페이스는 하드웨어와 소프트웨어의 구성 요소를 모두 포함한다. 사용자 입력은 사용자가 시스템을 조작할 수 있도록 하고, 장치의 출력은 시스템이 사용자의 조작 효과를 나타낼 수 있도록 한다.

전반적으로 모바일 UI 디자인의 목표는 주로 이해하기 쉽고 사용자 친화적인 인터페이스를 만드는 것이다. 기능은 모바일 엔터프라이즈 애플리케이션 플랫폼 또는 통합 개발 환경(IDE)에 의해 지원된다.

모바일 애플리케이션 개발자는 모바일 하드웨어의 치열한 경쟁과 각 플랫폼 내의 변화로 인해 다양한 화면 크기, 하드웨어 사양 및 구성을 가진 광범위한 장치도 고려해야 한다.

오늘날 모바일 앱은 일반적으로 공식 온라인 매장 또는 마켓플레이스(예: 애플: 앱 스토어 – 구글: 구글 플레이)를 통해 배포되며, 개발자가 앱을 제출하여 해당 마켓플레이스에 승인 및 포함되도록 하는 공식적인 프로세스가 있다. 그러나 역사적으로 항상 그랬던 것은 아니다.

모바일 UI 또는 프론트엔드는 엔터프라이즈 시스템에 대한 액세스를 지원하기 위해 모바일 백엔드에 의존한다. 모바일 백엔드는 데이터 라우팅, 보안, 인증, 권한 부여, 오프라인 작업 및 서비스 오케스트레이션을 용이하게 한다. 이 기능은 모바일 앱 서버, 서비스형 모바일 백엔드(MBaaS) 및 서비스 지향 아키텍처(SOA) 인프라를 포함한 미들웨어 구성 요소의 조합으로 지원된다.

## 플랫폼
모바일 앱을 개발, 배포 및 관리하는 데 필요한 소프트웨어 개발 패키지는 개발자가 하나 이상의 대상 플랫폼용 애플리케이션을 작성, 테스트 및 배포할 수 있도록 하는 많은 구성 요소 및 도구로 구성된다.

### 프론트엔드 개발 도구
프론트엔드 개발 도구는 사용자 인터페이스 및 사용자 경험(UI-UX)에 중점을 두며 다음 기능을 제공한다.
* UI 디자인 도구
* 장치 기능에 액세스하기 위한 SDK
* 크로스 플랫폼 호환성/지원

주목할 만한 도구는 다음과 같다.

#### 퍼스트 파티
퍼스트 파티 도구에는 특정 하드웨어 플랫폼(예: 애플, 구글 등)의 설계를 담당하는 회사에서 게시하거나 그를 대신하여 게시하는 공식 SDK와 해당 하드웨어용 모바일 앱 개발 목적으로 공식적으로 지원되는 모든 타사 소프트웨어가 포함된다.

#### 세컨드 파티

#### 서드 파티

### 백엔드 서버
백엔드 도구는 프론트엔드 도구가 끝나는 지점에서 시작하여 중앙에서 관리되고 제어되는 재사용 가능한 서비스 세트를 제공하며 다음 기능을 제공한다.
* 백엔드 시스템과의 통합
* 사용자 인증-권한 부여
* 데이터 서비스
* 재사용 가능한 비즈니스 로직

사용 가능한 도구는 다음과 같다.

### 보안 추가 레이어
점점 더 많은 기업에서 브링 유어 온 디바이스(BYOD)가 일반화됨에 따라, IT 부서는 기존 앱, 전화기 및 플랫폼 구성 요소 위에 계층화되는 임시적, 전술적 솔루션이 필요한 경우가 많다. 기능은 다음과 같다.
* 보안을 위한 앱 래핑
* 데이터 암호화
* 클라이언트 작업
* 보고 및 통계

### 시스템 소프트웨어
모바일 앱 개발을 위한 기능적 플랫폼을 갖추려면 많은 시스템 수준 구성 요소가 필요하다.

개발 플랫폼을 선택하는 기준에는 일반적으로 대상 모바일 플랫폼, 기존 인프라 및 개발 기술이 포함된다. 크로스 플랫폼 개발로 두 개 이상의 플랫폼을 대상으로 할 때는 도구가 사용자 경험에 미치는 영향도 고려하는 것이 중요하다. 모바일 앱에 대한 연구에서 애플리케이션 성능과 사용자 만족도 사이에 강한 상관관계가 있음을 나타내므로 성능도 중요한 기준이다. 성능 및 기타 기준과 함께 기술 가용성 및 프로젝트 요구 사항에 따라 네이티브 및 크로스 플랫폼 환경 간의 개발이 결정될 수 있다. 네이티브 및 크로스 플랫폼 환경 간의 선택을 돕기 위해 일부 지침 및 벤치마크가 게시되었다. 일반적으로 크로스 플랫폼 환경은 여러 플랫폼에서 재사용 가능하며, HTML, CSS 및 자바스크립트를 사용자 인터페이스에 사용하면서 네이티브 컨테이너를 활용한다. 이와 대조적으로 네이티브 환경은 각 환경에 대해 하나의 플랫폼을 대상으로 한다. 예를 들어, 안드로이드 개발은 안드로이드 개발 도구(ADT) 플러그인을 사용하여 이클립스 IDE에서 이루어지며, 애플 iOS 개발은 오브젝티브-C 및 스위프트를 사용하여 엑스코드 IDE에서 이루어진다. 윈도우 및 블랙베리 각각 자체 개발 환경을 가지고 있다.

### 모바일 앱 테스트
모바일 애플리케이션은 먼저 개발 환경 내에서 에뮬레이터를 사용하여 테스트되고 나중에 필드 테스트를 거친다. 에뮬레이터는 개발자가 물리적으로 액세스할 수 없는 휴대폰에서 애플리케이션을 테스트하는 저렴한 방법을 제공한다. 다음은 가장 인기 있는 모바일 운영체제에서 애플리케이션을 테스트하는 데 사용되는 도구의 예이다.
* 구글 안드로이드 에뮬레이터 – 완전하고 복잡한 안드로이드 SDK를 다운로드하고 설치할 필요 없이 독립 실행형 앱으로 윈도우 PC에서 실행되도록 패치된 안드로이드 에뮬레이터. 설치하고 안드로이드 호환 앱을 테스트할 수 있다.
* 공식 안드로이드 SDK 에뮬레이터 – 일반적인 모바일 장치의 모든 하드웨어 및 소프트웨어 기능을 모방하는 모바일 장치 에뮬레이터(통화 기능 제외).
* TestiPhone – 아이폰 웹 애플리케이션을 빠르게 테스트하기 위한 웹 브라우저 기반 시뮬레이터. 이 도구는 인터넷 익스플로러 7, 파이어폭스 2 및 사파리 3을 사용하여 테스트되었으며 작동한다.
* iPhoney – 사파리로 구동되는 화소 정확한 웹 브라우징 환경을 제공한다. 아이폰용 웹 사이트를 개발할 때 사용할 수 있다. 아이폰 시뮬레이터는 아니지만, 아이폰에서 사용할 320x480 (또는 480x320) 웹 사이트를 만들려는 웹 개발자를 위해 설계되었다. iPhoney는 OS X 10.4.7 이상에서만 실행된다.
* 블랙베리 시뮬레이터 – 실제 블랙베리 제품의 기능을 에뮬레이션하고 장치 소프트웨어, 화면, 키보드 및 트랙휠이 애플리케이션과 어떻게 작동하는지 테스트하는 데 사용할 수 있는 다양한 공식 블랙베리 시뮬레이터가 있다.
* 윈도우 UI 자동화 – 마이크로소프트 UI 자동화 기술을 사용하는 애플리케이션을 테스트하려면 윈도우 자동화 API 3.0이 필요하다. 윈도우 7, 윈도우 서버 2008 R2 및 이후 버전의 윈도우에 사전 설치되어 있다. 다른 운영 체제에서는 윈도우 업데이트를 사용하여 설치하거나 마이크로소프트 웹 사이트에서 다운로드할 수 있다.
* MobiOne Developer – 윈도우용 모바일 웹 통합 개발 환경(IDE)으로, 개발자가 아이폰, 블랙베리, 안드로이드 및 팜 프리와 같은 장치에 모바일 웹 애플리케이션을 코딩, 테스트, 디버그, 패키징 및 배포하는 데 도움을 준다. MobiOne Developer는 2014년 말에 공식적으로 서비스 종료가 선언되었다.

도구 포함
* Eggplant Functional – 모든 운영 체제 및 장치에서 모바일 앱을 위한 GUI 기반 자동화 테스트 도구
* Ranorex – 모바일, 웹 및 데스크톱 앱을 위한 테스트 자동화 도구
* Testdroid – 모바일 및 웹 앱 테스트를 위한 실제 모바일 장치 및 테스트 자동화 도구

## 디자인 원칙
2020년 애플리케이션 산업 보고서에 따르면 모바일 앱 사용자 중 46%가 성능 불량으로 인해 앱 사용을 중단하거나 제거했다고 밝혔다. 디자인 전문가는 성공적이고 효과적인 모바일 앱을 만들기 위해 다음 디자인 원칙을 주장한다.

깔끔한 화면 – 상호 작용을 빠르고 간단하게 유지하여 사용자가 여러 기능과 작업에 압도되지 않고 하나의 특정 작업에 집중할 수 있도록 한다. 디자인 전문가는 화면당 하나의 작업을 강력히 주장하며, 깔끔함을 최소화하기 위해 긴 양식을 페이지로 나누고 새로운 작업이나 필드를 점진적으로 공개할 것을 권장한다.

인지 부하 감소 – 앱 사용을 가능한 한 원활하게 만들고 앱을 통해 자연스러운 흐름을 유지한다. 디자인 전문가는 인지 부하를 줄이기 위해 자동 완성, 맞춤법 검사, 예측 문자 지원 및 드롭다운 메뉴를 통합할 것을 제안한다. 또한 사용자가 앱을 일시적으로 떠났다가 다시 들어올 때 앱 상태를 유지하여 사용자가 중단한 부분부터 계속 사용할 수 있도록 권장한다.

간단한 탐색 – 약 11%의 사람들이 복잡한 인터페이스로 인해 앱을 제거했다. 디자인 전문가는 사용자가 자주 사용하고 우선순위가 높은 화면으로 즉시 이동할 수 있도록 앱에 탐색 모음을 눈에 띄게 표시하는 것이 중요하다고 말한다. 그들은 사용자가 메뉴를 열거나 설정을 변경하거나 이전 화면으로 돌아가거나 페이지 내에서 검색하는 것과 같은 작업을 쉽게 수행할 수 있도록 장치 운영 체제에 특정한 인식 가능한 아이콘을 사용할 것을 제안한다. 그들에 따르면 사용자는 앱을 탐색하는 동안 혼란스러워해서는 안 되며, 질서 있고 명확하며 논리적인 탐색 흐름이 앱 내에서 참여와 발견을 유도한다.

알림 – 사용자 중 약 19%가 잦은 푸시 알림으로 인해 앱을 제거했다고 보고되었다. 디자인 전문가에 따르면 알림은 신중한 계획을 통해 보내야 한다. 전문가들은 알림이 사용자의 시간대에 가장 편리한 시간에 보내져야 하며, 메시지는 사용자에게 큰 가치를 가져다줄 수 있도록 개인화되어야 한다고 말한다.

속도 외관 – 약 19%의 사람들이 지연 문제로 인해 앱을 제거한다. 디자인 전문가는 사용자가 콘텐츠를 기다리지 않도록 앱이 빠르고 반응성이 있는지 확인하는 것이 중요하다고 말한다. 그들은 개발자가 콘텐츠를 더 빠르게 제공하거나 진행 중이라는 인식을 주어야 한다고 말한다. 전문가들이 제안하는 몇 가지 접근 방식은 콘텐츠가 회색으로 표시된 앱의 레이아웃을 보여주는 스켈레톤 화면, 진행 표시줄 또는 로딩 스피너, 백그라운드에서 작업을 수행하고 사용자가 요청할 때 콘텐츠를 빠르게 제공하거나, 사용자가 페이지를 로드하는 동안 일부 작업이나 콘텐츠를 제공하는 것이다.

사용성 – 모바일 사용자 중 약 85%가 한 손으로 휴대폰을 사용하므로 디자인 전문가는 최상위 메뉴, 자주 사용하는 제어 요소 및 일반적인 작업 항목이 사용자의 엄지손가락이 닿는 범위 내에 있는 것이 중요하다고 말한다. 그들은 또한 가독성의 중요성을 강조하며, 사용자가 확대하지 않고도 일반적인 읽기 거리에서 읽을 수 있도록 텍스트 크기를 최소 11포인트 글꼴로 권장한다. 앱 화면의 헤더와 제목은 iOS 운영 체제에서는 San Francisco 17pt, 안드로이드 운영 체제에서는 로보토 16sp를 사용하는 것이 권장된다. 전문가들은 또한 텍스트와 배경색 사이에 최소 4.5:1의 명암비가 있어야 한다고 말한다. 디자인 전문가는 개발자가 장애인을 포함한 모든 사용자를 위해 앱을 접근성 있게 만들 것을 강력히 권장하며, 음성 탐색, 스크린 리더 호환성 및 모바일 앱의 사용자 인터페이스 적응성과 같은 기능을 제안한다.

## 특허
새로운 휴대폰 앱에 대한 많은 특허 출원이 계류 중이다. 대부분은 비즈니스 방법, 데이터베이스 관리, 데이터 전송 및 운영자 인터페이스와 같은 기술 분야에 속한다.

## 같이 보기
* 모바일 비즈니스 인텔리전스
* 모바일 컴퓨팅
* MEAP
* 모바일 마케팅
* JQuery Mobile
* HTML5

## 각주


분류:모바일 애플리케이션
분류:모바일 소포트웨어 개발