안드로이드 앱 만들기 - 첫 프로젝트로 시작하는 실전 개발

Activity와 Fragment로 화면 구성
AAB 형식 배포 필수, 개발자 인증 절차 강화
Gradle 빌드 속도 20-30% 향상

안드로이드 앱 개발의 첫걸음은 직접 앱을 만들어보는 것입니다. 이론도 중요하지만, 실제로 프로젝트를 생성하고 화면을 구성하며 빌드해보는 경험이 학습에 큰 도움이 됩니다. 이 글에서는 Android Studio에서 첫 프로젝트를 만들고, Activity와 Fragment로 화면을 구성하는 전 과정을 안내합니다.

Activity와 Fragment의 역할

안드로이드 앱은 ActivityFragment라는 두 가지 핵심 컴포넌트로 화면을 구성합니다. Activity는 사용자가 보는 하나의 화면 전체를 담당하는 기본 단위입니다. 앱을 실행하면 가장 먼저 나타나는 화면이 MainActivity이며, 여기서 사용자와 상호작용이 시작됩니다.

Fragment는 Activity 안에서 동작하는 작은 화면 조각입니다. 하나의 Activity 내에 여러 Fragment를 배치하여 복잡한 UI를 구성할 수 있습니다. 예를 들어, 탭 화면을 만들 때 각 탭마다 다른 Fragment를 보여주는 방식으로 구현합니다. Fragment는 재사용이 가능하여, 같은 Fragment를 여러 Activity에서 사용할 수 있습니다.

2025년 현재 안드로이드 앱 개발은 Kotlin 언어를 주로 사용하며, UI는 XML 레이아웃이나 Jetpack Compose로 구현합니다. Compose는 선언형 UI로 코드가 간결하지만, 기본 개념 이해를 위해서는 XML 방식부터 학습하는 것이 좋습니다.

첫 프로젝트 생성하기

Android Studio를 설치했다면 첫 프로젝트를 만들어보겠습니다. Android Studio를 실행하고 “New Project”를 클릭합니다. 여러 템플릿이 나타나는데, “Empty Activity” 템플릿을 선택하세요. 이 템플릿은 기본 Activity 하나만 포함되어 있어 학습용으로 적합합니다.

프로젝트 설정 항목:

  • Name: 앱 이름 (예: MyFirstApp)
  • Package name: 고유 식별자 (예: com.example.myfirstapp)
  • Save location: 프로젝트 저장 경로
  • Language: Kotlin 선택
  • Minimum SDK: API 21(Android 5.0) 이상 권장

Minimum SDK는 앱이 지원하는 최소 안드로이드 버전입니다. API 21을 선택하면 전체 안드로이드 기기의 99% 이상을 지원합니다. 너무 낮은 버전을 선택하면 호환성은 높아지지만 최신 기능을 사용할 수 없고, 너무 높은 버전을 선택하면 설치 가능한 기기가 줄어듭니다.

“Finish” 버튼을 누르면 프로젝트가 생성됩니다. Android Studio가 Gradle 빌드 시스템을 설정하고 필요한 라이브러리를 다운로드하는데, 초기 설정이라 몇 분 정도 걸릴 수 있습니다. 2025년 기준 Gradle은 build cache 기능이 도입되어 빌드 속도가 20-30% 향상되었습니다.

MainActivity와 XML 레이아웃 이해하기

프로젝트가 생성되면 왼쪽 프로젝트 패널에 여러 파일과 폴더가 보입니다. 가장 먼저 살펴볼 파일은 MainActivity.ktactivity_main.xml입니다. MainActivity.kt는 Kotlin 코드 파일로, 앱의 동작 로직을 담당합니다. activity_main.xml은 XML 레이아웃 파일로, 화면에 보이는 UI를 정의합니다.

MainActivity.kt 파일을 열어보면 onCreate() 메서드가 보입니다. 이 메서드는 Activity가 생성될 때 자동으로 호출되며, 여기서 setContentView(R.layout.activity_main)를 통해 XML 레이아웃을 연결합니다. R.layout.activity_main은 activity_main.xml 파일을 가리킵니다.

activity_main.xml 파일에는 TextView가 하나 있어 “Hello World!” 텍스트를 표시합니다. 이 텍스트를 바꾸거나, Button을 추가하는 등 자유롭게 수정할 수 있습니다. Android Studio의 Layout Editor를 사용하면 드래그 앤 드롭으로 UI를 구성할 수 있어 초보자도 쉽게 화면을 만들 수 있습니다.

간단한 버튼을 추가해보겠습니다. activity_main.xml에서 Design 탭을 클릭하고, Palette에서 Button을 드래그하여 화면에 배치합니다. 버튼의 텍스트는 Attributes 패널에서 수정할 수 있습니다. 버튼 클릭 이벤트는 MainActivity.kt에서 findViewById()로 버튼을 찾아 setOnClickListener()를 설정하면 됩니다.

Fragment 생성 및 연결하기

Fragment를 추가하려면 먼저 Fragment 클래스를 생성해야 합니다. 프로젝트 패널에서 앱 패키지를 마우스 오른쪽 클릭하고, New → Fragment → Fragment (Blank)를 선택합니다. Fragment 이름을 입력하면 Fragment 클래스 파일과 XML 레이아웃 파일이 자동으로 생성됩니다.

Fragment는 Activity와 비슷하게 onCreateView() 메서드에서 레이아웃을 연결합니다. Fragment의 XML 레이아웃에 원하는 UI를 구성한 후, MainActivity에서 FragmentManager를 사용해 Fragment를 추가합니다.

Fragment 추가 방법 (코드):

val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
val myFragment = MyFragment()
fragmentTransaction.add(R.id.fragment_container, myFragment)
fragmentTransaction.commit()

이 코드는 MyFragment를 fragment_container라는 ID를 가진 레이아웃에 추가합니다. fragment_container는 activity_main.xml에 미리 정의된 FrameLayout이나 FragmentContainerView입니다. replace()를 사용하면 기존 Fragment를 새로운 Fragment로 교체할 수 있습니다.

Fragment는 여러 화면을 전환할 때 유용합니다. 예를 들어, 하단 네비게이션 바를 구성할 때 각 탭마다 다른 Fragment를 보여주는 방식으로 구현합니다. 이렇게 하면 Activity는 하나만 사용하고, Fragment만 교체하여 화면을 전환할 수 있어 메모리 효율이 좋습니다.

빌드 및 앱 실행하기

작성한 코드를 실행하려면 빌드를 해야 합니다. 상단 툴바에서 초록색 재생 버튼(Run)을 클릭하면 앱이 빌드되고 에뮬레이터나 실제 기기에서 실행됩니다. 에뮬레이터를 사용하려면 AVD Manager에서 가상 기기를 생성해야 합니다.

Gradle은 안드로이드 앱의 빌드 시스템입니다. build.gradle 파일에서 라이브러리 종속성, 빌드 옵션, 버전 정보 등을 관리합니다. 2025년 현재 Kotlin DSL을 사용한 build.gradle.kts 형식도 많이 사용되며, 타입 안전성과 IDE 지원이 강화되었습니다.

첫 실행 시 빌드 시간이 다소 걸릴 수 있습니다. 빌드가 완료되면 에뮬레이터 화면에 앱이 나타나고, 작성한 UI가 표시됩니다. 버튼을 클릭하거나 Fragment를 전환하며 직접 동작을 확인해보세요. 코드를 수정한 후 다시 Run 버튼을 누르면 변경사항이 반영됩니다.

빌드 관련 팁:

  • Instant Run: 코드 수정 후 전체 빌드 없이 빠르게 반영 (일부 제한)
  • Build Variants: Debug와 Release 빌드 구분, Release는 배포용으로 최적화
  • APK vs AAB: 2021년부터 Google Play는 AAB(Android App Bundle) 형식 제출 필수

앱 배포 준비 및 주의사항

앱을 Google Play Store에 배포하려면 몇 가지 준비가 필요합니다. 2025년 8월부터 Google은 개발자 인증 절차를 강화하여, Android 개발자 콘솔과 Play Console에서 인증이 필수화되었습니다. 11월부터 사전 체험이 시작되었으니, 미리 인증을 완료하는 것이 좋습니다.

앱 배포 시 AAB(Android App Bundle) 형식으로 빌드해야 합니다. APK는 더 이상 Play Store에 제출할 수 없으며, AAB는 기기별로 최적화된 APK를 자동 생성하여 앱 크기를 줄여줍니다. Build → Generate Signed Bundle / APK → Android App Bundle을 선택하여 AAB 파일을 생성합니다.

권한 관리도 중요합니다. 앱이 카메라, 위치, 저장소 등의 권한을 사용하려면 AndroidManifest.xml에 권한을 선언하고, 런타임에 사용자에게 동의를 요청해야 합니다. 백그라운드 위치 권한 사용은 심사 거절의 주요 사유이므로, 꼭 필요한 경우에만 요청하고 명확한 사용 목적을 제시해야 합니다.

Google Play 정책을 준수해야 합니다. 특히 개인정보 보호, 권한 최소화, 콘텐츠 가이드라인을 반드시 확인하세요. 도박 앱은 출시가 불가능하며, 금융 앱은 공식 기관 제출만 승인됩니다. 사용자 신고 및 차단 기능을 포함하는 것도 권장됩니다.

자주 묻는 질문 (FAQ)

❓ Activity와 Fragment의 차이점은 무엇인가요?

Activity는 화면 전체를 담당하는 기본 단위이며, Fragment는 Activity 내에서 동작하는 재사용 가능한 UI 조각입니다. 하나의 Activity에 여러 Fragment를 배치하여 복잡한 화면을 구성할 수 있습니다.

❓ 첫 프로젝트는 어떤 템플릿을 선택해야 하나요?

Empty Activity 템플릿을 권장합니다. 기본 Activity 하나만 포함되어 있어 학습하기 좋으며, 필요한 기능을 직접 추가하며 개발 과정을 이해할 수 있습니다.

❓ AAB 형식은 무엇이고 왜 필요한가요?

AAB(Android App Bundle)는 Google Play Store 배포 시 필수인 파일 형식입니다. 기기별로 최적화된 APK를 자동 생성하여 앱 크기를 줄여주며, 2021년부터 APK 제출이 불가능해졌습니다.

❓ 개발자 인증은 언제 해야 하나요?

2025년 8월부터 개발자 인증이 필수화되었으며, 11월부터 사전 체험이 시작되었습니다. Google Play에 앱을 등록하기 전에 미리 인증을 완료해야 하므로, 개발 초기에 진행하는 것이 좋습니다.

❓ XML 레이아웃과 Jetpack Compose 중 무엇을 사용해야 하나요?

초보자는 XML 레이아웃으로 기본 개념을 익힌 후 Compose로 전환하는 것을 권장합니다. Compose는 코드가 간결하고 최신 기술이지만, XML은 기존 자료가 많고 직관적이어서 학습하기 좋습니다.

링크가 복사되었습니다