Android

작성일 2026.07.03 수정일 2026.07.03 조회 55

기본 정보

  • 명칭: Android
  • 개발사: Google
  • 분류: 모바일 운영체제
  • 기반: Linux Kernel
  • 주요 사용 기기: 스마트폰, 태블릿, TV, 웨어러블, 차량용 기기
  • 주요 개발 언어: Kotlin, Java
  • 주요 개발 도구: Android Studio
  • 앱 배포 방식: Google Play Store, APK, AAB
  • 관련 기술: Kotlin, Java, Android Studio, Gradle, PWA

개요

Android는 Google이 개발한 모바일 운영체제이다.

스마트폰, 태블릿, TV, 웨어러블, 자동차 시스템 등 다양한 기기에서 사용되며, 전 세계에서 가장 널리 사용되는 모바일 운영체제 중 하나이다.

Android 앱은 일반적으로 Android Studio를 사용해 개발하며, Kotlin 또는 Java를 주로 사용한다.

웹 개발 관점에서는 Android Chrome, PWA, 모바일 반응형, WebView, 푸시 알림, 파일 업로드, 앱 링크 등과도 관련이 깊다.


Android 구조

사용자

↓

Android 기기

↓

Android OS

↓

앱

↓

Linux Kernel

↓

하드웨어

앱 실행 구조

사용자 터치

↓

Android 이벤트 처리

↓

Activity 실행

↓

View 렌더링

↓

화면 표시

주요 특징

  • 오픈소스 기반 운영체제
  • 다양한 제조사 기기 지원
  • Google Play Store 중심 앱 배포
  • Kotlin과 Java 기반 앱 개발
  • 높은 커스터마이징 가능성
  • 다양한 화면 크기 지원
  • 위젯, 알림, 백그라운드 작업 지원
  • 카메라, 위치, 블루투스, 센서 등 하드웨어 접근 가능
  • APK 또는 AAB 형태로 배포 가능

Android 앱 개발 방식

Android 앱 개발은 크게 세 가지 방식으로 나눌 수 있다.

방식설명
Native AppKotlin, Java로 Android 앱 직접 개발
Cross Platform AppFlutter, React Native 등으로 개발
Web App / PWAHTML, CSS, JavaScript 기반으로 개발

Native App

Native App은 Android 환경에 맞춰 직접 개발하는 앱이다.

주요 기술은 다음과 같다.


Kotlin 예제

fun main() {
    println("Hello Android")
}

Jetpack Compose

Jetpack Compose는 Android의 선언형 UI 프레임워크이다.

데이터

↓

Composable Function

↓

상태 변경

↓

UI 자동 갱신

예시:

@Composable
fun Greeting(name: String) {
    Text(text = "Hello $name")
}

XML Layout

Android에서는 XML을 사용해 화면을 구성할 수도 있다.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello Android" />

XML Layout은 기존 Android 프로젝트에서 많이 사용되며, Jetpack Compose 이전의 대표적인 UI 구성 방식이다.


Activity

Activity는 Android 앱의 화면 단위이다.

앱 실행

↓

MainActivity

↓

화면 표시

Kotlin 예시:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

Fragment

Fragment는 Activity 안에서 재사용 가능한 UI 조각이다.

Activity

├── Fragment A
├── Fragment B
└── Fragment C

Fragment는 화면 일부를 교체하거나, 태블릿처럼 큰 화면에서 여러 영역을 나눌 때 자주 사용된다.


Android Studio

Android Studio는 Google 공식 Android 개발 도구이다.

주요 기능:

  • Android 앱 개발
  • Kotlin / Java 코드 작성
  • 에뮬레이터 실행
  • 디버깅
  • Gradle 빌드
  • APK / AAB 생성
  • UI 미리보기
  • 성능 분석
  • Google Play 배포 준비

Android 프로젝트 구조

MyApp/

├── app/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   ├── res/
│   │   │   └── AndroidManifest.xml
│   └── build.gradle
│
├── build.gradle
└── settings.gradle

AndroidManifest.xml

AndroidManifest.xml은 Android 앱의 핵심 설정 파일이다.

앱 이름, 권한, Activity, Service, Receiver 등을 등록한다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:theme="@style/Theme.MyApp"
        android:label="MyApp">

        <activity android:name=".MainActivity" />

    </application>

</manifest>

Gradle

Gradle은 Android 프로젝트의 빌드 도구이다.

라이브러리 추가, 앱 버전 설정, SDK 설정, 빌드 설정 등을 담당한다.

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    namespace 'com.example.myapp'
    compileSdk 35

    defaultConfig {
        applicationId 'com.example.myapp'
        minSdk 23
        targetSdk 35
        versionCode 1
        versionName '1.0'
    }
}

앱 배포 과정

앱 개발

↓

테스트

↓

빌드 생성

↓

AAB 생성

↓

Google Play Console 업로드

↓

검토

↓

출시

APK와 AAB

항목설명
APKAndroid 앱 설치 파일
AABGoogle Play 배포용 앱 번들
Debug APK개발 테스트용 빌드
Release APK실제 배포용 빌드

최근 Google Play 배포에서는 AAB 형식을 주로 사용한다.


Android 권한 관리

Android는 개인정보와 보안을 위해 권한 시스템을 사용한다.

대표 권한:

권한설명
INTERNET인터넷 사용
CAMERA카메라 접근
RECORD_AUDIO마이크 접근
ACCESS_FINE_LOCATION정확한 위치 정보
READ_MEDIA_IMAGES이미지 접근
POST_NOTIFICATIONS알림 권한
BLUETOOTH_CONNECT블루투스 연결

런타임 권한

일부 권한은 앱 실행 중 사용자에게 직접 허용을 받아야 한다.

앱 실행

↓

권한 필요

↓

사용자에게 요청

↓

허용 또는 거부

↓

기능 실행

Android와 iOS 비교

AndroidiOS
Google 중심Apple 중심
다양한 제조사 기기Apple 기기 중심
Kotlin, Java 사용Swift, Objective-C 사용
Google Play 배포App Store 배포
커스터마이징 자유도 높음생태계 통제 강함
기기 다양성 높음기기 최적화 우수
APK 설치 가능App Store 중심 설치

Android와 PWA

Android에서는 PWA를 비교적 잘 지원한다.

Chrome 브라우저에서 웹사이트를 홈 화면에 추가하면 앱처럼 사용할 수 있다.

웹사이트

↓

Chrome

↓

홈 화면에 추가

↓

앱처럼 실행

Android PWA 기본 구성

프로젝트/

├── index.html

├── manifest.json

├── service-worker.js

└── icons/

Web App Manifest

Android PWA에서는 manifest.json 설정이 중요하다.

{
  "name": "My App",
  "short_name": "MyApp",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#222222",
  "icons": [
    {
      "src": "/icons/icon-192.png",
      "sizes": "192x192",
      "type": "image/png"
    }
  ]
}

Android WebView

WebView는 Android 앱 안에서 웹페이지를 보여주는 컴포넌트이다.

Android App

↓

WebView

↓

HTML / CSS / JavaScript

활용 예시:

  • 하이브리드 앱
  • 관리자 페이지 앱
  • 웹 기반 서비스 앱
  • 내부 업무용 앱

WebView 주의사항

  • JavaScript 사용 여부 설정 필요
  • 파일 업로드 처리 필요
  • 뒤로가기 처리 필요
  • 외부 링크 처리 필요
  • 보안 설정 주의
  • HTTPS 사용 권장
  • 앱과 웹 간 통신 설계 필요

모바일 반응형 설정

Android Chrome에서도 viewport 설정은 중요하다.

<meta name="viewport" content="width=device-width, initial-scale=1.0">

게임처럼 확대/축소를 막고 싶을 때는 다음처럼 사용하기도 한다.

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

단, 접근성 측면에서는 확대 제한을 신중하게 사용해야 한다.


Android에서 Canvas 사용

Android 웹 게임에서 Canvas를 사용할 때는 다음을 고려해야 한다.

  • 터치 입력
  • 화면 비율
  • devicePixelRatio
  • 저사양 기기 성능
  • 브라우저별 차이
  • 스크롤 방지
  • 사운드 자동 재생 제한
const dpr = Math.min(window.devicePixelRatio || 1, 2);

canvas.width = 420 * dpr;
canvas.height = 640 * dpr;

ctx.setTransform(dpr, 0, 0, dpr, 0, 0);

Android 앱 개발 흐름

아이디어

↓

화면 설계

↓

Android Studio 프로젝트 생성

↓

Kotlin / Java 개발

↓

에뮬레이터 테스트

↓

실기기 테스트

↓

Google Play 배포

Android 웹앱 개발 흐름

HTML

↓

CSS 반응형

↓

JavaScript 기능 구현

↓

PWA 설정

↓

Android Chrome 테스트

↓

홈 화면 추가 테스트

장점

  • 다양한 기기에서 사용 가능
  • 오픈소스 기반
  • 앱 배포 방식이 비교적 유연함
  • Kotlin으로 생산성 높은 개발 가능
  • Google 서비스와 연동 용이
  • PWA 지원이 좋음
  • 하드웨어 접근 범위가 넓음

단점

  • 기기 종류가 많아 테스트 범위가 넓음
  • 제조사별 OS 커스터마이징 차이 존재
  • 화면 크기와 해상도 대응 필요
  • 백그라운드 정책 변화에 주의 필요
  • 저사양 기기 최적화 필요
  • 보안 권한 관리가 중요함

대표 활용 분야

  • 모바일 앱
  • 모바일 게임
  • 쇼핑 앱
  • 금융 앱
  • 배달 앱
  • 지도 앱
  • 헬스케어 앱
  • 사내 업무 앱
  • PWA
  • 하이브리드 앱
  • WebView 앱

실무 메모

  • Android 앱 개발은 Kotlin과 Android Studio 학습이 기본이다.
  • 기존 프로젝트 유지보수에서는 Java와 XML Layout도 자주 만난다.
  • 신규 앱은 Jetpack Compose 사용을 검토할 수 있다.
  • 화면 크기와 해상도 대응은 필수이다.
  • 실제 기기 테스트가 중요하다.
  • 권한 요청은 필요한 시점에만 하는 것이 좋다.
  • Google Play 배포는 AAB 형식을 주로 사용한다.
  • WebView 앱은 보안 설정을 반드시 점검해야 한다.
  • PWA는 Android에서 iOS보다 지원 범위가 넓은 편이다.
  • 모바일 게임은 터치 입력, 성능, 화면 비율을 먼저 확인한다.
  • 이미지, 사운드, 영상 리소스는 모바일 환경에 맞게 최적화한다.
  • 오래 실행되는 작업은 WorkManager 같은 백그라운드 작업 방식을 검토한다.

Android와 함께 사용하는 기술


대표 활용 사례

  • Android 스마트폰 앱 개발
  • 모바일 게임 출시
  • PWA 홈 화면 앱
  • 쇼핑몰 모바일 앱
  • Canvas 기반 웹 게임
  • WebView 기반 하이브리드 앱
  • 위치 기반 서비스
  • 푸시 알림 앱
  • 음악 플레이어 앱
  • 사내 업무용 앱
  • IoT 제어 앱

관련 문서


출처

  • Android Developers
  • Android Studio Documentation
  • Kotlin Documentation