25.09.17 / JUN
P1. 숫자로 본 안드로이드 앱 비즈니스
안드로이드 앱 마켓 규모
| 항목 | 수치/추정치 | 출처 & 설명 |
|---|---|---|
| Google Play 매출 (소비자 지출) | 약 US$55.5 ~ US$58.1 Billion | 2023년 대비 증가 추세로, 2024년 지출(spending)이 이 범위로 예측됨. TekRevol+2SQ Magazine+2 |
| Android 유저의 앱 지출 (비용 소비) | 약 US$65 Billion 예상 (2025년 전체 모바일 앱 지출 내 Android 쪽) | Android / Google Play의 전체 앱 소비(spending) 전망치 중 하나. Backlinko |
| 앱 다운로드 수 | 매년 수십 ~ 수백십억 건 다운로드 | Google Play는 매년 엄청난 다운로드 건수를 보이며, 2024-2025년 사이 계속 증가 전망. TekRevol+1 |
| 앱 수 (Google Play Store 개수) | 약 3.95 million 개 앱 (또는 약 4백만 개) | 2024년 기준 Google Play에 등록된 앱 수. BankMyCell+1 |
개발자 실제 수익 구조 및 추정수익
| 항목 | 내용 |
|---|---|
| 수수료 구조 (Google vs 개발자) | Google Play는 일반적으로 앱 판매 및 인앱 결제에 대해 70:30 또는 특정 조건 하에 **15-30%**의 수수료를 취함. 즉 개발자는 약 **70%**를 수령 가능. Appinventiv+1 |
| 광고 수익, 구독, 인앱 결제 중심 | 많은 앱들이 무료 다운로드 + 인앱 구매 및 구독 모형(Subscription)을 사용하여 매출을 창출함. 일부는 광고 기반(ad-supported). SQ Magazine+2TekRevol+2 |
| 개발자에게 돌아가는 금액 규모 | 예를 들어, Google Play 소비자 앱 지출이 $55.5-58.1B이라면, 개발자는 수수료 제외 후 약 $38B ~ $40B 내외 가능성이 있음 (대략적 계산: $58B × 0.7 = $40.6B). 다만, 이 금액이 모든 개발자에게 균등히 돌아가는 건 아님. |
| 지역 및 카테고리별 편차 큼 | 게임 앱, 일부 프리미엄/인앱 구매 중심 앱이 전체 수익의 큰 부분을 차지. 사용자 지출이 많은 국가(미국, 일본, 한국, 유럽 등)에서는 개발자 수익이 더 높음. |
유의사항
- “소비자 지출(consumer spending)”과 “개발자가 받는 금액(net revenue)”은 다름. Google 수수료, 세금, 환율, 광고 플랫폼 수수료 등이 차감됨.
- 무료 앱 + 광고 기반 모델은 다운로드 많아도 광고 지면/클릭 강화가 어려우면 수익 낮을 수 있음.
- 구독 및 인앱 구매 중심 앱이 아니면, 많은 다운로드에도 금전적 보상이 크지 않은 경우 많음.
요약
- Google Play의 2024년 소비자 지출은 약 550-580억 달러 수준
- 개발자는 수수료 제외 후 약 70% 정도의 금액을 받을 수 있음 → 이론상 약 $38-40B 규모 가능
- 그러나 실제로 받는 수익은 앱 종류, 지역, 사용자 행동(구매/구독) 등에 따라 크게 달라짐
P2. 안드로이드 앱 개발 시작하기
1) 필수 도구 설치
- Android Studio 설치(Mac/Win/Linux 지원) → 설치 마법사에서 Android SDK / SDK Platform / Emulator / USB Driver(Windows) 함께 설치.
- JDK: 최신 Android Studio에는 내장(OpenJDK)되어 별도 설치 보통 불필요.
- Google 계정: 추후 Play Console(유료, 1회 등록비) 배포에 필요.
- https://news.samsung.com/global/samsung-one-ui-3-takes-user-experience-to-new-heights-with-android-11
- https://www.samsung.com/sec/one-ui/


2) 새 프로젝트 생성
- Android Studio → New Project → 템플릿 “Empty Activity”(또는 “Empty Compose Activity” 권장) 선택.
- 패키지명(예:
com.example.myapp), 언어(Kotlin 권장), Minimum SDK(보통 API 24~26) 지정 → Finish. - Gradle 동기화가 끝나면 기본 앱 골격이 준비됨.
3) UI & 코드 작성 (Jetpack Compose 예시)
app/src/main/java/.../MainActivity.kt에서 화면 구성:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
androidx.compose.material3.Text("Hello, Android!")
}
}
}
- 리소스는
app/src/main/res/에(아이콘, 문자열 등). - 의존성 추가는
build.gradle.kts(Module: app)에서 관리.
4) 실행: 에뮬레이터 또는 실제 기기
- 에뮬레이터: Toolbar의 Device Manager → Create Virtual Device → Pixel 기기 + 최신 Android 이미지 선택 → Run ▶️.
- 실제 기기:
- 휴대폰에서 개발자 옵션 활성화(‘빌드 번호’ 7회 탭) → USB 디버깅 ON
- PC와 USB 연결(Win은 OEM 드라이버 필요할 수 있음)
- 상단 기기 선택 드롭다운에서 디바이스 선택 → Run ▶️
5) 서명 & 빌드 산출물 만들기 (테스트/스토어용)
- 앱 서명 키 생성:
Android Studio → Build > Generate Signed Bundle / APK…- Android App Bundle (AAB) 선택(Play 스토어 권장 형식)
- 신규 Key store 생성(경로, 비번, 키 별칭 기록 보관)
- Build Variant: 보통
release선택 → AAB 생성. - 내부 테스트(스토어 외 배포): APK도 같이 생성 가능.
6) Google Play 배포
- Play Console(개발자 등록) → 새 앱 생성.
- 앱 세팅: 스토어 등록 정보(이름/설명/스크린샷/등급/정책/개인정보처리방침 URL) 작성.
- 앱 서명/릴리즈: Production 또는 Internal testing 트랙에 AAB 업로드 → 심사 제출.
- 내부/폐쇄 테스트로 먼저 배포 후, 단계적 Rollout 권장.
✅ 체크리스트
- Android Studio 설치 + SDK 구성 완료
- 새 프로젝트(Empty/Compose) 생성 & 기본 화면 표시
- 에뮬레이터 or 실제 기기에서 실행 성공
- 서명 키스토어 생성 & AAB 빌드
- Play Console 등록정보 작성 & 테스트 트랙 배포
🛠️ 잦은 문제 및 해법
- 에뮬레이터 느림 → 하드웨어 가속(AVD 설정에서 Graphics: Hardware), x86_64 이미지 사용.
- USB 디바이스 미인식(Win) → 제조사 USB 드라이버 설치, 케이블 변경.
- 버전 코드/네임 충돌 →
build.gradle의versionCode는 릴리즈마다 증가. - 심사 거절 → 개인정보/권한(카메라, 위치 등) 사용 이유를 스토어 설명과 앱 내 권한 안내에 명확히 표기.
P3. 안드로이드 앱 샘플 프로젝트 활용하기

안드로이드 앱 샘플 프로젝트 중 하나를 이용해서 나의 안드로이드 스튜디오 환경에서 앱을 빌드하고 실행할 수 있습니다.
https://github.com/junsang-dong/android-2025-compose-samples
1단계: 안드로이드 스튜디오 정상 작동 확인
안드로이드 새 프로젝트를 생성한 뒤 Run 버튼으로 빌드 & 런 과정에서 에뮬레어터 등이 정상 작동하는지부터 확인합니다.
2단계: 간단한 버튼 및 텍스트 출력 앱 빌드
버튼을 생성하고, 버튼을 누르면 Hello World, Hello Vibe, Hello MyName 등의 텍스트를 랜덤하게 출력하는 앱을 빌드하고 실행합니다.
3단계: 나의 프로젝트에 샘플 프로젝트 가져오기
빈 프로젝트 폴더 생성 후 Cursor에서 아래 프롬프트로 빌드 시작
아래 안드로이드 앱 샘플 프로젝트를
나의 안드로이드 스튜디오 프로젝트로 가져와서
Gradle과 관련된 오류 요소를 확인한 뒤
앱을 빌드하고 에뮬레이터에서 실행해줘
내가 설치하거나 설정해야 할 사항이 있으면 알려줘Jetsnack
https://github.com/junsang-dong/android-2025-compose-samples/tree/main/JetsnackJetsnack is a sample snack ordering app built with Jetpack Compose.
To try out this sample app, use the latest stable version of Android Studio. You can clone this repository or import the project from Android Studio following the steps here.
This sample showcases:
How to implement a custom design system
Custom layout
Animation
빌드 & 런 화면




P4. 안드로이드 프로젝트와 Gradle
1. 정의
- Gradle은 안드로이드 프로젝트를 **자동으로 빌드(Build)**해주는 도구예요.
- “빌드”란? → 사람이 작성한 소스코드 + 리소스를 **실행 가능한 앱(.apk, .aab)**으로 만드는 과정.
- 안드로이드 스튜디오(AS)는 내부적으로 Gradle을 이용해 앱을 컴파일/패키징/테스트/배포합니다.
2. 역할
- 코드 컴파일: Kotlin/Java 코드를 실행 파일로 변환
- 리소스 처리: XML 레이아웃, 이미지, 문자열 등을 앱에 포함
- 의존성 관리(Dependencies): 외부 라이브러리 자동 다운로드 및 연결
- 빌드 변형(Build Variants):
debug,release등 상황별로 다른 빌드 설정 - 배포 준비: 앱 서명, 최적화, 번들 생성
3. 구성 요소
안드로이드 프로젝트에는 보통 2가지 주요 Gradle 스크립트 파일이 있어요:
- 프로젝트 수준 build.gradle
- 전체 프로젝트 공통 설정
- 예: Gradle 플러그인 버전, 저장소(repository)
buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:8.0.2" } } - 모듈 수준 build.gradle (app 모듈)
- 실제 앱 빌드 설정, 의존성 관리
- 예: SDK 버전, 라이브러리 추가
plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdk 34 defaultConfig { applicationId "com.example.myapp" minSdk 24 targetSdk 34 versionCode 1 versionName "1.0" } } dependencies { implementation "androidx.core:core-ktx:1.12.0" implementation "androidx.appcompat:appcompat:1.6.1" }
4. 의존성 추가 예시
예를 들어, 앱에서 네트워크 통신을 하고 싶다면 Retrofit 라이브러리를 Gradle에 추가합니다:
dependencies {
implementation "com.squareup.retrofit2:retrofit:2.9.0"
}
→ Gradle이 인터넷에서 자동으로 다운로드 → 앱에 포함 → 바로 사용 가능!
5. 입문자가 기억할 포인트
- Gradle = 앱 빌드 자동화 도구
build.gradle파일 = 앱 설정서 + 라이브러리 목록- 외부 라이브러리는
dependencies에 추가 후Sync만 하면 끝 - 앱을 실행할 때마다 Gradle이 알아서 빌드 → 실행 파일 생성
✅ 요약
Gradle은 안드로이드 앱 개발의 엔진 같은 존재예요.
입문자는 “앱을 실행할 때 뒤에서 앱을 만들어주는 도구” 정도로 이해하고, 주로 의존성 추가 부분을 자주 다루게 될 거예요.
📑 Gradle 입문자용 치트시트 (Android)
🔑 핵심 개념
- Gradle: 안드로이드 앱을 자동으로 빌드(코드+리소스 → 실행 파일)하는 도구
- build.gradle(Project): 프로젝트 전체 공통 설정 (Gradle 플러그인, 저장소)
- build.gradle(Module: app): 앱 빌드 설정 (SDK 버전, 의존성, 패키지 정보)
- Dependencies: 외부 라이브러리 추가 →
Sync Now하면 자동 다운로드/연결 - Build Variants:
debug(개발/테스트),release(배포용)
🛠️ 자주 쓰는 코드 예시
1) 프로젝트 수준 build.gradle
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:8.0.2"
}
}
2) 모듈(app) 수준 build.gradle
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
namespace "com.example.myapp"
compileSdk 34
defaultConfig {
applicationId "com.example.myapp"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(
"proguard-android-optimize.txt"
), "proguard-rules.pro"
}
}
}
3) 의존성 추가 (Dependencies)
dependencies {
// 기본 AndroidX 라이브러리
implementation "androidx.core:core-ktx:1.12.0"
implementation "androidx.appcompat:appcompat:1.6.1"
// 네트워크 라이브러리 (Retrofit)
implementation "com.squareup.retrofit2:retrofit:2.9.0"
// JSON 파싱 (Moshi)
implementation "com.squareup.moshi:moshi:1.15.0"
// 코루틴 (비동기 처리)
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"
}
✅ 기억하기
- Gradle = 앱 빌드 엔진
- 앱 실행/빌드 → Gradle이 자동으로 APK/AAB 생성
- 가장 자주 쓰는 작업 = 라이브러리 추가 (
dependencies) - 수정 후에는 반드시 Sync Now 실행
⚠️ 안드로이드 Gradle 주요 오류와 해법
안드로이드 스튜디오에서 프로젝트를 빌드(Build) & 실행(Run) 할 때, Gradle 관련 오류는 입문자가 자주 맞닥뜨리는 장벽 중 하나예요. 여기서는 자주 발생하는 주요 오류 유형 + 원인 + 해결책을 정리해드릴게요.
1. Gradle Sync Failed
- 원인:
- 인터넷 연결 불안정
- 저장소(repository) 주소 문제 (예: jcenter 폐지)
- Gradle 버전/플러그인 버전 불일치
- 해결책:
build.gradle(Project)의repositories를google(), mavenCentral()로 수정File > Invalidate Caches / Restart실행- Android Studio/Gradle 최신 버전으로 업데이트
2. Could not find… 라이브러리/의존성 못 찾음
- 원인:
dependencies에 버전이 틀렸거나 존재하지 않는 라이브러리 입력- 저장소에 없는 의존성을 지정
- 해결책:
- 라이브러리 최신 버전 확인 (Maven Central, 공식 문서 참고)
Sync Now다시 시도- 오타나 버전 호환성 확인
3. Failed to install the following SDK components
- 원인:
- 필요한 SDK/빌드 도구가 설치되지 않음
- 해결책:
Tools > SDK Manager→ 필요한 SDK Platform / Build Tools 체크 후 설치gradle.properties에 프록시 설정 확인(회사 네트워크 환경일 경우)
4. Execution failed for task ‘:app:compileKotlin’
- 원인:
- Kotlin 플러그인 버전 ↔ Gradle 플러그인 버전 불일치
- 해결책:
build.gradle(Project)에서classpath "com.android.tools.build:gradle:X.X.X"와org.jetbrains.kotlin:kotlin-gradle-plugin버전 맞추기- Android Studio →
Help > Check for Updates로 최신 업데이트
5. Out of Memory (OOM) / Java heap space
- 원인:
- Gradle 빌드 시 메모리 부족
- 해결책:
gradle.properties에 추가:org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8- 필요시 4096m까지 확장
6. Manifest merger failed
- 원인:
- 여러 라이브러리가 동일한 권한/속성을 정의해 충돌
- 해결책:
- 오류 로그에 나온 충돌 항목 확인
AndroidManifest.xml에tools:replace="..."속성 추가해 병합 규칙 지정- 사용하지 않는 라이브러리 제거
7. Minimum/Target SDK 문제
- 원인:
compileSdk,minSdk,targetSdk버전 불일치
- 해결책:
app/build.gradle에서:android { compileSdk 34 defaultConfig { minSdk 24 targetSdk 34 } }- Android Studio 권장 버전 따라가기
8. Gradle version mismatch
- 원인:
- Gradle 래퍼(wrapper) 버전과 Android Gradle Plugin 버전 불일치
- 해결책:
gradle/wrapper/gradle-wrapper.properties확인 → 권장 버전으로 수정- 공식 호환성 표 참고
✅ 입문자용 해결 순서 체크리스트
- Sync Now 다시 눌러보기
- Gradle 캐시 삭제 후 빌드:
./gradlew clean build- Android Studio →
Build > Clean Project
- 버전 확인: Gradle Plugin, Kotlin, compileSdk, dependencies 최신화
- SDK Manager 확인: 필요한 플랫폼/빌드 툴 설치
- IDE 재시작 + Invalidate Caches
👉 정리:
Gradle 오류는 대부분 버전 불일치 / SDK 누락 / 의존성 문제에서 발생합니다.
입문자라면 “에러 로그 → 키워드 확인 → Gradle 설정 파일 점검 → Sync/Update” 순서로 접근하면 해결이 빨라집니다.