코린이 탈출기
chapter 11.2 - Gradle (안드로이드 빌드 도구) 본문
chapter 11.2 - Gradle (안드로이드 빌드 도구)
50HEE 2021. 6. 14. 12:05프로젝트를 만들 때 여러 가지 요소들을 다 묶어서 하나의 산출물로 만들어 내는 것을 빌드(Build)한다라고 합니다.
빌드를 하기 위해 사용하는 도구의 이름을 Gradle이라고 합니다.
Gradle은 안드로이드 앱 프로젝트의 개발 레벨(코드를 작성하는 단계)에서의 전반적인 설정을 관리하는 파일입니다. 즉, 빌드 과정에서 필요한 정보들을 제공하는 파일 시스템의 이름입니다.
그중에서 앞에 다룬 어떤 라이브러리를 사용하는지에 관한 의존성을 보여주는 dependencies 목록을 관리하는 파일입니다.
Gradle Scripts 내부에 있는 build.gradle 파일에 대해 알아보겠습니다.

build.gradle 파일은 뒤에 괄호 안의 이름만 다르게 2개의 파일이 존재합니다.
Project로 보면 Project 내부에 하나 app 내부에 하나가 있다는 것을 알 수 있습니다.

build.gradle(Project: ActionBarCustom) - Project 내부에 있는 파일입니다. 이 파일은 특수 상황에서만 편집을 합니다. 한 가지 사용법을 알려드리면 repositories가 2 파트로 되어있습니다. 이 곳에는 라이브러리를 사용할 때 어딘가에 업로드된 코드를 가져오는 것인데, 어디에서 검색할 것인지를 설정하는 곳입니다. 즉, 라이브러리 검색 출처를 확장하는 곳입니다.

build.gradle(Module: ActionBarCustom.app) - app 내부에 있는 파일입니다. 주로 편집하는 파일입니다. 대부분의 일반적인 상황, 세팅, 코드를 작성하는 곳입니다. 이전 글에서는 확장팩(extensions - 자동완성 코드)을 작성하였었고, dependencies에는 라이브러리를 설치합니다.
주로 사용하는 build.gradle(Module: ActionBarCustom.app) 파일의 주요 항목에 대해 설명하겠습니다.
plugins - 확장팩(extensions - 자동완성 코드)을 작성하였습니다.

Sdk(Software Development Kit) - 개발 도구를 의미합니다.
SdkVersion(compileSdkVersion, buildToolsVersion, targetSdkVersion) - 이 항목 옆에는 주로 30으로 되어있습니다.(2021.06 기준) 30이라는 숫자는 가상 기기를 만들 당시 OS를 선택을 할 때 보면 가장 최신 버전입니다. 즉, 30으로 작성하는 코드는 최신 버전으로 맞춰서 산출물이 만들어지고 있다는 의미입니다. 만약 너무 오래된 Sdk로 설정이 되어있다면 최신 버전으로 맞춰서 코드를 맞춰주는 것이 좋습니다.
minSdkVersion - 프로젝트를 만들 때 설정하는 최저 지원 버전을 의미합니다. 위 코드를 보면 16으로 되어있는데 16은 JellyBean 버전으로 이 버전까지는 커버를 한다는 의미입니다. 이 밑으로는 지원하지 않는다는 의미입니다. 이 부분은 가장 낮은 버전부터 시작을 해서 라이브러리를 설치할 때 낮은 버전이 지원되지 않을 경우 그때 조금씩 올려주는 것을 추천합니다.
versionCode - 숫자를 적어주는 곳으로 지금 사용하는 앱이 몇 번째 버전인 것인지를 순서로 나타내는 실질적인 값입니다. 앱을 플레이스토어에 올리거나 업데이트를 할 때 어떤 APK 파일이 더 최신 버전인지를 구별해주는 기준값으로 사용됩니다. 한 번 올린 버전 코드는 다시 올릴 수 없습니다. 그래서 만약 APK를 올릴 경우에는 습관적으로 버전을 먼저 올려주는 것이 시간 낭비를 줄일 수 있습니다. 나중에는 앱을 만들고 로딩을 기다리는 시간이 길어져서 만약 잘못 올리면 기다린 시간을 버릴 수 있기 때문에 습관적으로 해주는 것이 좋습니다.

versionName - 0.0.0과 같은 방식으로 사용자에게 보여주기 위한 버전의 이름입니다. 순서의 경우 대규모 패치.중간규모.마이너 업데이트입니다. 대규모 패치는 완전히 앱을 갈아엎어주는 경우, 중간규모는 큰 기능을 추가하는 경우, 마이너 업데이트는 버그 수정이나 안정화 업데이트를 하는 경우를 말합니다. 예시로 카카오톡의 경우에는 9.3.6(2021.06 기준)으로 되어있습니다.
dependencies - 프로젝트에서 사용하는 외부 라이브러리 목록을 명시하는 공간입니다. 라이브러리 추가 설치한다는 것을 의존성을 주입한다라고도 표현합니다. 목록에 적힌 라이브러리들과 실제 설치된 라이브러리를 비교해서 부족한 것은 다운로드하여서 사용해줍니다.
장점으로는 이전에는 압축 파일을 다운로드하여서 설치하여 사용하였지만, Gradle > dependencies를 사용함으로써 코드 몇 줄만 작성하여 돌리면 라이브러리 설치가 끝이 나기 때문에 라이브러리 설치가 쉬워졌습니다. 그리고 이전에는 라이브러리를 설치하면 라이브러리 코드 또한 다 올려주었어야 했는데, 이제는 Gradle > dependencies에 라이브러리 목록만 작성하면 알아서 코드를 설치하여 실행되기 때문에 편의성과 속도가 매우 향상되었습니다.
'인터넷 강의 > 클래스101 - 비전공자들을 위한 나만의 안드로이드 앱 만들기' 카테고리의 다른 글
| chapter 11.4 - 이미지 관련 라이브러리 활용 - PhotoView (0) | 2021.06.14 |
|---|---|
| chapter 11.3 - 이미지 관련 라이브러리 활용 -CircleImageView (0) | 2021.06.14 |
| chapter 11.1 - 라이브러리 (0) | 2021.06.14 |
| chapter 10.5 - 커스텀 액션바 만들기 (0) | 2021.06.14 |
| chapter 10.4 - drawable에 xml 추가하기 (0) | 2021.06.08 |