DT(Digital Transformation)라는 메가급 파도가 전산업에 걸쳐 변화를 요구하는 시대입니다. 20세기는 대표적인 하드웨어를 중심으로 콘텐츠와 소프트웨어가 공급되었는데요. 2007년 아이폰 등장 이후 지금은 그 중심에 모바일, 즉 스마트폰이 있습니다. 이처럼 스마트폰을 스마트폰이게 하는 핵심은 무엇일까요?
[디바이스와 연관 콘텐츠 네트워크]
거의 대부분 누구랄 것도 없이, 단연코 앱으로 불리는 모바일 어플리케이션(이하 Mobile App)이 핵심인데요. 오늘은 스마트폰의 핵심인 어플리케이션(이하 App) 제작 프레임웍에 대해 알아보는 시간을 가지려 합니다.
앱이란? 스마트폰에서 구동가능한 프로그램 규격에 맞춰 제작된 모바일 응용프로그램입니다. 그리고 제장 방식에 따라 크게 3가지로 구분이 됩니다.
1. 앱의 제작방식을 알아볼까요?
1) 네이티브 앱 (Native Application)
개요 - 스마트폰 각 운영체제별로 개발하는 방식의 앱 - 안드로이드 앱은 Java 혹은 Kotlin으로 개발 - iOS 앱은 Swift 혹은 Objective-C로 개발
장점 - 운영체제가 허용하는 모든 자원과 기능을 직접 활용 가능 - 안드로이드나 iOS 버전이 업데이트 될 때마다 최신 기능을 바로 앱에 탑재 가능 - 홈화면에 아이콘을 추가하여 사용 가능
단점 - 각 운영체제별로 만들기 떄문에 특정 서비스 개발 및 유지보수에 있어 인력, 시간, 비용 소모가 큼 - 배포도 마켓별로 검수 통과 되어야 가능함. 검수 시 며칠씩 소요될 수도 있으며 통과가 안될 수도 있음
2) 모바일 웹 앱(Web Application)
개요 - 스마트폰 사용자를 고려하여 개발한 웹사이트를 의미 - 스마트폰 브라우저로 접속할 때와 PC 브라우저로 접속할 때를 비교하면 레이아웃이 다름 - 반응형 - 적응형
장점 - 개발 및 유지보수가 간편함 - 마켓별 검수 검수 필요 없음
단점 - 스마트폰의 각종 브라우저에서 공통으로 제공하는 기능까지만 가능 - 스마트폰의 자원 및 기능 활용 불가능하여 고성능 앱이나 그래픽 툴 등의 앱을 개발할 수 없음 - 홈 화면에 아이콘을 추가하거나 주소창 없이 사용하는 것은 불가능
3) 하이브리드 앱 (Hybrid Application)
개요 - 네이티브 앱 형태로 만들되 그 안에서 웹사이트를 띄울 수 있는 브라우저 창을 두는 앱 - 안드로이드나 iOS 전용으로 스토어에 올릴 수 있는 네이티브 앱을 만드는데, 웹사이트를 보여줄 수 있는 창을 삽입하는 것으로 이 창을 웹뷰(Webview)라고 부름 - 웹사이트의 형태를 만들어두고 웹뷰 안에서 활용할 수 있게 한 후 웹사이트로서 구현할 수 없는 기능을 네이티브 수준으로 구현
장점 - 네이티브 수준의 구현부를 업데이트할 때만 마켓 검수가 필요하고 웹뷰에서 나타나는 컨텐츠는 웹사이트만 수정하면 되기 때문에 훨씬 더 유연하게 개발과 유지보수가 가능함
2. 모바일 앱의 개발업무 진행 절차
①응용프로그램기획
응용프로그램 개발에 들어갈 아이디어를 기획 및 정리하고, 이를 요구사항 정의서로 문서화합니다.
요구사항 정의서에 들어가는 내용은 가급적 명확히 정리하여야 하고 정의서 내용 자체가 애매할 경우 개발 시 투입자원 추가 및 일정 지연으로 비용이 증가할 수 있습니다.
응용프로그램 개발 전에 구체적으로 결정해야 할 것은 다음과 같습니다. - 화면구성 : 화면 레이아웃 및 페이지 디자인 - 화면전환 : 시나리오라고도 하며, 버튼이나 화면 터치 시, 전개되는 다음 화면을 정의 - 기능 : 화면이나 버튼 등을 터치할 때 반응 및 동작 정의
②프로그램개발
계획을 정리한 요구사항 정의서 등의 구체적인 사양들을 스토리보드, 와이어 프레임, 프로토타입 툴 등에 기초하여 실제 응용프로그램을 개발합니다
iOS 앱과 Android 앱의 개발, 이용 환경, 개발 언어, 동작 플랫폼이 다르기 때문에 각각의 OS에서 응용 프로그램 개발에 필요한 환경을 구성하여 진행합니다.
③프로그램및설치테스트
애플리케이션 개발이 완료되면, 시뮬레이터와 에뮬레이터를 이용하여 테스트하고, 실제 모바일 단말기를 이용하여 응용 프로그램을 테스트합니다.
테스트로는 표출 테스트, 동작 테스트, 단위 테스트 등이 있으며, 완벽하게 테스트를 수행하여 출시 후 버그 등의 시스템 문제를 방지하도록 합니다.
④모바일앱공개
응용프로그램 테스트가 완료되면 앱을 App Store에서 공개합니다.
IOS 앱은 Apple사 심사 후 Apple Store를 통해 공개됩니다. (약 3~7일 소요)
Android 앱은 공개요청 신청 후 바로 Google Play Store를 통해 공개됩니다. (약 2~3시간 이내)
3. 모바일 앱의 개발업무 진행 TIP
1) 모바일 앱제작 요구사항 확인 및 구체화
앱 제작과 개발에 앞서 앱을 개발하기위한 작업 요구사항 정의 및 문서(RFP)가 필요합니다. 이 문서를 바탕으로 화면설계 및 기능 시각화를 위해 문서작성 및 설계작업이 진행됩니다. 기존에는 파워포인트를 이용하여 작성을 했지만 요즈음은 문서관리에 소요되는 오버헤드 타임을 최소화 하기 위해 다양한 툴들을 활용하고 있으며, 아래는 대표적인 적용 사례입니다. 현재 제공되는 대표적인 프로토타입 작성 툴로는 HTML/CSS, AXURE, INVISION, Flinto, FRAMER, UXPin, 네이버 프로토나우, 카카오 오븐 등이 있습니다.
프로젝트를 수월하게 해주는 툴 예) 카카오 오븐, Gloo
2) 앱 개발 후 등록 방법
● IOS 앱
iOS 앱을 개발하고 Apple Store에 등록 및 판매하기 위하여 Apple에 개발자 계정을 등록한 후 진행해야 합니다. 이때, 약 10만원가량의 등록 비용이 소요됩니다.
Apple 계정이 등록되면, 개인인증서를 앱에 서명하기 위하여 개발자 인증서를 Apple에 등록해야 합니다. 이때 직접 인증서를 수동으로 등록하지 않아도, Mac 개발 툴인 Xcode에서 Automanaging Option을 사용할 경우 자동으로 Certificate와 Provisioning profile이 생성되어 등록됩니다. 개인 혼자 앱을 개발하는 경우 Automanaging을 사용해도 문제가 없으나, 하나의 개발자 인증서로 여러 명이 개발하는 경우 Automanaging을 사용하면 타인이 Revoke 시킬 수 있는 등, Automanaging 보다는 명시적으로 직접 등록하여 사용하는 것이 좋습니다.
Apple 개발자 등록 후 개발이 완료되어 앱스토어에 등록하기 위하여 iTunesconnect를 통해 로그인하여 신규 앱에 대한 버전 정보, 업로드할 빌드 정보, 앱 아이콘, 앱 심사 정보를 꼼꼼히 입력 후 심사요청을 하면 됩니다. 심사 기간은 3~7일 정도가 소요되며, 심사 완료 시 버전 출시 방법을 선택하면 등록을 위한 모든 과정이 끝나게 됩니다.
●Android 앱
Android 앱의 등록은 iOS 앱에 비해 상대적으로 간단합니다. 먼저 구글에 가입을 한 뒤, 구글플레이스토어 앱 등록 이용권(25$)을 구매합니다. 결제가 완료 된 후 구글플레이스토어 개발자 콘솔 화면으로 들어와서 어플리케이션을 추가하시면 됩니다.
Android 앱을 추가하는 방법은 구글 개발자 콘솔 사이트를 통해 우선 앱 버전을 업로드하고, 스토어 등록정보 입력, 설문지를 통한 앱의 콘텐츠 등급 산출 및 적용, 앱 가격 등록을 통해 앱 출시 준비가 완료되면 프로덕션 출시요청 후 2~3시간의 심사가 진행된 후에 앱이 출시됩니다.