☕Java/☕모바일 앱 개발 (안드로이드)

안드로이드 프로젝트의 핵심 파일 완벽 가이드: MainActivity.java & XML 구조 이해하기

itstory(Booho) 2025. 3. 1. 18:54
728x90

안드로이드 앱 개발을 시작하기 전에 프로젝트의 기본 구조를 이해하는 것이 중요합니다.

안드로이드 스튜디오에서 프로젝트를 생성하면 여러 폴더와 파일이 자동으로 생성되는데, 각각의 역할을 알고 있어야 효율적으로 개발할 수 있습니다.

 

1. 안드로이드 프로젝트 생성하기

안드로이드 앱을 개발하려면 먼저 새로운 프로젝트를 생성해야 합니다. 아래 절차에 따라 프로젝트를 생성하고 초기 설정을 완료하세요.

1) 새로운 프로젝트 만들기

  1. 안드로이드 스튜디오 실행
    • 안드로이드 스튜디오를 실행한 후 "Start a new Android Studio project"를 클릭합니다.
  1. 프로젝트 템플릿 선택
    • 다양한 템플릿이 제공되지만, 기본적인 프로젝트를 생성하려면 "Empty Activity"를 선택하고 "Next"를 클릭합니다.

  1. 프로젝트 기본 정보 입력
    • 프로젝트 이름(Project Name): 앱의 이름을 입력합니다. (예: MyFirstApp)
    • 패키지 이름(Package Name): 앱의 고유 식별자로, 일반적으로 com.example.myapp 형태로 설정됩니다.
      • 예: com.mycompany.myapp
    • 저장 위치(Save location): 프로젝트를 저장할 디렉터리를 지정합니다.
    • 프로그래밍 언어 선택(Language): Java를 선택합니다.
    • Minimum API Level 선택: 앱이 지원할 최소 안드로이드 버전을 설정합니다.
      • 일반적으로 API 23 (Android 6.0, Marshmallow) 이상을 선택하는 것이 좋습니다.
  2. 프로젝트 생성 및 빌드
    • "Finish" 버튼을 클릭하면 프로젝트가 생성됩니다.
    • 프로젝트가 생성되면 Gradle 빌드가 자동으로 실행되며, 몇 분 정도 소요될 수 있습니다.
    • 빌드가 완료되면 안드로이드 프로젝트의 기본 화면이 나타납니다.

💡 Tip:

  • 패키지 이름은 변경할 수 없으므로 신중하게 설정하세요.
  • Minimum API Level이 너무 낮으면 최신 기능을 사용할 수 없고, 너무 높으면 구형 기기에서 앱을 실행할 수 없습니다.
  • Gradle 빌드가 너무 오래 걸리면 인터넷 연결을 확인하고, 필요 없는 패키지는 제외하는 것이 좋습니다.

이제 프로젝트가 생성되었으므로, 다음 단계에서 안드로이드 프로젝트 폴더 구조를 이해하는 과정을 진행합니다!


2. 안드로이드 프로젝트 폴더 구조 이해

프로젝트를 생성하면 기본적으로 다음과 같은 폴더 구조가 나타납니다.

MyApp/  (프로젝트 루트 폴더)
│── app/  (앱 모듈)
│   ├── manifests/  (AndroidManifest.xml 포함)
│   ├── java/  (Java 소스 코드 폴더)
│   ├── res/  (리소스 파일 - 레이아웃, 이미지, 문자열 등)
│── build.gradle  (프로젝트 빌드 설정 파일)
│── gradle.properties  (Gradle 설정 파일)

1) manifests 폴더

  • AndroidManifest.xml: 앱의 중요한 설정을 정의하는 파일
    • 앱의 패키지 이름
    • 권한 설정 (예: 인터넷 사용, 위치 정보 접근 등)
    • 메인 액티비티(MainActivity) 설정

2) java 폴더

  • 자바(Java) 소스 코드가 포함된 폴더
  • com.example.myapp 패키지 내부에 주요 클래스 파일이 생성됨
  • MainActivity.java는 앱이 처음 실행될 때 동작하는 메인 액티비티 파일

3) res 폴더 (리소스 폴더)

  • 앱에서 사용하는 UI 요소들이 저장되는 폴더
  • 주요 서브 폴더:
    • layout/: 화면 레이아웃 파일(XML) 저장 (activity_main.xml 등)
    • drawable/: 이미지, 아이콘 파일 저장
    • values/: 문자열(strings.xml), 색상(colors.xml), 스타일(styles.xml) 저장

4) Gradle 파일

  • build.gradle (Module: app): 앱의 의존성, 컴파일 SDK 버전, 빌드 설정 등을 관리
  • gradle.properties: 빌드 최적화를 위한 설정값 저장
  • settings.gradle: 프로젝트 내 포함된 모듈을 정의

3. 주요 파일 이해하기

1) MainActivity.java

안드로이드 앱이 실행될 때 가장 먼저 실행되는 메인 액티비티(MainActivity) 파일입니다.

package com.example.myapp; // 패키지 선언 (현재 프로젝트의 고유 이름)

import android.os.Bundle; // 안드로이드에서 액티비티 상태 저장을 위한 클래스
import androidx.appcompat.app.AppCompatActivity; // 상위 액티비티 클래스를 상속받기 위한 라이브러리

public class MainActivity extends AppCompatActivity { // 메인 액티비티 클래스 선언
    @Override // 부모 클래스의 메서드를 재정의 (Override)한다는 의미
    protected void onCreate(Bundle savedInstanceState) { // 앱이 실행될 때 호출되는 메서드
        super.onCreate(savedInstanceState); // 부모 클래스의 onCreate 메서드를 실행하여 기본 설정을 초기화
        setContentView(R.layout.activity_main); // activity_main.xml 레이아웃을 화면에 표시
    }
}

🔍 코드 설명

  1. package com.example.myapp; → 프로젝트의 패키지명을 정의합니다.
  2. import android.os.Bundle; → 안드로이드 앱의 데이터를 저장하고 복원하는 데 사용되는 클래스입니다.
  3. import androidx.appcompat.app.AppCompatActivity; → 액티비티(Activity)를 상속받아 앱의 기본 화면을 구성할 수 있도록 합니다.
  4. public class MainActivity extends AppCompatActivity { → MainActivity 클래스를 생성하고, AppCompatActivity를 상속받아 액티비티 기능을 확장합니다.
  5. @Override → 부모 클래스의 onCreate 메서드를 재정의(Override)하고 있습니다.
  6. protected void onCreate(Bundle savedInstanceState) { → onCreate 메서드는 앱이 실행될 때 가장 먼저 호출되는 메서드입니다.
  7. super.onCreate(savedInstanceState); → 부모 클래스의 onCreate를 호출하여 기본 액티비티 설정을 유지합니다.
  8. setContentView(R.layout.activity_main); → activity_main.xml 레이아웃을 이 액티비티의 화면으로 설정합니다.

2) activity_main.xml

화면(UI)을 정의하는 XML 파일입니다. 앱의 첫 화면(레이아웃)을 설정합니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

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

🔍 코드 설명

  1. <LinearLayout> → 화면 요소를 가로 또는 세로 방향으로 정렬하는 컨테이너입니다.
    • android:layout_width="match_parent" → 부모(화면 크기)에 맞게 가로 길이를 설정합니다.
    • android:layout_height="match_parent" → 부모(화면 크기)에 맞게 세로 길이를 설정합니다.
    • android:orientation="vertical" → 내부 요소를 세로 방향으로 정렬합니다.
  2. <TextView> → 화면에 텍스트를 표시하는 UI 요소입니다.
    • android:layout_width="wrap_content" → 텍스트 내용에 맞게 가로 크기를 설정합니다.
    • android:layout_height="wrap_content" → 텍스트 내용에 맞게 세로 크기를 설정합니다.
    • android:text="Hello, Android!" → 앱 실행 시 화면에 표시될 기본 텍스트입니다.

정리

  • MainActivity.java는 앱의 메인 로직을 담당하는 코드입니다.
  • activity_main.xml은 앱의 첫 화면을 디자인하는 파일입니다.
  • setContentView(R.layout.activity_main);를 통해 Java 코드와 XML 레이아웃을 연결합니다.
  • LinearLayout을 사용하여 UI 요소를 세로 방향으로 배치합니다.

이제 스토쿠 게임의 UI를 추가하여 기능을 확장할 수 있습니다!

 

728x90
반응형