일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- android ar 개발
- 안드로이드 라이선스
- 클래스
- 안드로이드 유닛 테스트
- android retrofit login
- rxjava cold observable
- 스택 큐 차이
- 안드로이드 라이선스 종류
- ar vr 차이
- 안드로이드 유닛테스트란
- 스택 자바 코드
- 2022 플러터 안드로이드 스튜디오
- 멤버변수
- 자바 다형성
- rxjava disposable
- 2022 플러터 설치
- 큐 자바 코드
- 안드로이드 유닛 테스트 예시
- jvm 작동 원리
- 서비스 쓰레드 차이
- 객체
- 안드로이드 레트로핏 사용법
- Rxjava Observable
- 플러터 설치 2022
- jvm이란
- ANR이란
- 서비스 vs 쓰레드
- rxjava hot observable
- 안드로이드 os 구조
- 안드로이드 레트로핏 crud
- Today
- Total
나만을 위한 블로그
[Android] 라이브러리 라이선스 종류와 특징 본문
안드로이드 앱을 만들다 보면 기본 제공되는 라이브러리 뿐 아니라 필수적으로 여러 오픈소스 라이브러리를 사용하게 된다.
일반적으로 오픈소스 라이브러리의 사용법은 아래 순서를 거칠 것이다.
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
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
그리고 내가 만든 앱에서 사용한 라이브러리들을 자동으로 관리해주는 라이브러리가 있다. 사용법은 아래 링크 참고
https://leveloper.tistory.com/204?category=762053
'Android' 카테고리의 다른 글
[Android] 안드로이드 4.2 이상 버전에서 Gradle 안의 Task 목록이 안 보이는 현상 해결 (0) | 2021.11.08 |
---|---|
[Android] 코틀린으로 구글 맵 사용하기 (0) | 2021.11.08 |
[Android] 서비스 vs 쓰레드 (0) | 2021.10.14 |
[Android] ANR이란? (0) | 2021.10.14 |
[Android] 유닛 테스트란? 유닛 테스트 예시(JAVA) (0) | 2021.10.10 |