Android (안드로이드)

[Android] OSS Licenses / 라이선스란? / 앱에 라이선스 표시하기 / OSSLicensesPlugin

Oscar:) 2024. 12. 20. 20:00
728x90

 

 

 

라이선스에 대해 알아보고

앱에 사용된 OSS Licenses를 표시해본다.

 

OSS : 오픈 소스 소프트웨어 라이선스

(Open Source Software Licenses)

 

 

 


 

 

✅ 라이선스

 

라이선스는 소프트웨어나 콘텐츠의 사용·배포·수정 등에 대한 법적 권한과 조건을 명시한 문서다.

 

즉, 개인이나 기업이 만든 소프트웨어를 다른 사람들이 사용할 수 있도록 허용하는 대신,

특정 조건을 지키도록 요구하는 약속이라고 볼 수 있다.

 

'라이센스'라고 부르는 사람도 많은데, 한국어로는 '라이선스'가 표준이다.

 

라이선스의 주 목적은 저작자의 권리를 보호하면서,

타인들에게는 재사용·배포 허가로 인한 생산성 향상이다.

 

 

 

 

 

 

✅ 소프트웨어 라이선스 종류

 

라이선스도 여러 종류가 있는데, 그 중에서도 대표적인 몇 가지만 알아보자.

 

 

 

🎈 오픈소스 라이선스

 

소스 코드를 공개하고 다른 사람들이 사용할 수 있도록 허용하는 대표적인 라이선스다.

우리가 앱에 적용하는 대부분의 라이브러리들이 여기에 해당한다.

 

사용·배포·수정을 가능하게 하지만, 일부 조건이 존재하며 각 라이선스 종류마다 다르다.

 

라이선스 설명 조건
Apache 2.0 사용·수정·배포 제한 없음 저작권 명시
수정 시 변경 사항 명시
라이선스 사본 명시
MIT 사용·수정·배포 제한 없음 저작권 명시
BSD 사용·수정·배포 제한 없음 저작권 명시
GPL 사용 제한 없음 저작권 명시
수정·배포 시 소스 코드 공개
LPGL 사용 제한 없음 저작권 명시
수정 시 소스 코드 공개

 

개인적으로는 Apache 2.0 라이선스를 제일 많이 본 것 같다.

 

 

 

 

 

🎈 상업용 라이선스

 

소프트웨어를 유료로 판매하거나 배포하는 경우에 해당한다.

사용자는 라이선스를 구매해야 하며, 저작권자의 허락 없이 복제·수정·배포가 금지된다.

 

예시로는 소프트웨어 공급 외주업체에서 소프트웨어를 구매해오는 상황이 있겠다.

 

 

 

 

 

🎈 독점 라이선스

 

소스 코드 비공개 상태소프트웨어의 사용권만을 제공한다.

소스 코드가 비공개이기에 당연히 복제·수정·배포될 수 없다.

 

예시로는 Windows, MacOS 등이 있겠다.

 

 

 

 

 

🎈 라이선스 위반 시 문제점

 

법적 문제 : 저작권 침해로 소송이 발생할 수 있다.

재배포 중단 : 라이선스를 위배한 소프트웨어는 배포가 중단된다.

 

 

 

 

 

 

✅ 앱에 OSS 라이선스 표시하기

 

우리는 앱을 개발할 때 Android 내장 라이브러리(JetPack 등)와 외부 라이브러리(Github 참조 등)를

덕지덕지 붙여가며 오픈 소스 플랫폼의 수혜를 받고 있다.

 

하지만 이 오픈 소스들을 자유롭게 사용하는 대신, 라이선스에 명시된 조건을 지켜줘야 한다.

 

시중에서 널리 사용되고 있는 앱들 또한 오픈 소스 라이선스를 앱 내에 명시하고 있다.

 

 

🎈 유튜브

 

 

 

 

🎈 야놀자

 

 

등 웬만한 앱에는 모두 명시하고 있는 것을 확인할 수 있다.

 

 

 

이제 우리의 앱에도 오픈 소스 라이선스를 명시해보자.

 

 

 


 

 

 

일단 내 앱에서 어떤 라이브러리를 사용하는지 알아봐야 한다.

 

 

External Libraries만 펼쳐도 어질어질하다.

그만 알아보자..라고 할 뻔 했지만, 구글에서 이걸 직접 다 적으라고 할 리가 없다.

 

구글은 개발자 편의성을 고려하여 플러그인을 제공해준다.

 

 

오픈소스 고지 포함  |  Google Play services  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 오픈소스 고지 포함 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google Play 서비스에는 오픈소스 라

developers.google.com

 

 

 

일단 Gradle 파일에 다음 내용들을 추가해준다.

 

build.gradle.kts(Project 수준)

buildscript {
  ...
  dependencies {
    classpath("com.google.android.gms:oss-licenses-plugin:0.10.6")
  }
}

 

 

build.gradle.kts(Module :app 수준)

plugins {
  id("com.google.android.gms.oss-licenses-plugin")
}

...

dependencies {
  implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
}

 

 

Sync 해주면, 플러그인에서 제공해주는 전용 Activity를 사용할 수 있다.

 

 

MainActivity.kt

button.setOnClickListener {
  startActivity(Intent(this, OssLicensesMenuActivity::class.java))
}

 

OssLicensesMenuActivity로 화면 전환을 해주기만 하면 된다.

 

 

 

그리고 매니페스트 파일에서 위 Activity를 선언한 뒤, 내 앱의 테마를 적용해주자.

 

AndroidManifest.xml

<activity
  android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
  android:theme="@style/Theme.AppCompat" />
<activity
  android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
  android:theme="@style/Theme.AppCompat" />

 

 

 

 

 

🎈 결과

 

 

앱에 적용된 오픈 소스 라이브러리가 자동으로 리스트업 되었다.

 

혹시나 상단의 제목이 마음에 들지 않는다면 변경해줄 수도 있다.

OssLicensesMenuActivity.setActivityTitle("제목")

 

 

위 리스트의 아무 라이브러리나 클릭해보면

 

 

위 처럼 라이선스가 명시된 웹페이지 링크가 표시된다.

 

링크로 표시되는 라이브러리도 있고,

화면에 바로 라이선스가 표시되는 라이브러리도 있다.

(대충 라바라 라는 뜻)

 

어쨌든, 해당 링크를 클릭하면

 

 

웹 페이지로 이동되며 라이선스가 표시되는 것을 확인할 수 있다.

 

 

 

 

 

 

🎈 참고

 

앱을 debug 모드로 실행하면 라이선스가 리스트업되지 않는다.

release 모드로 변경 후 실행해야 보인다!

 

 

 

 


 

 

 

 

라이선스에 대해 간단히 알아보고,

앱에 OSS Licenses를 표시해보았다.

 

개인적인 생각으로는, 라이선스가 존재하기에 오픈 소스가 지켜질 수 있다고 본다.

 

 

 

공부한 김에 기존에 만들었던 모든 앱에 적용해야겠다...

아는 만큼 보인다  →  아는 만큼 할 게 많아진다

 

 

 

728x90