모바일 앱(App)개발 가이드

2019. 05. 22

정보

 

(1. 가이드)

 

  1. 1. 모바일 앱(Mobile App), 얼마나 알고계신가요?

정의

  • 모바일 응용프로그램(Mobile App): 스마트폰, 태블릿 PC 등 모바일 단말기에서 최적화된 응용소프트웨어를 말하며 Application Store(App Store)를 통하여 자신이 원하는 게임, e-Book, Music Player, SNS 등의 응용소프트웨어를 구입 및 설치하여 사용할 수 있습니다.
  • 네이티브 앱: 모바일 단말기에 다운로드 및 설치하여 사용하는 어플리케이션을 말합니다.
  • 웹 앱: 브라우저를 통해 서비스를 제공받는 프로그램

 

  • 모바일 앱은 단말기 운영체계(OS)에 따라 달리 개발하여야 합니다. 모바일 운영체계로는 안드로이드, IOS, 윈도우모바일, 타이젠, 심비안, 리모 등이 있으며, 이들 중 안드로이드, IOS가 가장 널리 사용되는 OS입니다.

 

  • 대표적인 Application은 Facebook, Twitter, Instagram 등의 SNS 앱과 Youtube, Netflix 등의 동영상 서비스 플레이어, iTunes, Vibe, Bugs 등의 뮤직 플레이어, Skype, Kakaotalk, Line 등의 통화 및 문자메시지용 Application이 있습니다.

 

 

2. 모바일 앱 개발업무 진행 절차

 

응용프로그램 기획

  • 응용프로그램 개발에 들어갈 아이디어를 기획 및 정리하고, 이를 요구사항 정의서로 문서화합니다.
  • 요구사항 정의서에 들어가는 내용은 가급적 명확히 정리하여야 하고 정의서 내용 자체가 애매할 경우 개발 시 투입자원 추가 및 일정 지연으로 비용이 증가할 수 있습니다.
  •  
  • 응용프로그램 개발 전에 구체적으로 결정해야 할 것은 다음과 같습니다.
    • - 화면구성 : 화면 레이아웃 및 페이지 디자인
    • - 화면전환 : 시나리오라고도 하며, 버튼이나 화면 터치 시, 전개되는 다음 화면을 정의
    • - 기능 : 화면이나 버튼 등을 터치할 때 반응 및 동작 정의

프로그램 개발

  • 계획을 정리한 요구사항 정의서 등의 구체적인 사양들을 스토리보드, 와이어 프레임, 프로토타입 툴 등에 기초하여 실제 응용프로그램을 개발합니다.
  • iOS 앱과 Android 앱의 개발, 이용 환경, 개발 언어, 동작 플랫폼이 다르기 때문에 각각의 OS에서 응용 프로그램 개발에 필요한 환경을 구성하여 진행합니다.

프로그램 설치 테스트

  • 애플리케이션 개발이 완료되면, 시뮬레이터와 에뮬레이터를 이용하여 테스트하고, 실제 모바일 단말기를 이용하여 응용 프로그램을 테스트합니다.
  • 테스트로는 표출 테스트, 동작 테스트, 단위 테스트 등이 있으며, 완벽하게 테스트를 수행하여 출시 후 버그 등의 시스템 문제를 방지하도록 합니다.

모바일 공개

  • - 응용프로그램 테스트가 완료되면 앱을 App Store에서 공개합니다.
  • - IOS 앱은 Apple사 심사 후 Apple Store를 통해 공개됩니다. (약 3~7일 소요)
  • - Android 앱은 공개요청 신청 후 바로 Google Play Store를 통해 공개됩니다. (약 2~3시간 이내)

 

 

3. 모바일 앱 개발업무 진행 TIP

 

(1) 요구사항 정의서를 신속히 확인 및 정리하기 위한 툴 적용하기

 

  • 요구사항 정의서에 기반하여 화면설계 및 기능 등을 가시화하기 위하여 국내에서는 파워포인트를 이용하여 설계를 진행하고 있습니다. 하지만 요즘에는 스토리보드 작업을 쉽게 해주는 어플이나 웹에서 툴을 발견할 수 있습니다. 파워포인트를 사용할 경우, 화면구성에 드는 업무상의 오버헤드가 발생하고, 매 화면을 수작업으로 진행하다 보니 투입되는 작업 시간이 많이 발생합니다. 이러한 오버헤드와 투입 시간 감소를 위해 다양한 툴들이 제공되고 있으며, 아래는 대표적인 적용 사례입니다. 

 

 

 

(이미지들은 제가 따로 다시 올릴게요) 

 

 

 

  • 현재 제공되는 대표적인 프로토타입 툴로는 HTML/CSS, AXURE, INVISION, Flinto, FRAMER, UXPin, 네이버 프로토나우, 카카오 오븐 등이 있습니다.

 

(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시간의 심사가 진행된 후에 앱이 출시됩니다.

 

 

(2. 견적 정보)

 어플리케이션 개발은 프로젝트 개발 기간에 따라 개발자, 디자이너, 기획자 등의 인건비를 월단위로 산정하여 견적서로 제출됩니다.

간략한 설명으로는 [개발자는 = 기능을 몇일 안에 제작할 수 있는지, 디자이너는 =  요구 디자인의 제작기간, 기획자는 = 스토리보드 제작]의 기간 을 이야기 합니다.

이 외 PM/PL/DBA/server engineer 등의 인건비가 추가될 수 있습니다.

  • 개발의 언어, 서버의 구성 등으로 인건비 항목이 변경될 수 있습니다.

 

 

(3. 자주 묻는 질문에 배치해주세요)

 

4. 모바일 앱 개발 진행 시 주의사항

 

  1. 1) 모바일 앱을 개발하기 위해서는 모바일 운영체제에 따라 개발환경 및 운영플랫폼이 다릅니다. 여기서는 iPhone 애플리케이션, Android 애플리케이션의 2종류로 나누어 소개합니다.
    •  
    • iOS 앱 개발은 개발 소프트웨어인 Xcode를 이용해야 하므로 PC는 Windows를 사용할 수 없고, Mac이 필수입니다. 현재는 Xcode의 최신 버전인 Xcode 9를 설치해야 하므로 macOS 10.12.6을 탑재할 수 있는 기종을 선택해야 합니다. PC의 필요한 스펙에 관해서는 개발하는 응용 프로그램에 따라 달라지지만, 디버그라는 응용 프로그램 테스트 작업을 원활하게 진행하기 위해 대체로 다음 정도의 수준이 권장됩니다.
    •  

CPU : Core i5 (1.5GHz / 2코어 이상) 
메모리 : 4GB~8GB (권장) 
디스크 : HDD 또는 SSD (권장) 64GB 이상

 

    • iOS 앱의 경우 프로그래밍 언어는 Swift, Object-C 등을 이용하여 개발을 진행하는 것이 일반적입니다. 화면구성 및 레이아웃은 Xcode에 있는 Storyboard를 이용하여 UI/UX를 구성할 수 있습니다.
    •  
    • Android 앱 개발의 경우 과거에는 Eclipse라는 응용 프로그램 개발 소프트웨어가 주류였지만, Google이 Eclipse의 지원을 중단했기 때문에 현재는 Android Studio가 응용 프로그램 개발 도구로 사용되고 있습니다. 그리고, 개발환경으로는 Android Studio가 Windows, Mac 모두에서 사용가능 합니다.
    •  
    • Android 앱 개발은 여러 측면에서 iOS 앱 개발 보다 다양성을 보장합니다.

 

 

  1. 2) 모바일 앱 개발업체를 선정하기 위하여는 다음과 같은 몇 가지 기준을 갖고 비교 후 결정해야 합니다.
  2.  
    • - 의뢰하고자 하는 응용 프로그램과 동일한 장르의 개발 실적을 풍부하게 가지고 있는가?
    • - 앱 개발 견적 및 개발 흐름 등의 설명에 애매한 점이 있는가?
    • - 응용 프로그램 개발 회사의 규모가 전체 개발 규모를 감당할 여력이 있는가?.

 

 

  1. 3) 모바일 앱 개발 기간은 구현하고자 하는 내용에 따라 다르지만, 개인 개발과 기업 개발의 경우, 대개 다음과 같은 기준을 적용하여 산정하면 도움이 됩니다.
  2.  
    • - 개인 개발 : 비교적 간단한 응용 프로그램의 경우, 앱 개발에 익숙한 사람이라면 평균 2~3주 정도의 기간이면 완료할 수 있습니다. 반면, 초보 개발자인 경우 기간은 두 배 이상 추정하는 편이 좋습니다.
    •  
    • - 기업 개발 : 개발 기간이 1개월 이상 소요될 것으로 예상되는 경우, 기업을 통해 진행하는 것이 프로그램의 완성도나 프로젝트 수행의 안정성 측면에서 합당합니다.
    •  
    • 현실적으로 모바일 앱 공개 후, 프로그램의 유지보수와 업그레이드를 고려할 때 기업을 통해 개발하는 것이 안전합니다. 이를 통해 개발 기간 중 발생하는 위험(중도 포기, 계약위반, 품질 저하 등) 요소들을 줄일 수 있습니다.

 

 

  1. 4) 모바일 앱의 종류는 네이티브 앱, 모바일 앱, 웹 앱, 반응형 앱, 적응형 앱, 하이브리드 앱으로 나눌 수 있습니다. 이들의 상관관계는 아래 그림과 같습니다.

 

 

 

 

 

 

(4. 용어)

    • - 네이티브 앱 : 모바일 기기에 직접 설치되고 운영되는 전용 애플리케이션을 말합니다. 플랫폼마다 맞는 프로그래밍 언어와 SDK로 개발해야 하며 기기의 고유 정보에 직접 접근할 수 있습니다. 일반적으로 각종 스토어에서 다운로드받아 사용하는 앱을 생각하면 맞습니다.
    •  
    • - 모바일 웹/모바일 웹앱 : OS와 상관 없이 단말기에서 제공하는 웹 브라우저를 통해 HTML 기반으로 제작된 웹페이지를 보여주는 일반적인 모바일 홈페이지를 보여주는 방식이 모바일 웹입니다. 모바일 웹앱은 모바일 웹과 비슷한 형태이지만 앱의 형태를 띄고 있습니다. 즉, 모바일 웹을 앱 내부에 띄우고 이것을 마켓에 등록하여 사용자가 마켓에서 앱을 검색 및 설치할 수 있도록 해놓는 것입니다.
    •  
    • - 반응형 앱/적응형 앱 : 하나의 HTML 파일이 PC용 웹사이트, 태블릿용, 스마트용으로 자동 리사이징되는 형태를 반응형 앱이라고 하며, 같은 콘텐츠지만 PC 상의 웹사이트와 모바일용을 따로 만들어 제작하여 각 환경에 맞게 실행해주는 것을 적응형 앱이라고 합니다.
    •  
    • - 하이브리드 앱 : 웹앱을 네이티브 앱으로 감싼 것을 하이브리드 앱이라고 합니다. 즉, 내부 콘텐츠는 HTML, CSS, JS 기반으로 제작이 이루어지며, 겉은 폰갭, 앱스프레소와 같은 프레임워크를 통해 네이티브 앱화 시켜 구동합니다.

 

 

 

  • - 와이어프레임 : 화면단위의 레이아웃을 설계하는 작업입니다. 의사소통 관계자들과 레이아웃을 협의하거나 서비스의 간략한 흐름을 공유하기 위하여 사용하며 UI/UX 설계에 집중하여 진행합니다.

 

  • - 스토리보드 : 디자이너/개발자가 참고하는 최종적인 산출문서이며, 정책/프로세스/콘텐츠/와이어프레임(UI/UX)/기능정의, DB연동 등 서비스 구축을 위한 모든 정보가 담겨있는 문서입니다.

 

  • - 프로토타입 : 프로토타입은 실제 서비스와 흡사한 모형을 통해 가시적 효과를 극대화하는 작업입니다. 정적인 화면으로 설계된 스토리보드를 기반으로 동적효과를 가미하여 실제 구현된 것과 같은 시뮬레이션을 시행할 수 있으며, 비교적 단시간 내에 구현이 가능하기 때문에 실 사용자 경험을 고객에게 제공할 수 있습니다. 이를 통해 고객이 기획한 아이디어를 구체적으로 확인하고 테스트해볼 수 있습니다.

 

 

 

인기 포스트