모바일 디바이스용 소프트웨어 빌드
모바일 애플리케이션 개발의 정의는 모바일 앱의 생성 및 릴리스와 관련된 모든 프로세스를 포함하여 광범위할 수 있고, 앱의 코딩 및 배포를 참조하며 구체적일 수도 있습니다. 이 문서에서는 모바일 앱 개발에 대한 정의를 모두 다루며, 특히 소프트웨어 자체를 빌드하는 방법을 결정하거나 책임을 지는 사용자를 위해 모바일 앱 개발을 정의하는 데 초점을 맞춥니다.
모바일 애플리케이션 개발을 정의하려면 먼저 모바일을 정의해야 합니다. 이 경우 스마트폰, 태블릿, 노트북, 스마트 시계, e-리더, 휴대용 게임 콘솔과 같은 휴대용 전자 디바이스를 의미합니다. 애플리케이션을 통해 이러한 디바이스에 기본 제공되는 소프트웨어뿐만 아니라 해당 디바이스에서 지원하는 일반적인 운영 체제, 플랫폼 및 언어도 의미합니다. 알아가겠지만 모바일 앱 개발에 접근하는 방법은 다양하며 내려야 할 결정도 많습니다.
모바일 애플리케이션 개발 프로세스
모바일 앱을 만들고 릴리스하는 프로세스는 종종 일련의 단계로 이해됩니다. 모바일 앱 개발 프로세스의 이러한 단계에는 비즈니스, 마케팅, 디자인 및 엔지니어링을 비롯한 조직 내의 다양한 사용자 및 분야가 포함됩니다. 모바일 앱 개발 프로세스의 단계는 다음과 같습니다.
- 전략
- 계획
- 디자인
- 개발
- 테스트
- 릴리스
모바일 앱을 만드는 데 얼마나 걸리나요?
조직에서 모바일 애플리케이션을 개발하는 데 3개월에서 9개월(필요 경우 더 길게)이 걸립니다. 앱의 범위와 기능은 모두 모바일 앱 개발 프로세스의 타임라인에 영향을 미칩니다.
전략
모바일 애플리케이션 개발 프로세스는 왜 모바일 앱이 문제에 대한 좋은 솔루션이거나 기회에 대한 접근 방식이 될 수 있는지 이해한 다음 무엇을 어떻게 빌드할지 결정하는 것으로 시작됩니다. 전략 단계에서 조직은 앱의 목표와 성공 측정값을 설정하고, 시장 및 경쟁사를 분석하고, 고객의 요구 사항을 조사하고, 앱이 제공할 사용자 및 사용 사례를 결정합니다. 전략 단계에서 조직은 목표 및 요구 사항에 가장 적합한 모바일 앱 개발 플랫폼을 탐색하기 시작할 수도 있습니다. 이 단계에서 조직은 앱 릴리스에 대한 마케팅도 고려하기 시작합니다.
계획
계획 단계에서 조직은 모바일 앱 개발 프로세스의 네 가지 주요 세부 정보인 팀, 도구, 기술 및 타임라인에 동의합니다. 이제 빌드해야 하는 모바일 앱 유형, 앱을 빌드할 사용자, 사용할 플랫폼 또는 플랫폼에 대한 아이디어를 가지고 있습니다. 이 단계에서 조직은 제품 로드맵(어떤 기능을 언제 어떤 순서로, 언제 빌드할지 결정)을 배치하고 마일스톤을 설정하고, 의도한 릴리스 날짜를 충족할 수 있는 프로젝트 계획을 설계합니다. 프로세스에 대해 선택한 기술을 구현하는 방법을 이해하고 사용할 수 있는 리소스와 전문 지식을 아는 것은 해당 날짜를 결정하고 릴리스를 달성하는 데 매우 중요합니다.
디자인
모바일 앱의 모양과 기능이 디자인 단계에서 구체화되기 시작합니다. 모바일 앱 개발 프로세스의 이 단계에서 팀은 사용자 환경을 차트로 작성하고 다양한 충실도로 사용자 인터페이스와 앱의 상태를 만듭니다. 개념 증명을 제공하거나 초기 단계에서 고객 피드백을 수집하기 위해 낮은 충실도의 모의 작업으로 시작할 수 있습니다. 개발자와 엔지니어는 이 단계에 UX 및 UI 의사 결정에 대한 프로토타입 작성이나 컨설팅을 도와 팀에서 조직에서 사용하기로 선택한 플랫폼의 요구 사항 및 기술 사양을 인식하도록 할 수 있습니다. 이러한 방식으로 조직은 전체 충실도 화면으로 전환할 때 실제로 빌드할 수 있는 앱을 설계했습니다.
개발
이 컨텍스트에서 개발이라는 단어는 모바일 앱 만들기 및 릴리스와 관련된 전체 소프트웨어 개발 수명 주기 를 의미하기도 합니다. 그러나 더 일반적으로 개발은 모바일 앱 개발의 소프트웨어 개발 단계를 의미합니다. 이 단계는 이 문서의 뒷부분에서 더 완벽하게 정의할 것입니다. 현재 이 단계는 팀이 프런트 엔드, 백 엔드 및 API를 포함하여 기술 아키텍처 및 기술 스택을 설정하고, 개발 마일스톤을 설정하고, 앱의 개발 수명 주기를 결정하고, 앱을 코딩하는 단계로 가장 잘 설명됩니다.
테스트
테스트는 모바일 애플리케이션 개발 프로세스의 중요한 단계입니다. 테스트가 없으면 조직에서는 앱이 안전하고, 사용자가 필요로 하고 기대하는 방식으로 작동하며, 앱이 배포되는 위치에서 작동하는지 확신할 수 없습니다. 이 단계에서 팀은 품질 보증을 제공하여 앱이 실행될 모든 디바이스에서 앱의 유용성, 성능, 안정성 및 보안을 평가하는 테스트 사례를 만듭니다. 조직에서는 종종 앱을 스트레스 테스트하여 애플리케이션의 아키텍처가 갑작스러운 수요에 맞게 확장될 수 있는지 확인합니다.
릴리스
모바일 애플리케이션 개발 프로세스의 마지막 단계는 릴리스입니다. 앱이 배포되면 조직은 앱을 사용하는 고객에 대한 지원과 지속적인 모니터링 및 유지 관리를 제공하여 앱을 사용할 수 있고 예상대로 작동하도록 보장합니다. 앱 채택을 권장하는 마케팅 캠페인 및 동작은 종종 이 단계와 일치합니다. 조직에서 개발 수명 주기에서 처리할 수 있는 변경 범위를 벗어나는 앱을 개선하거나 변경하기로 결정한 경우 모바일 앱 개발 프로세스를 새로 시작하기로 결정할 수 있습니다.
모바일 앱 개발 프로세스의 소프트웨어 개발
개발 단계의 첫 번째 작업은 모바일 애플리케이션의 기술 아키텍처를 설정하는 것입니다. 프런트 엔드, 백 엔드 및 API를 포함하는 기술 스택과 종종 혼동되는 기술 아키텍처는 모바일 애플리케이션 개발을 제어하는 규칙과 패턴입니다.
기술 아키텍처
기술 아키텍처는 다음과 같은 세 가지 계층으로 구성되는 경우가 많습니다.
프레젠테이션 계층
고객이 보고 상호 작용하는 앱의 계층입니다. 프레젠테이션 계층에는 사용자 인터페이스와 사용자 환경을 구성하는 앱의 모든 요소가 포함됩니다.
비즈니스 계층
워크플로, 데이터 교환 및 작업을 제어하는 논리는 비즈니스 계층에 있습니다. 보안, 캐싱, 로깅 및 예외 처리와 같은 모바일 앱의 핵심 측면은 이 계층에서 처리됩니다.
데이터 계층
데이터 계층은 애플리케이션 자체의 요구 사항을 처리하여 데이터 유틸리티, 데이터 액세스 구성 요소, 도우미 또는 서비스 에이전트를 제공합니다. 데이터의 유효성을 검사하고 유지 관리하고 데이터 트랜잭션을 지원하는 계층이기도 합니다.
기술 스택
마찬가지로 기술 스택도 언급된 세 부분으로 구성됩니다. 그러나 이러한 부분은 만들기에 대한 지침이 아니라 앱을 빌드하고 지원하는 데 사용되는 특정 선택 항목을 나타냅니다.
프런트 엔드
프레젠테이션 계층과 밀접하게 대응하는 모바일 앱의 프런트 엔드를 코딩하는 데 사용되는 도구와 언어는 앱이 배포되는 디바이스에 크게 의존합니다. 많은 옵션이 있으며 대부분의 모바일 디바이스에는 기본 언어가 있습니다.
백 엔드
백 엔드는 서버에 있고 모바일 앱의 기능을 지원하는 데이터베이스 및 기타 유사한 개체를 포함하는 앱의 일부입니다. 팀은 모바일 백 엔드 기술을 선택할 때 디바이스에 덜 의존하며, 미리 빌드된 백 엔드 솔루션을 자주 찾을 수 있습니다.
API
앱은 API를 통해 백 엔드와 프런트 엔드 간에 통신하며, 이를 통해 앱이 다른 앱 및 서비스와 통합하고 상호 작용할 수도 있습니다.
그러나 팀에서 기술 스택을 선택하거나 기술 아키텍처를 설정하기 전에 먼저 빌드 중인 모바일 앱의 유형을 결정해야 합니다.
모바일 앱 유형
모바일 디바이스용 앱을 개발하는 경우 조직에는 선택할 수 있는 여러 가지 유형의 모바일 앱이 있습니다. 이 경우 모바일 앱 유형은 앱에서 사용자가 무엇을 수행할 수 있는지가 아니라 앱을 빌드하는 방법을 나타냅니다.
네이티브 앱
Android 또는 iOS와 같은 특정 디바이스 또는 플랫폼과 관련된 앱을 네이티브 앱이라고 합니다. 이러한 앱은 디바이스의 운영 체제에서 직접 실행되고, 플랫폼에서 제공하는 언어 및 프레임워크를 사용하며, 운영 체제와 관련된 스토어 또는 마켓플레이스를 통해 배포됩니다. 네이티브 앱은 일반적으로 실행 중인 디바이스의 모든 기능 및 하드웨어에 대한 모든 권한을 갖습니다.
플랫폼 간 앱
Teams는 선택한 언어 및 프레임워크로 앱에서 코딩한 다음, Xamarin 같은 플랫폼을 사용하여 앱이 실행되도록 의도된 각 운영 체제에 대한 코드를 컴파일할 수 있습니다. 플랫폼 간 앱을 호출하면 팀이 여러 디바이스에서 실행하고 코드의 상당 부분을 다시 사용할 수 있습니다. 단 하나의 플랫폼에서 개발하는 것보다 코드를 연결하려면 더 많은 작업이 필요합니다.
프로그레시브 웹앱
웹 애플리케이션과 마찬가지로 프로그레시브 웹 애플리케이션은 모바일 브라우저에서 실행되며 일반적으로 JavaScript, CSS 및 HTML5를 사용하여 빌드됩니다. 웹앱을 프로그레시브로 만드는 것은 고급 브라우저 기능을 사용하여 푸시 알림, 더 나은 터치 제스처 및 하드웨어 상호 작용을 제공하는 기능입니다. 프로그레시브 웹앱을 빌드하는 데 도움이 되는 SDK는 없지만 마켓플레이스를 거치지 않고 배포할 수 있습니다.
하이브리드 앱
네이티브 앱과 프로그레시브 웹앱이 혼합된 하이브리드 앱은 기본적으로 웹 애플리케이션을 실행하는 고유하게 코딩된 컨테이너입니다. 이 조합을 사용하면 앱이 디바이스의 기능 및 하드웨어에 더 많이 액세스하고 더 많은 유형의 디바이스에서 실행하면서 단일 코드베이스를 유지할 수 있습니다. 모든 이점을 위해 하이브리드 앱은 일반적으로 다른 유형의 모바일 앱이 수행하는 성능을 달성하지 못합니다.
빌드할 모바일 앱 유형
조직에서 빌드하도록 선택하는 모바일 앱 유형은 팀에서 사용할 수 있는 도구, 플랫폼, 프레임워크, 언어, 앱 배포, 유지 관리할 코드베이스 수, 앱이 실행되는 디바이스, 심지어는 앱이 수행할 수 있는 작업에 큰 영향을 미칩니다.
빌드할 모바일 앱 유형을 결정할 때 사용자가 누구인지와 사용자가 앱에서 무엇이 필요한지를 고려하는 것이 좋습니다. 예를 들어 주로 한 가지 유형의 디바이스 또는 운영 체제를 사용하는 경우 네이티브 앱이 가장 적합할 수 있습니다. 하드웨어 센서 또는 GPS를 사용하지 않는 앱은 프로그레시브 웹앱 또는 하이브리드 앱으로 적합할 수 있지만, 사용자의 연결 상태가 좋지 않으면 적합하지 않을 수 있습니다. 사용자가 비즈니스 또는 조직구성원인 경우 다른 모바일 전략을 고려해 볼 수 있습니다. 물론 이 모든 것은 조직 내에서 또는 파트너를 통해 사용할 수 있는 전문 지식에 달려 있습니다.
이 차트에서는 개발해야 하는 앱 유형을 고려하는 데 도움이 되는 다양한 유형의 모바일 앱 간의 차이점과 유사성을 자세히 설명합니다.
모바일 앱 유형 비교
네이티브 앱 | 플랫폼 간 앱 | 프로그레시브 웹앱 | 하이브리드 앱 | |
---|---|---|---|---|
코드베이스 수 | 플랫폼당 1개 | 하나, 하지만 각 플랫폼에 대해 컴파일됨 | 총 1개 | 하나는 앱용, 다른 하나는 컨테이너용 |
언어 및 프레임워크 | 네이티브만 | 팀의 선택 | 웹 전용 | 웹 및 네이티브 |
SDK 및 API에 대한 액세스 | 예 | 예 | 아니요 | 제한 |
성능 | 가장 높음 | 높음 | 가장 낮음 | 낮음 |
디바이스 하드웨어에 대한 액세스 | 전체 | 최대 | 아주 적음 | 일부 |
사용자 입력에 대한 반응성 | 좋음 | 좋음 | 최악 | 나쁨 |
상호 작용 | 높음 | 높음 | 가장 낮음 | 낮음 |
디바이스 리소스 사용 | 높음 | 높음 | 낮음 | 중간 |
연결 필요 | 아니요 | 아니요 | 예 | 예 |
빌드 및 유지 관리 비용 | 가장 높음 | 높음 | 가장 낮음 | 더 낮음 |
앱이 저장되는 위치 | 디바이스 | 디바이스 | 서버 | 디바이스 및 서버 |
다음을 통해 배포됨 | Marketplace | Marketplace | 브라우저 | Marketplace |
외부 승인 필요 | 예 | 예 | 아니요 | 예 |
모바일 애플리케이션 개발 플랫폼 및 소프트웨어
어떤 유형의 모바일 앱을 빌드할지(또는 어떤 유형을 고려하고 있는지) 결정했으면 모바일 앱 개발 플랫폼을 평가해야 합니다. 이러한 플랫폼은 개발, 빌드, 테스트, 디버그, 관리에 사용할 앱 개발 플랫폼이며, 경우에 따라 수명 주기 전반에 걸쳐 모바일 앱을 배포하기도 합니다. 대부분의 앱 개발 소프트웨어에는 인터페이스를 빌드하는 프런트 엔드 도구, 데이터를 처리하는 백 엔드 도구, API 도구, 테스트 도구 및 협업 및 코드 분석을 위한 도구가 포함되어 있습니다.
대부분의 모바일 애플리케이션 플랫폼은 개발자가 모바일 애플리케이션을 빌드하는 데 필요한 모든 것을 제공하는 것을 목표로 합니다. 이를 통해 개발자는 다양한 모바일 개발 소프트웨어 간에 이동하는 문제를 방지하고 코드 무결성, 비호환성 및 데이터 손실과 같은 소프트웨어 간에 발생하는 문제를 처리할 수 있습니다. 또한 모바일 앱 개발 플랫폼은 조직에서 모바일 앱을 만드는 데 필요한 비용, 시간, 리소스 및 전문 지식을 줄입니다. 일부 조직에서는 자체 플랫폼을 빌드하도록 선택하지만, 더 많은 조직에서 사용 가능한 많은 앱 개발 대안 중 하나를 선택합니다.
조직에서 사용하기에 가장 적합한 모바일 앱 개발 대안은 만들려는 모바일 앱의 유형, 코딩할 수 있는 언어 및 제공하려는 디바이스에 따라 달라집니다. 일부 모바일 앱 개발 대안은 다음과 같습니다.
- 개발자가 .NET 및 C#을 사용하여 Android 및 iOS 앱을 빌드할 수 있도록 하는 Xamarin 같은 플랫폼 간 도구.
- Android, iOS 및 Windows 모바일 앱용 단일 공유 코드베이스를 사용하는 Visual Studio Tools for Xamarin.
- Power Apps 같은 로우코드 또는 코드가 없는 도구. 로우코드는 기술 교육이나 전문 지식 없이 전문가급 앱을 빌드하는 간단한 방법입니다. 자세한 정보.
모바일 앱 개발 리소스
모바일 개발자용 Azure 문서 살펴보기
Azure에서 모바일 앱을 개발하는 데 필요한 정보를 찾습니다. 푸시 알림, 인증, 분석 및 SDK에 대해 알아봅니다.
지금 모바일 앱을 만들어 보기
Android 앱에 대한 지속적인 통합 및 배달 파이프라인을 설정합니다. Git 리포지토리에 연결하고 팀이 몇 분 안에 실행되도록 합니다.
모바일 애플리케이션 개발에 대한 질문과 대답
-
모바일 애플리케이션 개발의 정의는 모바일 앱의 생성 및 릴리스와 관련된 모든 프로세스를 포함하여 광범위할 수 있고, 앱의 코딩 및 배포를 참조하며 구체적일 수도 있습니다.
자세한 정보 -
모바일 앱 개발 프로세스의 단계는 전략, 계획, 디자인, 개발, 테스트 및 릴리스입니다.
자세한 정보 -
빌드할 모바일 앱 유형을 결정할 때 사용자가 누구인지와 사용자가 앱에서 무엇이 필요한지를 고려하는 것이 좋습니다.
자세한 정보 -
조직에서 사용하기에 가장 적합한 모바일 앱 개발 대안은 만들려는 모바일 앱의 유형, 코딩할 수 있는 언어 및 제공하려는 디바이스에 따라 달라집니다.
자세한 정보 -
조직에서 모바일 애플리케이션을 개발하는 데 3개월에서 9개월(필요 경우 더 길게)이 걸립니다.
자세한 정보 -
모바일 앱을 완전히 개발하는 데 몇 달이 걸릴 수 있지만, 모바일 앱 개발을 지금 시작하기 위한 Microsoft의 5가지 팁은 다음과 같습니다.
모바일 앱을 만들기 위한 5가지 팁 알아보기 -
DevOps는 단어 "개발"과 단어 "운영"을 결합하며, 고객에게 지속적으로 가치를 제공하기 위한 사람, 프로세스 및 기술의 통합으로 정의됩니다. DevOps 문화, 도구 및 사례는 개발, IT 운영, 품질 엔지니어링 및 보안과 같은 서로 단절되었던 역할들이 조율하고 협업하여 더 나은 안정적인 모바일 앱을 생산할 수 있도록 지원합니다. DevOps는 개발팀이 고객의 요구에 더 즉각 반응하고, 개발하는 앱에 대한 신뢰를 높이고, 팀의 비즈니스 목표를 더 빠르게 달성할 수 있도록 지원합니다.
DevOps에 관한 자세한 정보 -
개발자는 일반적으로 배포, 관리 및 업그레이드의 용이성, 표준 인터페이스 및 API를 사용하는지, 모니터링/관리 시스템과 통합된 이벤트 관리를 위한 공식 시스템이 있는지, 잘 문서화된 변경 관리 프로세스가 있는지, 하이브리드 기능이 지원되는지 여부와 같은 클라우드 공급자의 기술 기능 및 프로세스에 집중합니다.
클라우드 공급자 선택에 대한 자세한 정보