모바일 앱 개발 및 운영 프로세스 정리
새롭게 앱 서비스를 만들고자 하는 개인 또는 팀, 기업들 중 앱 개발 방법에 대한 깊은 연구와 전략 또는 계획을 가지고 시작하는 비중이 얼마나 될까? 보통의 개발자들은 모바일 시장의 성숙으로 인해 정확한 요구 사항만 있으면 개발할 수 있다고 이야기를 한다. 또 전문 개발 회사들은 누구나 최고로 개발을 할 수 있다고 말한다. 그런데 왜 모바일 시장은 0.001%의 극악의 성공 확률을 가지고 있는 것일까? 인터넷에서 ‘앱 만들기’를 검색하면 누구나 쉽게 만들 수 있는 앱 개발 가이드나 앱 개발 관련 책도 많이 출간되고 있긴 하지만 그것은 그냥 앱을 만드는 방법일 뿐, 성공적인 앱을 만드는 방법을 알려주진 않는다. 성공적인 앱은 어떻게 만들까? 이미 시장에서 성공한 앱 서비스 개발팀에게 물어본다면 그들에게 정답에 아주 유사한 답변을 들을 수 있을 것이다. 그들은 지금까지의 앱을 만드는데 수없이 많은 시행착오와 고민 그리고 문제점을 해결하면서 지금의 결과를 가질 수 있었다고 말하고 있다.
앱 개발 과정을 어떤 프로세스를 계획하고 시작해야 하는 것일까? 아래에 설명하고자 하는 개발 프로세스는 지금까지 수없이 많은 개발자, 개발 전문가, 성공한 스타트업들의 이야기를 필자의 오랜 경험을 기반으로 정리하여 구체적이고 상세한 설명을 하고자 한다. 이 개발 프로세스를 무조건 따라야 한다고 말하고 싶은 것은 아니다. 이 글을 끝까지 읽고 나서 각자의 개발팀과 개발 프로젝트의 참여자들과 현재의 작업 프로세스와의 비교해볼 수 있는 참고 항목이 되기를 바란다.
먼저 개발 및 운영 프로세스 전체를 정리해서 구분하였다.
각각의 단계마다 기능 구현 엔지니어, 설계자 또는 디자인 및 프로젝트 관리 그룹 등의 고 임금 전문가가 필요할 수 있다. 하지만 중요한 것은 프로세스를 이해하고 수행하는 것이지 참여자의 숫자는 목표 달성 시간과 직접적 관련성만 있다는 것을 이해해야 한다. 또한 모든 단계에서 기술과 비즈니스는 같은 의사결정을 이루기 위해서 모든 사람들의 참여가 중요한 수행 방법론이다. 다음은 각 단계별로 어떻게 개발 업무를 수행해야 하는지에 대한 구체적인 가이드를 설명하고자 한다.
사람들은 개발 및 업무 프로세스의 구체적인 계획이나 전략 없이 앱 개발에 착수하는 경우가 있다. 개발 요건을 개발팀에서 이해하고 스스로 개발하기를 바라는 행동은 올바른 앱 개발 방향과 성공하는 방향과는 멀어지는 행동이다. 결국 계획이나 전략이 부족하면 개발 과정과 상용화 이후의 사업화 단계까지 예상하지 못하는 개발 결과물에 대한 충돌 또는 사업화 실행에서 문제점이 발생될 수 있다. 이러한 문제점이 발생될 때마다 많은 시간과 자원이 소비되는 것은 리스크임을 인식해야 한다. 모바일 앱이 실패하는 가장 큰 이유 중 하나는 잘못된 계획과 부족한 전략이라는 것은 그동안 많은 실패 사례를 통해 소개되었다. 모든 앱 개발 업무의 시작은 성공의 발판이 될 수 있기에 이 단계는 앱의 목표, 해결해야 할 요소에 대한 정의, 최종적으로 완성된 앱 사용자의 만족도를 정의한다고 볼 수 있겠다. 이 업무 단계의 목표는 다음과 같다.
· 프로젝트 관리 관점에서 프로젝트 세부 정의(소요 기술/인력/범위 등)
· 프로젝트 위험 요소 정의와 연관성 있는 리스크 요소 추가 예측
· 프로젝트에 대한 현실적인 시간 및 비용 계획 수립
1 단계 : 아이디어 - 아이디어의 구체화 및 계획 수립 단계
앱 비즈니스는 대부분 사람들의 아이디어에서 시작된다. 하지만 개발 업무가 시작되면 아이디어의 타당성 분석, 가치 그리고 비즈니스 성공 가능성에 대한 고민을 실행하지 않고 바로 개발 프로젝트의 요건을 정의하는 경우를 종종 경험한다. 모바일 앱은 어떤 특정한 목적을 달성하기 위해 시작해야 한다. 그렇다면 발견한 아이디어로 목적을 달성할 수 있는지 판단하고 그 판단에 적합한 기능 설계를 시작하는 것이 프로젝트의 시작이라고 할 수 있다. 반드시 아이디어 구체화를 위한 비즈니스 성공 가능성과 기술적 측면에서의 필요 기술을 정의해야 한다.
2 단계 : 경쟁 앱 상세 분석 - 성공을 위한 앱 포지셔닝
앱 스토어에는 카테고리로 사용 목적에 따라 분류하고 있으며 각각의 카테고리에는 비슷한 용도로 사용되는 수 천 개 이상의 앱이 있다. 당신의 앱이 등록된 앱 카테고리에 수많은 경쟁자들이 있겠지만 더 중요한 것은 당신 앱의 목표 사용자들이 이미 다른 유사한 앱을 사용하고 있다는 것이 중요한 지점이다. 경쟁 앱 분석은 목표하는 사용자들이 무엇을 원하고 있는지? 어떤 서비스 또는 콘텐츠를 좋아하고 있는지를 확인할 수 있다. 개발 프로젝트가 완료되고 상용화를 준비할 때 ASO 전략을 수행해야 하는 시점에 좋은 참고 자료로 활용할 수 있는 단계라는 것을 명심하길 바란다. 그렇기 때문에 경쟁 앱 분석은 다른 앱보다 실적을 높일 수 있는 좋은 밑바탕이 될 것이다. 다른 앱을 조사할 때 설치 수, 회사 기록, 평점 및 리뷰의 측정 항목을 조사하여 목표하는 사용자들에게 눈에 띄는 요소를 파악하는 데 도움이 되길 바란다.
3 단계 : 목표 사용자 분석 및 이해
예를 들면, 아이스크림 가게를 오픈한다고 가정해보자. 어느 누구도 배스킨라빈스 가게 앞에 오픈하지 않을 것이다. 아이스크림 가게를 오픈하는 경우에도 다른 아이스크림 가게보다 특별한 장점은 적극적으로 홍보하고 고객의 호기심을 끄는 이벤트를 준비하여 유동인구가 많은 장소를 선택할 것이다. 모바일 앱 비즈니스도 이런 전략이 필요하다. 수많은 경쟁 앱이 존재하는 특정 카테고리에는 유사한 목적을 해결하고자 하는 앱 사용자들이 집중될 수 있다. 이들을 모두 특정하여 목표 사용자라고 정의하기에는 좋은 전략이 아닐 것이다. 개발하고자 하는 모바일 앱은 정확한 목표 사용자가 존재하는 것이 성공의 중요한 전략이므로 목표 사용자의 연령, 성별, 위치, 취미 등과 같은 기본적인 것부터 그들이 선호하는 단말 모델, 해상도, 기능 또는 콘텐츠, 하드웨어 등의 다양하고 정밀한 연구가 필요하다. 이런 분석된 요구 조건들이 모바일 앱에서 기술적으로 구현하는 것이 성공 앱이 될 수 있는 중요한 요소라는 것을 인지해야 한다.
4 단계 : 앱 수익 창출
목표하는 사용자 그룹을 정의하고 그들의 호기심을 자극하여 유인할 수 있는 기술적 요소를 마련한 다음에는 그들에게 어떻게 수익을 창출할 것인가?라는 중요한 문제를 해결해야 한다. 대부분의 모바일 앱 개발팀들은 오픈 시 많은 사용자를 모집하기 위해서 수익모델을 나중에 만들거나 전략적이지 못한 일반적인 수익 모델을 고려하고 무조건 무료 서비스 또는 무료 콘텐츠를 제공하는 전략으로 실행하는 경우가 많다. 중요한 것은 당신의 팀이 모바일 앱 비즈니스를 시작한다는 것은 수익을 창출하기 위해 시작했음을 잊지 말아야 한다. 만약 공익적인 목적을 위해 앱을 개발하고자 한다면 이 단계는 무시해도 된다. 그렇지 않다면 반드시 개발 시작 단계에서 수익 모델에 대한 세밀한 계획을 세우고 수익 모델을 중심으로 개발해야 한다. 예를 들면, 성공한 경쟁 앱이 광고 수익을 창출하고 있다고 동일한 광고 수익모델을 기대한다는 것은 목표하는 사용자들에게 큰 호기심 또는 차별성을 제공하지 못하는 사례가 될 수 있다. 모바일 앱에서 수익모델은 광고, In-App 구매, Subscription, 상품 거래 및 수수료 같은 정형화된 수익모델이 존재한다. 당신의 앱에서 이러한 수익모델을 목표 사용자들에게 어떻게 노출하고 설득력 있는 서비스 또는 콘텐츠 제공을 하느냐가 중요한 성공 요소가 될 것이다. “사용자가 많아지면 시작하면 될 것이다”라는 전략은 모바일 사용자의 변동성이 큰 이탈률 데이터를 확인해본다면 진실이 아님을 알 수 있을 것이다. 수익 모델은 목표 사용자에게 전달하는 설득력과 앱에 대한 만족도를 비용으로 지불할 수 있는 강점이 앱 개발 기능 또는 시나리오에서 표출되어야 한다.
5 단계 : MVP 정의
개발을 시작하는 단계에서 MVP(Minimum Viable Product)를 정의하고 개발에 착수하는 전략은 경쟁이 심한 모바일 앱 시장에서 매우 중요한 전략이다. 전통적인 소프트웨어 개발 방식으로 접근하는 경우, 즉 개발하고자 하는 기능을 모두 상세하게 정의하여 오랜 개발 기간 후에 시장에 릴리즈하여 고객의 평가를 기다리는 형태는 모바일 앱 시장에 맞지 않다고 생각한다. MVP의 실행은 최소한의 기능과 특/장점만으로 초기에 목표하는 사용자 그룹에게 노출한 후 사용자의 피드백을 수집하여 전체 기능을 개발하는 방법론이다. MVP 정의에서 중요한 것은 목표하는 사용자들이 반응할 수 있는 가장 핵심적인 기능과 특별함을 노출하여 최초 사용자를 모집하는 것이다. 최초 사용하는 사용자들의 반응(피드백)은 전체 개발 기능과 시나리오를 변화시킬 수 있는 중요한 요소이며 궁극적으로 목표하는 시장에서 성공할 수 있는 중요한 기능/서비스적 지표가 될 수 있다. 반드시 MVP 버전을 개발해서 시장에 빠른 시간 내 론칭할 수 있는 전략을 실행하기를 권장한다.
앱 화면의 기본 색상은 어떤 색으로 하는 것이 사용자에게 친화적일까? 시각적으로 놀라운 앱이라고 하더라도 직관적이지 않고 유용성이 부족하다면 사용자로부터 외면받을 가능성이 높다. 앱 사용자는 앱을 실행하고 다음 화면을 터치할 위치, 수행할 작업, 특정 화면으로 이동하는 방법 등 모든 것을 직관적으로 이미 알고 있는 것처럼 느끼기를 원한다. 자연스러운 익숙함이 최고의 UX 디자인이다.
“UX 디자인이란 무엇입니까?”
UX 디자인은 사용자에게 의미가 있고 관련성 높은 경험을 제공하는 제품을 만드는 과정이다. 여기에는 브랜딩, 디자인, 유용성 및 기능 측면을 포함하여 제품을 획득하고 통합하는 전체 프로세스의 디자인이 포함된다. UX 디자인은 한 번의 작업 프로세스가 아니고 지속적으로 진행해야 하는 프로세스이다. 업데이트할 때마다 사람들이 앱을 사용하는 방식을 개선할 부분을 찾아 업그레이드 항목에 필수 요소가 되어야 한다. 만약, 업데이트로 앱의 사용 또는 기능에 대한 접근성이 낮아지거나 앱의 화면 트리가 증가되어 사용자를 혼란스럽게 만든다면 즉시 보완해야 한다. 이제는 세부적인 UX 디자인 프로세스에 대해 설명하겠다.
1 단계 : 시나리오 스케치
UI 디자이너의 전문 용어를 인용한다면, 정보 아키텍처(또는 IA)라고 정의할 수 있으며 이 단계에서는 비주얼 사용자 접근성과 사용 편의성을 극대화하기 위해 모든 콘텐츠를 구성하는 방법을 연구하는 단계이다. 일반적으로 IA 프로세스는 원하는 기능의 목록과 표시해야 할 기능 항목 및 각각의 화면에 메뉴와 기능에 대한 위치를 스케치하는 작업 단계를 의미하며 모든 작업 과정은 개발 업무와 직접적인 관련성이 있다. 예를 들면, 화면 간 이동, 화면마다 위치할 기능과 메뉴 등은 어떤 기준을 가지고 사용자 편의성을 높일 것인지를 이 단계에서 정의해야 한다.
2 단계 : 앱 와이어 프레이밍
앱 화면 단위의 세부 구성도, 화면에 대한 청사진을 와이어 프레임이라고 정의할 수 있다. 앱을 시작하면서부터 앱을 종료하는 모든 화면과 메뉴, 이벤트를 구조화하는 단계이며 결과물은 시나리오 설계서와 같은 문서를 통해 개발 업무의 산출물이 되어야 한다. 더불어 이 단계에서는 앱의 골격을 보여주는 시각적 가이드이다. 앱 아이디어의 “모양과 느낌”을 제공할 수 있는 실체이며 이 단계를 통해 개발팀이 앱 아이디어 또는 목표하는 앱의 개발 내용을 쉽게 이해하고 개발에 대한 목표를 설정할 수 있는 단계이다. 와이어 프레이밍은 개발이 수행되면서 난이도 또는 소요 기간을 산정하는 기준이 될 수 있으며 이 단계에서 변화를 쉽게 주는 것은 새롭게 코딩을 시작해야 하는 개발 리스크가 발생할 수 있다는 것을 인지해야 한다. 그러므로 효과적인 정교한 와이어 프레임은 개발팀과 아이디어팀 간의 긴밀한 협의 과정을 통해서 수행되어야 한다.
3단계 : 클릭 가능한 프로토타입 만들기 : Mockup app 제작
모바일 앱 개발 솔루션 중에는 무료로 제공되는 Invision 툴과 같은 Mockup 앱 제작 솔루션들이 존재한다. 완벽한 UX를 만들기 위해서는 실제 개발 업무가 착수되기 전에 이러한 프로토타입을 제작하여 기능은 존재하지 않지만 화면 이동과 같은 클릭 가능한 프로토타입을 통해 지속적인 테스트 과정을 수행해야 한다. 수많은 테스트 과정과 Mockup 변경을 통해서 만족스럽고 세련된 UX를 개발할 때까지 반복 과정을 권장한다.
통계 데이터에 의하면 모바일 앱 사용자가 처음 다운로드한 앱의 만족 지표는 94%가 앱 아이콘, 인트로 화면과 같은 처음 노출되는 디자인에 의해 결정된다고 한다. 디자인이 앱 성공의 지표가 반드시 될 수는 없지만 사용자에게 강한 인상을 주는 큰 역할임에는 분명한 사실이다. 가장 중요한 것은 UI와 UX를 혼동하면 안 된다는 것이다. UI와 UX는 여러 측면에서 중복될 수 있지만 분명한 기능적 차이가 존재한다. UX는 최적의 앱 유용성과 사용자에게 익숙함과 같은 편안함을 제공하여 고객 만족도를 높이는데 중점을 두고 있지만 UI는 앱의 색감, 애니메이션의 미려함과 같은 심미성에 중점을 두고 있다.
1 단계 : 스타일 가이드 만들기
10개의 서로 다른 버튼 색상, 5개의 다른 Gradients, 20개의 글꼴을 사용하는 앱을 본 적이 있는가? 이러한 일반적인 디자인 함정은 스타일 가이드만 있으면 쉽게 피할 수 있다. 물론 디자이너가 팀에 합류했다면 이러한 어이없는 실수는 하지 않을 것이다. 스타일 가이드는 앱 인터페이스의 구성 요소이다. 가이드는 화가의 색상 팔레트와 같다. UI를 만들 때 선택할 수 있는 요소, 글꼴, 색상 및 아이콘 모음으로 생각하면 된다. 이러한 모든 집합물들이 앱 디자인 업무의 결과물로 산출되어야 한다. 또한 개발자는 앱 인터페이스를 코딩하며 구현할 때 해당 가이드에 따라서 구현해야 한다.
2 단계 : 렌더링 된 앱 화면 구성 디자인 만들기
스타일 가이드의 모든 요소로 UX 와이어 프레임의 구성을 기반으로 디자인 작업을 수행하는 단계이다. 스타일 가이드를 고수하는 것도 중요하지만 만약, 스타일 가이드가 최신 유행 패턴에 뒤처져 있다고 판단되면 변경하는 것 또한 두려워하면 안 된다. 앱 디자인 또한 패션 디자인과 유사하다는 생각으로 유행하는 패턴을 따르거나 새롭게 창조하는 것이 훌륭한 앱 디자인의 결과물이다. 모든 화면을 렌더링 한 후 클릭 가능한 프로토타입 버전에서 재검증을 시도해보는 것은 향후 변경 사항이 발견되는 것을 대비하기 위해서 필수적인 작업 과정이다. 추가적으로 앱 디자인은 항상 유행에 뒤처지면 안 된다는 것을 명심하길 바라며 트랜지션에 애니메이션을 결합하는 것도 경쟁력 있는 앱을 만들 수 있는 팁이 될 수 있다. UI 필수 가이드는 다음과 같다.
1) UI 트렌드를 따르고 디자인하세요.
2) 디자인 버전(프로토 타입 버전) 상태에서 베타 테스트를 실행해 개선점을 찾으세요.
‘Design to Development Hand off’ 란 디자인팀과 개발팀 간 의사소통 부족과 기술 및 정해진 예산과 범위의 혼동으로 원하지 않는 앱 개발 결과물을 산출하는 중요한 문제 요소라고 정의할 수 있다. 디자인팀은 개발의 기초가 되는 작업 결과물, 개발팀은 디자인팀의 결과물을 정확하게 이해하고 100% 만족할 수 있는 기술적 결과물을 만들어야 한다. 이러한 문제점을 근본적으로 해결하기 위해서는 기초 작업부터 지속적으로 개발팀이 참여해서 소통하고 상호 간의 어려움과 문제점 등을 공유하고 단계별로 해결하는 과정이 필요하다. 만약 이러한 커뮤니케이션 또는 참여 환경을 구성하기 어렵다면 다음과 같은 원활한 협업을 보장할 수 있는 방안을 수립되어야 한다.
1 단계 : 모든 디자인 결과물은 파일로 정리할 것
화면 시나리오, 레이어 구성도, 각각의 화면 구성하는 디자인 결과물들은 ID 또는 이름을 지정해야 한다. 모든 디자인 결과물들은 파일로 구성하고 파일과 각각의 파일에 구성 요소들은 일관된 네이밍 규칙으로 생성해야 한다. 이 규칙에 의해 생성된 이름들은 개발팀과의 소통 지표가 될 수 있다. 그리고 화면 구성은 레이어 구성도를 반드시 포함해야 하며 모든 레이어는 그룹화를 통해서 개발팀에서 구현 작업 단계마다 이해도를 높일 수 있어야 한다. 예를 들면 클릭 이벤트, 메뉴 위치 및 사이즈, 디자인적 강조 요소들을 문서에 반드시 명시해야 하며 디자인적 구성 요소는 반드시 네이밍으로 정의해야 한다.
2 단계 : 앱 개발 목표를 반드시 정의하고 공유할 것
앱 목표를 서로 공유하면 개발자가 사용자의 입장에서 이해하며 화면 개발을 개발 로직으로 변환하는 과정에서 최상의 결과물을 만들어 낼 수 있을 것이다. 코딩할 때는 중요한 핵심 구현 포인트를 공유한다면 개발팀의 노력에 의해서 디자인 결과물이 더욱 훌륭한 결과물로 변화될 것이다. “반드시 앱의 목적, 목표, 목표 사용자, 그리고 왜 앱을 만들려고 하는지?”에 대해서 개발팀과 함께 공유하여 이해해야 한다.
3 단계 : 개발팀과 디자인 프로토타입 결과물 공유
프로토타입 결과물은 개발팀의 이해를 돕고 집중해야 할 핵심 요소를 명확하게 전달할 수 있다. 이를 통해 개발팀은 앱 기능 구현 내의 흐름과 중요한 구현 요소를 이해할 수 있다. 개발자는 작업 시간이 지남에 따라 지속적으로 화면 흐름, 또는 디자인적 요소를 확인할 수 있는 산출물이 공유되어야 한다. 특히 애니메이션이나 디자인에 중요한 요소가 명시되지 않거나 공유되지 않으면 최종 앱 결과물에 대해 내부적으로도 만족하지 못하는 상황이 전개될 수 있다.
4 단계 : 디자인 결과물의 기술적 산출물 공유
디자인팀이 HTML과 CSS에 대한 결과물을 개발팀과 공유할 수 있다면 개발팀은 비주얼 코딩이 익숙하지 않다고 하더라도 정확한 디자인 결과물을 개발하는데 많은 도움이 될 것이다. 그러므로 디자인 결과물은 정의된 문서, 디자인 파일뿐만 아니라 HTML, CSS 같은 기술을 활용한 스타일 가이드, 색상 지정, 글꼴 등 디자인적 주요 요소를 기술적으로 공유할 수 있기를 바란다.
결론적으로, 디자인과 개발은 공통된 목표를 가지고 있지만 소통의 문제, 혼동 이슈가 발생할 수 있으므로 위와 같은 단계로 실행하는 것도 중요하지만 가장 중요한 것은 원활한 의사소통임을 명심하자.
iOS 또는 Android 사용자를 위한 모바일 앱 개발을 하고자 하는가? Java 또는 JS를 사용하여 앱을 개발하고자 하는가? 그렇다면 iOS는 어떻게 개발하는 것이 좋을까? 개발된 앱 시스템은 어디에서 어떻게 호스팅 해야 할까? 전문적인 기술자가 필요할 수 있겠지만 이 단계는 개발팀의 협력을 통해서 개발 언어, 개발 방식, 구현 목표에 필요한 기술을 결정하는 단계이므로 참여 개발자들과 주변 전문가의 조언을 통해서 이 단계의 과정을 수행할 수 있다. 모든 개발 접근 방식에는 장단점이 존재한다. 어떤 방식은 더 싸고 빠르며 어떤 형태에 앱 개발 방식에 적합하지만 다른 방법은 더 비쌀 수 있지만 장기적으로 확장될 수 있는 형태에 더 적합할 수 있다. 무엇을 선택하든, 신중하게 생각하고 가장 적절한 접근 방식을 선택하면 된다.
일반적으로 앱 개발 프로젝트는 Frond end 영역인 앱의 형태에 집중될 수 있지만 실제적으로는 Back end 시스템과의 상호 작용을 통해서 완전한 앱 시스템이 구축되는 것이다. 따라서 개발팀의 구성은 반드시 iOS/Android 앱 개발자 영역과 백엔드 시스템 개발자 영역이 상호 협업이 이루어져야 함을 인식해야 한다.
모바일 앱의 Front end를 개발하기 위해서는 다음 세 가지 접근 방식 중 하나를 선택해야 한다.
옵션 1 : OS 네이티브 앱 개발 방식
iOS 또는 Android와 같은 특정 OS 용으로 개발하는 방식이다. 이러한 앱을 개발하는 경우는 개발 언어는 해당 OS에서만 지원하므로 각각의 개발자들이 필요하지만 네이티브 앱의 가장 큰 장점은 하드웨어 및 기능을 구현하는데 제약 조건이 없으므로 다양한 기능과 시나리오 개발에 유익하다. 가장 큰 예로 모바일 게임의 형태가 이러한 앱 방식으로 개발하고 있다.
옵션 2 : Cross 플랫폼 솔루션 개발 방식
모바일 앱 개발 시장이 성숙되면서 JS 기반으로 개발한 하나의 앱으로 특정 OS 플랫폼에서 호환되어 작동할 수 있는 개발 방식으로써 앱 개발에 SDK를 사용하여 앱이 구동되는 방식이다. Xamarin, React Native 및 Native Script와 같은 Cross 플랫폼 개발 방식은 네이티브 앱을 JS 방식으로 개발함으로써 외부 SDK의 도움으로 빠른 개발과 예산의 효율성에서는 높은 장점이 있지만 기능 구현이 제약이 외부 솔루션이 지원하는 범위 내에서 작동되므로 기능 구현의 확장성이 비효율적이라는 단점을 가지고 있다.
옵션 3 : 하이브리드 앱
가장 많은 개발팀이 사용하는 방식으로써 모든 장치와 OS에 호환할 수 있는 웹과 네이티브의 호환 방식으로 개발하는 것이다. 비용 효율성과 참여 가능한 개발자가 많아 찾기 쉬운 장점이 있지만 앱의 특정 기능을 구현할 수 없는 장애 요소가 발생할 수 있다. 장점으로는 각각의 플랫폼마다 모두 다른 코딩을 할 필요는 없고 HTML, CSS 및 상호 작용에 대한 JavaScript가 구동될 수 있는 장점이 있지만 일반적인 네이티브 앱보다 성능 측면에서 부족할 수 있는 단점이 있다.
모든 방식은 선택일 뿐이고 그 선택은 앱의 목표에 따라서 기술적 선택을 하면 된다. 중요한 것은 무엇을 누구에게 어떻게 제공하기 위해서 앱을 개발하고자 하는 것이냐? 는 것이다.
Front End 개발이 시작되면 앱에 출력할 데이터가 필요하다. 데이터를 자체적으로 수집하고 저장한다면 데이터를 송/수신하고 저장할 서버와 데이터베이스가 필요하다. 만약 외부에 데이터가 존재한다면 외부 시스템과 연계할 시스템까지 포함해야 한다. 해당 개발 코드를 작성하기 전에 다음 요소를 반드시 고려해야 한다.
1 단계 : 개발 언어 선택
Front end 앱 영역을 개발할 때 사용되는 개발 언어(Object C, Swift, JAVA, .NET, PHP, Python, JS 등) 중에서 선택하거나 다른 개발 언어를 선택할 수 있다. 외부 시스템과의 데이터 연계가 필요하다면 연동해야 할 시스템의 기술적 요건을 해석하여 최적의 개발 언어를 선택해야 하며 해당 개발 언어는 반드시 향후 개발의 확장성을 고려하여 선택해야 한다.
2 단계 : 데이터베이스 및 데이터 구조
일반적으로 사용되는 데이터베이스는 MySQL, MongoDB 및 PostgreSQL이다. 대용량 데이터베이스인 경우에는 Oracle도 선택할 수 있다. 하지만 일반적인 모바일 앱 서비스의 시작은 간단하게 사용하기 유용한 MySQL 데이터베이스를 사용하는 경우가 다수이다.
3 단계 : 호스팅
모바일 앱 시스템을 호스팅 할 때는 소요 예산 및 호스팅 비용과 예상 성능, 안정성을 기반으로 결정해야 한다. 그 외에는 사용자가 증가하는 것에 따라 확장 방안에 대한 계획을 세우는 것이 현명할 것이다. 요즘은 사용자 기반에 따라 확장 및 축소되는 클라우드 솔루션을 사용하는 것이 유행이다. 클라우드 서비스의 선택은 위치와 네트워크 속도, 그리고 비용의 이슈를 해결할 수 있는 최적의 선택하면 된다.
모바일 앱 개발은 단일 단계로 작업이 실행되면 안 되며 모든 단계는 지속적으로 반복 실행되는 프로세스로 작동되어야 한다. 반복 프로세스가 필요한 이유는 모바일 앱의 형상 관리는 현실적으로 다양한 단말 환경과 OS 환경, 외부 하드웨어 환경으로 인해 어려운 작업 과정이다. 이를 해결하기 위해서는 개발 단계부터 개발과 테스트를 반복적으로 실행하는 것이 최선의 방법론이다. 개발 프로세스는 계획, 개발, 테스트 및 검토를 포함한 일련의 단계를 반복해야 한다.
1 단계 : 개발 세부 계획 수립
앱 개발을 시작하기 전에 가장 작은 개발 작업 단위와 개발 난이도 및 개발자 지정과 같은 세부적이고 그룹화된 개발 계획을 세우기 바란다. 모든 작업은 기능 및 특정 모듈 단위로 구분하여 개발자에게 할당해야 하며 각각의 작업 단위는 정확한 요구 사항과 목표 결과물이 개발자에게 공유되어야 한다.
2 단계 : 개발
개발 단계에서 개발자는 앱 기능을 구현하기 시작하며 완성 시점에는 관리자 또는 QA 테스터에게 다시 할당하여 검토해야 한다.
3 단계 : 테스트
실제 시나리오를 기반으로 엄격한 테스트가 수행되어야 한다. 이 단계는 기술적 결함을 감지하여 수정함으로 기술적 문제점이 누적되는 것을 방지해야 한다. 앱의 버그는 상황, 테스트 환경에 따라서 다양하게 발생할 수 있으므로 개발 단계부터 단위 테스트와 반복 테스트가 필수적이다.
3.1 단계 : 기능 테스트
기능 테스트는 앱이 정확하게 목표하고 설계된 기능을 수행하는지 확인하기 위해 진행해야 한다. QA 팀은 요구 기능에 기준하여 모바일 앱 기능이 작동하는지 테스트 시나리오를 작성한 상태에서 작업을 수행해야 한다.
3.2 단계 : 성능 테스트
모바일 앱 성능 테스트는 사용자의 이용 편의성 측면에서 화면 간 이동과 흐름이 잘 작동하는지 뿐만 아니라 개별 구성 요소가 얼마나 효율적으로 작동하는지에 대한 테스트이다. 기본적으로 앱이 실행되고 빠르게 응답하는지에 대한 기본 검증이 포함된다. 만약 성능 상 치명적인 문제점이 발견된다면 이전 작업 단계로 돌아가서 근본적인 해결 방법을 수행한 후에 다시 개발 작업이 이어져야 한다.
3.3 단계 : 엣지 케이스 테스트
엣지 케이스 테스트란 일반적인 테스트 시나리오가 아닌 다른 조건에서 테스트를 실행하는 것이다. 해당 테스트 과정에서 기능, 단위, 성능 테스트 과정을 포함해야 한다.
3.4 단계 : 장치 별 테스트
수천 개의 하드웨어 장치와 다양한 OS 플랫폼 환경에서 앱이 올바르게 작동하는 것을 확인해야 하며 앱을 테스트하는 동안 여러 화면 해상도 단말 환경 및 OS 버전을 모두 사용해 테스트하는 것을 권장한다.
3.5 단계 : 사용성 테스트(UT) 및 사용자 반응(인지) 테스트(UAT)
이 두 분류가 비슷하게 들릴지 모르지만 실제로는 두 가지 별개의 과정이며 둘 다 똑같이 중요하다. QA 팀은 UAT를 통해 구현된 기능이 목표 요구 사항을 충족하는지 확인한다. 반면에 UT를 사용하면 기능이 최종 사용자의 관점에서 요구 사항을 충족하는지 확인할 수 있다.
3.6 단계 : 최종 테스트 결과 검토
테스트 단계가 끝나면 앱 상용화 여부를 검토해야 한다. 만약 여전히 미비한 문제가 있다면 어떻게 할 것인가? 상용화 결정을 할 때까지는 지속적이고 반복적, 정밀한 검토 작업이 필요하다.
앱을 배포하려면 실제 환경에서의 무결성을 보장해야 하며 준비한 시스템 구성 요소들이 정상적으로 릴리즈할 수 있도록 준비해야 한다.
1 단계 : 업데이트 주기 계획 수립
모바일 앱을 원활하게 배포하려면 업데이트 주기 계획이 잘 정의되어 있어야 한다.
2 단계 : 지속적인 업데이트
3 단계 : 개발자 인증
상용 앱 스토어에 배포하기 전에 개발자 인증서 상태 확인 및 개발자 정보를 최신화해야 한다.
4 단계 : 자동화
앱 스토어에 설정된 서비스 정책 설정이나 시스템의 자동 설정 기능을 활용하여 앱 배포 및 업데이트 관리 기능을 통해 비용을 절감할 수 있다.
5 단계 : 호스팅 환경
호스팅 환경은 개발 환경과 상용 환경 각각 구성해야 하며 릴리즈 프로세스 또는 계획을 반드시 수립해야 한다. 모바일 앱 사용자는 일시적인 장애를 기다려주거나 이해하지 않음을 명심해야 한다.
6 단계 : 앱 정보 최신화
앱 배포 전에 서명, 버전, 호환성 등과 같은 앱의 모든 기능을 최신화해야 한다. 자체 웹 배포와 앱 스토어 배포 두 가지 방식을 모두 수행하기를 권장한다.
7 단계 : 서버 시스템
앱이 정상적으로 작동하기 위한 서버 시스템을 확인하고 장비 테스트를 사전에 완료해야 한다. 그리고 운영 서버의 용량을 잠재 고객을 고려하여 산정하여 운영해야 한다.
8 단계 : Apple/Google App Store
ASO 마케팅 전략을 위하여 앱 스토어에 노출할 앱 정보를 올바르게 작성해야 한다. 스크린샷, 앱 설명 등 마케팅과 관련된 정보들을 고민 없이 정의하지 않기를 바라며 반드시 전략적인 콘텐츠를 만들어서 등록해야 한다.
모바일 앱은 배포 즉 상용화 작업으로 종료되는 것이 아니다. 앱에서 성능 개선, 변경 및 새로운 기능 추가 작업을 진행해야 한다. 앱을 모니터링하면 실제 사용자의 경험과 앱에 필요한 업데이트에 대한 지표를 얻을 수 있을 것이다.
1 단계 : 앱 실행 시작 시간 및 재개 시간
모바일 앱은 다운로드 완료된 시점부터 앱이 실행되는 시간, 앱이 백그라운드 모드에서 다시 시작하는 시간, 앱이 정상 설치 이후에 재사용을 위해서 재실행되는 시간으로 구분되어서 측정되어야 한다. 결론은 모든 시간이 짧고 명확해야 한다.
2 단계 : Crashes
모바일 앱에서 가장 중요하지만 쉽게 발생할 수 있는 기술적 문제점이 시스템 충돌로 인해 앱이 종료되는 현상이다. 시스템 충돌 현상은 반드시 해결해야 하며 이를 위해서 충돌을 일으킨 사용자 작업, 사용된 장치 유형 및 문제 해결에 도움이 되는 기타 정보를 수집할 수 있어야 한다.
3 단계 : UI 응답 시간
앱 기능이 사용자에게 응답하는 방식을 모니터링하는 것도 중요하다. 응답 시간은 앱이 사용자 입력에 반응하는 속도를 나타내며 앱에서 검색 결과를 표시하는 속도나 거래를 완료하는 속도 등 UI 응답 시간을 의미한다. 이것은 네트워크 요청 또는 장치, OS 별로 측정할 수 있으며 한 번에 하나의 플랫폼을 고려하고 QA를 할당하고 그에 따라 리소스를 개발하여 성능 문제를 처리해야 문제점에 대한 정확한 인지와 해결을 할 수 있다.
4 단계 : 분석
사용자 분석을 통해 앱 사용자 및 사용 방법을 추적할 수 있어야 한다. 사용자 행동 추적과 패턴을 분석하는 것은 성공 앱의 중요한 지표이기도 하며 이를 통해서 추가 개선할 부분을 찾는데 큰 도움이 된다. 가장 중요한 것은 모든 비즈니스 전략에 필요한 기준은 운영자의 의견이 아닌 실 사용자의 행동 데이터를 기반으로 의사 결정이 실행되어야 한다.
5 단계 : 기술적 성능
앱 기능 중 성능에 기반하는 중요한 요소가 있다면 해당 요소에 대해 성능 검증이 필요하다. 예를 들면 검색 기능에서 키워드 검색 시 얼마나 응답 속도가 성능의 지표가 될 수 있다. 이것은 기술적으로 개선할 부분을 찾는 목적이어야 한다.
6 단계 : 앱 스토어 관리
새로 개발한 모바일 앱에는 App Store 등급 및 리뷰를 정기적으로 모니터링하는 것이 중요하다. 특히 ASO 전략은 마케팅 업무의 중요하고도 기본적인 전략임을 반드시 인식해야 한다.
7 단계 : 배터리 소모량 측정
배터리를 너무 빨리 소모하는 모바일 앱은 사용자의 불만 요소가 될 수 있다. 배터리 소모의 원인은 여러 가지가 있을 수 있다. 정확한 배터리 소모량을 측정하고 사용자의 만족도를 높이기 위한 앱의 전력 소비를 최적화하는 것은 기술적 변경을 감수할 만큼의 중요한 요소이다.
8 단계 : 모바일 데이터 소비량 측정
당신의 모바일 앱이 사용자의 모든 데이터를 쓰게 만든다면 그 즉시 앱은 삭제될 것이다. 따라서 가장 데이터를 많이 사용하는 작업을 파악하고 분당 소비하는 데이터 사용량을 측정해야 한다.
결론적으로, 가장 중요한 모니터링의 목표는 효과적인 앱 개발 프로세스와 함께 신중한 모바일 앱 모니터링을 통하여 만점 리뷰에 더 가까이 다가갈 수 있도록 개발해야 한다.
모바일 앱 사용자의 단말 환경은 지속적으로 변화한다. 그리고 요구하는 기능 및 콘텐츠도 변화한다. 이러한 요구 사항은 훌륭한 분석 솔루션을 선택하여 얻은 분석 결과를 기초하여 앱을 개선하면 할수록 만족도는 올라갈 것이고 다운로드 수도 증가할 것이다.
중요한 작업은 모니터링 업무 및 분석 솔루션을 통해서 얻은 사용자 행동 정보를 기반으로 기능을 계속 개선하고, 이를 통해 신규 사용자 수, VIP 사용자 수, 연속 사용자 수가 증가할 수 있어야 한다. 이를 위해서 개선할 부분에 대한 발견을 게을리하면 안 될 것이며 항상 최신 상태를 유지하고 운영되고 있음을 사용자가 인식하게끔 해야 한다. 앱의 개선 작업 중 개인 정보 보호 같은 보안 기능은 반드시 포함하여 검토해야 하며 모든 개선 작업의 의사 결정은 운영자의 판단과 예측이 아닌 데이터에 기반한 의사 결정을 해야 함을 다시 한번 강조한다.
이렇게 긴 글의 내용 중 많은 부분이 일반적이고 상식적인 내용이 많이 있을 것이라 생각한다. 바라건대 모바일 앱을 처음부터 새롭게 시작하는 스타트업 팀들에게 정확한 프로세스 또는 한두 가지 새롭게 얻을 수 있는 정보가 전달되었기를 희망한다. 더불어 모바일 앱 비즈니스를 시작하는 팀은 개발과 운영, 그리고 마케팅 모든 작업이 개별적이지 않음을 이해하고 성공 앱 개발에 도움이 되기를 바란다.