앱에 사용된 Open source의 License 표시하기

이번 포스팅에서는 오픈소스의 라이센스를 표시하는 법에 대해 알아보도록 하겠습니다.

# 오픈소스 라이센스

https://en.wikipedia.org/wiki/Open_Source_Initiative

오픈소스는 오픈소스 소프트웨어(Open Source Software, OSS)의 줄임말입니다. OSS는 소스가 공개되어 있어 누구나 자유롭게 확인, 수정, 배포할 수 있습니다. 이용하는데 비용이 들지 않고 필요에 따라 마음대로 변형하여 사용할 수 있기 때문에 현대의 많은 소프트웨어들이 OSS에 의존하고 있습니다.

그런데 OSS에는 라이센스, 그러니까 저작권이 존재합니다. 자유롭게 사용할 수는 있지만 그 대신 라이센스로 제한하는 사항은 필히 준수해야 할 필요가 있지요. 오픈소스 라이센스는 수많은 종류가 있는데요 2020년 기준 인기 Top 10 라이센스는 다음과 같다고 합니다.

출처: https://www.whitesourcesoftware.com/resources/blog/open-source-licenses-trends-and-predictions/

출처: https://www.whitesourcesoftware.com/resources/blog/open-source-licenses-trends-and-predictions/

각 라이센스마다 제한사항도 다릅니다만, 주로 많이 사용되는 Apache, MIT, BSD 라이센스의 경우 카피라이트를 표시해주는 것 만으로 자유롭게 사용할 수 있습니다.

출처: https://snyk.io/learn/open-source-licenses/

출처: https://snyk.io/learn/open-source-licenses/

안드로이드 앱을 만들다보면 수많은 오픈소스를 사용해야 합니다. 당장 androidx에 포함되는 수많은 라이브러리들부터가 오픈소스들이지요. 따라서 앱에 사용된 오픈소스의 라이센스를 앱 어딘가에 고지해야 할 필요가 있는데, 구글에서는 오픈소스의 라이센스를 편하게 고지할 수 있도록 OSS Licenses Gradle Plugin을 공개했습니다. 이 플러그인을 추가하면 새로운 액티비티의 형태로 라이센스 내용을 고지할 수 있습니다.

# OSS Licenses Gradle Plugin 적용하기

우선은 project 레벨의 build.gradle에 다음과 같이 플러그인을 추가합니다.

1
2
3
4
5
buildscript {
    dependencies {
        classpath "com.google.android.gms:oss-licenses-plugin:0.10.4"
    }
}

다음은 app레벨의 build.gradle에 다음과 같이 플러그인을 추가합니다.

1
2
3
4
5
6
7
plugins {
    id 'com.google.android.gms.oss-licenses-plugin'
}

dependencies {
    implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
}

그러면 남은것은 OssLicensesMenuActivitystartActivity로 실행시키면 됩니다. 여기서는 버튼을 하나 만들어서 새로운 액티비티를 띄우게 해 보겠습니다. setActivityTitle을 사용하면 액티비티에 제목을 지정할 수도 있습니다.

1
2
3
4
binding.button.setOnClickListener {
    OssLicensesMenuActivity.setActivityTitle("오픈소스 라이센스 목록")
    startActivity(Intent(this, OssLicensesMenuActivity::class.java))
}

이렇게해서 앱에 사용된 오픈소스 라이센스를 표시하는 법에 대해 알아보았습니다.

Built with Hugo
Theme Stack designed by Jimmy