Idealim
article thumbnail
Published 2021. 8. 24. 11:38
[Android] 모듈 Android/Android with Kotlin

/* 본 게시물은 ' ' 의 내용을 토대로 작성되었습니다. */

참고 자료

[Android developer - Android 라이브러리 만들기] : https://developer.android.com/studio/projects/android-library?hl=ko 

[Multi Module로 Android project 구성하기] : https://leveloper.tistory.com/201


#모듈

1. 모듈이란?

모듈은 안드로이드 공식 사이트에 다음과 같이 정의되어 있다.

 모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있습니다. 프로젝트에는 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈이 다른 모듈을 종속 항목으로 사용할 수 있습니다. 각 모듈은 개별적으로 빌드, 테스트 및 디버그 할 수 있습니다.

모듈은 소스 파일 및 빌드 설정으로 구성되어 개별적으로 빌드, 테스트 디버그를 할 수 있다.

2. 안드로이드 스튜디오 모듈의 종류

안드로이드 스튜디오에서 제공하는 모듈은 다양하지만 그 중 대표적인 것들만 살펴보자.

Application

우리가 처음으로 프로젝트를 만들고 생성되는 app 모듈은 Applcation 모듈이다. 빌드의 결과로 APK 파일을 생성한다. 

 

Android Library

안드로이드 프로젝트에서 지원되는 모든 파일 형식을 포함할 수 있다. 다른 Application 모듈의 종속 항목으로 추가할 수 있다. 빌드의 결과로 AAR 파일이 생성된다.

 

Java or Kotlin library

이름 그대로 순수한 Java 혹은 Kotlin 으로만 이루어진 모듈이다. 안드로이드 프레임워크로부터 독립적인 기능을 구현할 때 사용한다. 빌드의 결과로는 JAR 파일이 생성된다.

 

여기서 궁금한 라이브러리와 모듈 차이는?

모듈은 구성 단위, 구성 부분이고 라이브러리는 도서관을 뜻한다. 우리는 자주 사용하게 되는 코드를 하나의 함수나 클래스라는 단위로 묶어 코드를 재사용한다. 이러한 함수나 클래스들을 모아서 라이브러리 또는 모듈이라 부른다. 즉, 라이브러리와 모듈은 동일한 개념으로 재사용이 가능한 코드의 집합으로 볼 수 있다.

 

3. 모듈을 왜 사용할까?

보통 특정 기능을 하나의 모듈로 묶어서 모듈화를 진행한다.대표적으로 DB에 접근하는 DB 모듈, 사용자와 상호작용하는 Presenter 등을 예로 들 수 있다. 이렇게 모듈로 나눠서 개발하는 프로젝트를 멀티 모듈 프로젝트라 한다. 그렇다면 왜 기능들을 모듈로 나누어서 개발할까?

첫 번째, 모듈은 프로젝트의 구조화를 할 수 있어 유지보수하기 쉽다. 

다수의 개발자들과 협업해서 하나의 큰 프로젝트를 만든다고 가정해보자. 이러한 큰 사이즈의 프로젝트는 코드도 굉장히 많고 복잡한 구조로 이루어져있을 것이다. 또한, 프로젝트를 진행하면 할 수록 각 코드 간의 의존성이 높아지고, 그 동안 개발했던 규칙을 깨는 실수들이 나오기 쉽다. 멀티 모듈을 사용한다면 build.gradle 에 사용할 모듈의 의존성을 직접 추가함으로써 필요한 모듈만 사용할 수 있게 한다.

 

두 번째, 빌드 속도가 빨라진다.

모듈을 이용하면 프로젝트를 빌드할 때 변경된 모듈만 빌드하기 때문에 모듈이 많을수록 빌드 시간이 단축된다.

 

 

반응형
profile

Idealim

@Idealim

읽어주셔서 감사합니다. 잘못된 내용이 있으면 언제든 댓글로 피드백 부탁드립니다.