첫 Android 프로젝트를 생성하면, Android Studio는 여러 가지 프로젝트 보기 모드를 제공합니다. Project 모드는 프로젝트의 실제 물리적 디렉터리 구조를 보여주므로, 초보자가 프로젝트의 전체적인 구조를 파악하는 데 매우 적합합니다. 아래에서는 Project 모드를 기준으로 프로젝트의 핵심 파일과 폴더를 분석해 보겠습니다.


외부 디렉터리 (프로젝트 루트 디렉터리)
1. app 디렉터리
프로젝트의 거의 모든 코드와 리소스 파일이 이 디렉터리에 모여 있습니다. 이후 개발 작업은 주로 이 디렉터리에서 이루어집니다.
2. gradle 디렉터리
Gradle Wrapper 설정 파일이 포함되어 있습니다. Gradle Wrapper를 사용하면 미리 Gradle을 수동으로 다운로드할 필요가 없으며, 로컬 캐시 상태에 따라 자동으로 다운로드 여부를 결정합니다.
Android Studio는 기본적으로 Gradle Wrapper를 활성화하지 않습니다. 활성화하려면 네비게이션 바에서
File → Settings → Build, Execution, Deployment → Gradle로 이동하여 설정할 수 있습니다.
3. .gitignore
지정한 디렉터리나 파일을 버전 관리에서 제외하는 데 사용합니다. 이 파일을 열면 다음과 같은 항목들이 일반적으로 제외 대상으로 포함되어 있습니다:
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
4. build.gradle
프로젝트 전역 Gradle 빌드 스크립트로, 일반적으로 수정할 필요가 없습니다.
5. gradle.properties
전역 Gradle 설정 파일입니다. 여기서 설정한 속성은 프로젝트 내의 모든 Gradle 컴파일 스크립트에 영향을 미칩니다.
6. build 디렉터리
컴파일 시 자동으로 생성되는 파일들이 포함되어 있으며, 특별히 신경 쓸 필요는 없습니다.
7. MyApplication.iml
IntelliJ IDEA(Android Studio의 기반 플랫폼)가 자동으로 생성하는 파일로, 이 프로젝트가 IDEA 프로젝트임을 식별하는 데 사용됩니다. 수동으로 수정하지 마세요.
8. gradlew 및 gradlew.bat
명령줄 인터페이스에서 Gradle 명령을 실행하는 데 사용합니다:
gradlew: Linux / Mac 시스템용gradlew.bat: Windows 시스템용
9. local.properties
로컬 Android SDK 경로를 지정하며, 내용은 Android Studio가 자동으로 생성합니다. SDK 위치가 변경되지 않는 한 수정할 필요가 없습니다.
sdk.dir=C\:\\Users\\YY\\AppData\\Local\\Android\\Sdk
10. settings.gradle
프로젝트에 포함된 모든 모듈을 지정하는 데 사용합니다. 현재 app 모듈만 있으므로 파일에도 app만 포함되어 있습니다. 모듈 추가는 보통 자동으로 이루어지므로 수동으로 수정할 일은 거의 없습니다.
핵심: app 디렉터리 상세 설명
app 디렉터리에는 실제 개발에 필요한 모든 핵심 콘텐츠가 포함되어 있습니다:
1. build
외부 build 디렉터리와 유사하게 컴파일 시 자동 생성되는 파일들이 포함되어 있습니다. 내용이 더 많고 복잡하지만 신경 쓸 필요는 없습니다.
2. libs
서드파티 .jar 파일을 저장합니다. 이 디렉터리에 넣은 JAR 파일은 자동으로 빌드 경로에 추가됩니다.
3. androidTest
Android Test 테스트 케이스를 작성하여 프로젝트에 대한 자동화 테스트를 수행하는 데 사용합니다.
4. java
모든 Java / Kotlin 코드가 위치하는 곳입니다. 디렉터리를 펼치면 시스템이 자동 생성한 MainActivity 파일을 볼 수 있습니다.

5. res
리소스 디렉터리로, 프로젝트에서 사용되는 모든 이미지, 레이아웃, 문자열 등의 리소스가 포함되어 있습니다:
| 리소스 유형 | 저장 위치 |
|---|---|
| 이미지 | drawable 디렉터리 |
| 레이아웃 | layout 디렉터리 |
| 문자열 | values 디렉터리 |
잘 분류되어 있어 지저분해 보이지 않습니다.
6. AndroidManifest.xml
Android 프로젝트 전체의 설정 파일입니다. 4대 컴포넌트(Activity, Service, BroadcastReceiver, ContentProvider)는 모두 이곳에 등록해야 하며, 앱에 필요한 권한도 여기서 선언합니다.

7. test
Unit Test 테스트 케이스를 작성하는 데 사용하며, 또 다른 자동화 테스트 방식입니다.
8. .gitignore
app 모듈 내의 지정된 디렉터리나 파일을 버전 관리에서 제외하는 데 사용하며, 외부 .gitignore와 유사한 역할을 합니다.

9. app.iml
IntelliJ IDEA가 자동으로 생성하는 파일로, 신경 쓰거나 수정할 필요가 없습니다.
10. build.gradle (모듈 레벨)
app 모듈의 Gradle 빌드 스크립트로, 종속성 라이브러리, 컴파일 버전, 애플리케이션 ID 등 빌드와 관련된 수많은 설정이 포함되어 있으며 개발 중 가장 자주 수정하는 설정 파일 중 하나입니다.
11. proguard-rules.pro
프로젝트 코드의 난독화 규칙을 지정합니다. 정식 출시용으로 패키징할 때 난독화를 활성화하면 코드가 역컴파일되어 크랙당하는 것을 효과적으로 방지할 수 있습니다.
프로젝트 분석 및 디렉터리 구조