관리 메뉴

나만을 위한 블로그

[Android] 라이브러리 라이선스 종류와 특징 본문

Android

[Android] 라이브러리 라이선스 종류와 특징

참깨빵위에참깨빵 2021. 10. 14. 21:15
728x90
반응형

안드로이드 앱을 만들다 보면 기본 제공되는 라이브러리 뿐 아니라 필수적으로 여러 오픈소스 라이브러리를 사용하게 된다.

일반적으로 오픈소스 라이브러리의 사용법은 아래 순서를 거칠 것이다.

1. 앱 수준 gradle 파일에 의존성 문구 추가
2. 공식 문서, 사용법을 설명하는 글을 보며 사용
3. 기능 구현

 

그러나 우리가 사용하는 라이브러리 대부분에는 라이선스가 존재한다. 라이선스는 그 기술의 특허권 또는 사용 허가를 말하는 무형자산인데, 가장 많이 쓰이는 라이선스는 Apache, MIT, BSD 등이 있다.

대부분의 라이선스는 사용 시 해당 라이선스와 저작권 명시를 요구하고 있으며, 일부 라이선스는 소스코드 공개도 강제한다. 때문에 라이선스에 대한 충분한 검토 없이 서비스를 출시했다면 적발 시 해당 라이브러리가 사용된 모든 소스코드를 공개해야 하는 일도 충분히 있을 수 있다.

어떤 형태로 명시해야 하는지에 대한 정답은 없지만 보통 앱이라면 별도의 액티비티를 만들어 거기에 모두 표시하는 방법을 사용한다.

이번 포스팅에선 안드로이드를 기준으로 자주 사용되거나 존재하는 라이선스에 대해 특징들을 정리하려고 한다.

 

Apache License

 

이름에서 볼 수 있듯 아파치 재단에서 만든 라이선스다. 소스코드 공개 등의 의무사항은 없지만 소스코드를 수정해 배포할 경우 아파치 라이선스와 버전을 명시해야 하며 아파치 재단에서 만든 소프트웨어임을 밝혀야 한다.

안드로이드 라이브러리 중에선 Picasso, Firebase Android SDK, Kakao SDK, Lottie, SwipeRefreshLayout, ViewPager 등이 여기 속하며, 안드로이드 디벨로퍼에선 몇 가지 문제 때문에 Apache 2.0 라이선스를 선호한다고 한다. 아래 링크에서 그 전문을 확인할 수 있다.

https://source.android.com/setup/start/licenses?hl=ko 

 

라이선스  |  Android 오픈소스 프로젝트  |  Android Open Source Project

라이선스 Android 오픈소스 프로젝트(AOSP)에서는 오픈소스 이니셔티브 승인을 받은 오픈소스 라이선스 몇 가지를 Google 소프트웨어에 사용합니다. AOSP 라이선스 Apache 라이선스 버전 2.0(Apache 2.0)은 A

source.android.com

 

MIT License

 

미국의 MIT 공대에서 해당 대학의 소프트웨어 공학도들을 돕기 위해 만든 라이선스다. 라이선스와 저작권과 관련한 명시만 지켜주면 되는 라이선스로 사용 조건이 느슨해 인기가 많다.

 

BSD License

 

미국의 버클리에서 개발한 BSD 계열 유닉스 OS에서 주로 채택하는 라이선스다. 소스코드 공개 의무 없이 자유롭게 수정할 수 있고 상업적 이용도 가능하다. 그러나 해당 소프트웨어로 발생한 모든 손해는 본인이 책임져야 한다는 특징이 있다. 안드로이드 라이브러리 중에선 Glide(부분적으로 MIT, Apache 2.0 적용)가 여기 속한다.

 

GPL License

 

GNU라고도 불리는 이 라이선스는 자유 소프트웨어 재단(FSF)에서 만든 라이선스로, 어떤 목적과 형태로든 쓸 수 있지만 사용하거나 변경된 프로그램을 배포하는 경우 무조건 GPL로 공개해야 한다는 강력한 조항이 있고 모두 소스코드를 공개해야 한다. 이미 이 라이선스 관련 판례까지 있기 때문에 사용 시 신중해야 한다. 안드로이드 핸드폰 제조사들이 리눅스 커널의 소스코드를 공개하는 건 이 라이선스 때문이다.

 

 

아래 링크로 가면 GPL, LGPL, BSD, Apache 등의 라이선스 별 특징들을 한눈에 볼 수 있다.

https://www.oss.kr/oss_license

 

공개SW 라이선스 - 공개SW 포털

.blind { position: absolute; overflow: hidden; clip: rect(0 0 0 0); margin: -1px; width: 1px; height...

www.oss.kr

 

그리고 내가 만든 앱에서 사용한 라이브러리들을 자동으로 관리해주는 라이브러리가 있다. 사용법은 아래 링크 참고

https://leveloper.tistory.com/204?category=762053 

 

[Android] 오픈소스 라이선스 목록 보여주기 - OssLicensesMenuActivity

 위의 사진은 카카오톡의 오픈소스 라이선스 페이지입니다. 안드로이드 프로젝트를 하며 라이선스에 따라 사용한 오픈소스 라이브러리를 명시해줘야 하는 경우가 있습니다. 보통 앱을 만들게

leveloper.tistory.com

 

반응형
Comments