본문 바로가기
Android

[깡쌤의 안드로이드 프로그래밍 with 자바 - 2022 - 쌤즈] 정리 6 - 모듈 수준의 그레이들

by 들풀민들레 2022. 5. 9.

책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다.

본 글은 [깡쌤의 안드로이드 프로그래밍 with 자바 - 2022 - 쌤즈] 의 내용을 발췌한 것입니다.
좀더 자세한 내용은 책 혹은 인강(www.ssamz.com)을 통해 확인해 주세요.

 

 

2.3.3. 모듈 수준의 그레이들


개발자가 그레이들을 설정한다면 대부분은 모듈 수준의 그레이들 파일입니다.

 

plugins {
	id 'com.android.application'
}
android {
	compileSdk 31
	defaultConfig {
		applicationId "com.example.androidlab"
		minSdk 21
		targetSdk 31
		versionCode 1
		versionName "1.0"
		testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
	}
	buildTypes {
		release {
			minifyEnabled false
			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguardrules.pro'
		}
	}
	compileOptions {
		sourceCompatibility JavaVersion.VERSION_1_8
		targetCompatibility JavaVersion.VERSION_1_8
	}
}
dependencies {
	implementation 'androidx.appcompat:appcompat:1.2.0'
	implementation 'com.google.android.material:material:1.3.0'
	implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
	testImplementation 'junit:junit:4.+'
	androidTestImplementation 'androidx.test.ext:junit:1.1.2'
	androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

 

위의 파일은 모듈 수준의 그레이들 파일이며, 이곳의 설정은 모듈을 개발하고 빌드할 때 아주 중요한
역할을 합니다.
≆ compileSdk: 사용하는 컴파일러 버전
위의 설정은 빌드 시 이용되는 툴 버전 정보입니다. 모듈 생성 시 기본으로 설정된 값을 변경 없이
그대로 사용하지만, 때에 따라 외부에서 작성된 코드를 안드로이드 스튜디오에 불러와서(import)
사용하는 경우, 위의 정보가 맞지 않아 빌드가 안 될 때가 있습니다. 이럴 때는 그레이들 파일을 수정하여
안드로이드 스튜디오에 설치된 툴 버전을 명시하거나 SDK 매니저를 이용하여 맞는 버전의 툴을 추가
설치해야 합니다.

  • applicationId "com.example.androidlab": 앱의 식별자
  • minSdk: 최소 지원 범위
  • targetSdk: 사용하고 있는 SDK 버전
  • versionCode: 앱의 버전

위의 4가지 설정도 중요합니다. applicationId는 앱의 식별자 정보를 설정하는 곳입니다. 안드로이드
앱은 특정 키로 식별되지 않고, 개발자가 그레이들 파일에 applicationId 속성으로 지정한 문자열로
식별합니다. 개발자 임의의 문자열이지만, 앱의 식별자이므로 세상에서 유일무이한 단어로 주어야
합니다. 만약 이 식별자 값으로 선언된 다른 앱이 구글P lay 스토어에 이미 등록되어 있다면 우리의 앱은
등록되지 않습니다. 또한, 이 식별자 값으로 다른 앱이 사용자 스마트폰에 설치되어 있다면 우리의 앱은
설치되지 않습니다.


minSdk도 중요 정보입니다. 개발자가 이 앱을 어떤 버전의 스마트폰까지 지원할 것인지에 대한
설정입니다. 위의 예에서 21로 되어있는데, 이 값은 API Level 숫자 값이며 API Level과 안드로이드
버전은 이후에 다시 정리하겠습니다. 여기서는 간단하게 21로 지정하면 Android 5.0을 지칭하며, 앱이
이 버전까지 지원한다는 의미로 알아두면 됩니다. minSdk을 21로 지정하면 우리의 앱은 21 버전 하위
스마트폰에는 설치되지 않습니다. 결국, 앱이 지원하는 최소의 버전을 명시하는 것입니다.


targetSdk은 개발 시 이용하고 있는 라이브러리 버전입니다. 31로 지정되었다면 31 버전의
라이브러리로 개발하겠다는 의미입니다. 꼭 최신 버전이 아닐 수도 있지만, 대부분은 개발 시점의 최신
버전을 지정하여 사용합니다.


versionCode는 앱의 버전 정보입니다. 스마트폰 앱들은 수시로 버전이 업데이트되므로 앱을
사용자에게 서비스하는 도중 앱이 업데이트되면, 이 정보를 변경하여 다시 구글P lay 스토어에 등록하면
됩니다.

 

  • dependencies: 앱을 위한 라이브러리 등록

그레이들 파일에서 개발자가 가장 많이 변경하는 부분이 dependencies입니다. 앱을 개발하다 보면
안드로이드 표준 라이브러리뿐만 아니라 다양한 외부 라이브러리를 이용하게 됩니다. 그런데 이런
다양한 라이브러리를 앱에서 이용하려면 꼭 그레이들 파일의 dependencies에 등록해 주어야 합니다.
그래야 그레이들이 참조할 수 있어서 정상으로 빌드합니다.

 

책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다.