안녕하세요. 성조입니다.
이번 포스팅은 본인이 놓치고 있던 부분에 대해서 피드백 받은 내용을 개인 학습 후. 정리한 내용을 공유하기 위해서 남기는 포스팅입니다.
[사건의 시작]
평소에 얘기하는 개발자 톡방이 있는데 어떤 한 개발자분이 Database와 server에 대해서 추천 부탁주셔서 그 시각에 걷기 운동하다가 본 저는 답변하기 위해서 생각했습니다. 예전에 MySQL이 유료로 변경됐다는 얘기를 들었던 적이 있어서 유료겠지 하고 넘어갔던 내용과 포스그레의 경우 공부할 때 완전히 무료로 활용된다고 들어서 그것을 추천하고 이유를 남겼는데 잘하시는 시니어 개발자님이 아니라고 답변해주셔서 띠용했습니다.
본인의 무지로 인하여. 잘못된 정보를 전달했고, 그렇게 피해를 줄 뻔했다는 생각에 순간 식겁했습니다. 내용을 삭제 후 어떤 것이 문제였는지 힌트를 주셔서 운동 끝나고 집에 들어가서 바로 정리하게 됐습니다. 문제점에 대해서 올바른 정의를 알 수 있게 도와주신 시니어 개발자님께 좋은 지적해 주셔서 감사드리며, 이번 포스팅으로 올바른 정책에 대한 지식을 전달 공유할 수 있게된 부분 역시도 감사드립니다.
잘못된 지식을 개선하고 나아갈 수 있어서 좋았습니다.
혹여나 부족한 설명이 있다면 언제든지 댓글 남겨주시면 감사드리겠습니다!
FOSS, Permissive, Reciprocal 각 키워드
FOSS(Free and open-source software, F/OSS)
영문 그대로 자유 소프트웨어와 오픈 소스의 성질을 둘 다 갖춘 소프트웨어를 의미한다.
퍼미시브(Permissive)라이선스
이 유형의 라이선스는 사용자가 소프트웨어를 사용, 수정, 재배포하는데 최소한의 제약 사항을 건다.
Reciprocal (Copyleft or Restirctive) 라이선스
이 유형의 라이선스는 사용자에게 소프트웨어 사용, 수정 재배포할 권리를 주기는 하지만 소프트웨어가 변경되거나 수정된 버전이 공개적으로 배포가[(ex 데이터베이스인 경우) 데이터베이스가 배포되는 경우] 되는 경우. 그 변경 사항에 대한 소스 코드를 제공해야 한다.
PostgreSQL과 MySQL의 라이선스 정책
postgreSQL -> Permissive 라이선스
이 라이선스는 사용자가 소프트웨어를 사용, 수정, 재배포하는데 있어서 대부분을 자유롭게 제공한다.
PostgreSQL의 경우 "PostgreSQL License"라는 특별한 BSD 스타일의 퍼미시브 라이선스 하에서 배포되고 있으며, 라이선스 정책이 "퍼미시브(Permissive)"의 형태로 분류된다.
퍼미시브 라이선스는 소프트웨어의 재배포, 수정, 또는 그 변형이라도 개발자가 원하는대로 커스텀할 수 있게 해주며, 이를 위해 다른 곳에 납품하더라도 원래의 소스 코드를 공개할 의무가 없다. 다만 원저작자를 표시해야 하며 "PostgreSQL License" 라이선스 문서가 보존되어야 한다.
[postgre 코리아 홈페이지 발췌]
1. PostgreSQL 라이선스라고 하고 라이선스 본문에 저작권 연도와 저작권 보유자의 이름을 대체한다.
2. 라이선스를 소프트웨어 배포에서 가장 눈에 잘 띄는 파일("COPYRIGHT", "LICENSE", "COPYING"과 같은 이름)에 넣는다.
ex) 저작권 (c) $연도(YEAR), $단체 또는 조직명(ORGANIZATION)
3. 위의 저작권 고지와 단락 및이 모든 사본에 표시되는 한, 이 소프트웨어 및 설명서를 어떤 목적으로든 무료로 서면 동의(원작자의 동의)없이 사용, 복사, 수정 및 배포할 수 있는 권한이 부여된다.
이런 OSI 인증 라이선스를 통해서 상용 또는 독점 응용 프로그램에서 PostgreSQL는 사용을 제한하지 않기 때문에 무료로 유연하게 비즈니스 친화적으로 활용되는 Database라고도 평가받고 있다.
MySQL -> Reciprocal (또는 Copyleft 또는 Restrictive) 라이선스
MySQL 라이선스는 기본적으로 GNU General Public License version 2, GPLv2 하에 배포된다. 무료 소프트웨어 재단(Free Software Foundation)에서 만든 가장 보편화된 라이선스 중 하나이다.
이 라이선스는 사용자에게 소프트웨어를 사용, 수정, 재배포할 수 있는 권리를 주지만, 소프트웨어가 변경되거나 수정된 버전이 공개적으로 배포될 경우, 그 변경 사항에 대해 소스 코드를 제공해야 한다.
조금 더 이해가 쉽게 풀어보려 한다.
DB 납품이 필요 없고, 자체적으로 서비스를 구축해서 활용하는 경우에는 소스 코드를 수정해서 서비스를 진행해도 공개 의무가 없으며, 무료로 활용이 가능하다.
소스 코드를 수정 후 데이터베이스를 고객에게 납품할 경우. SI업체는 수정된 코드도 함께 제공하기 때문에 문제가 발생하지 않지만 Database 코드까지 제공하는 것이 아니라면 유료 버전을 활용해야한다.
MySQL 소프트웨어를 활용해서 납품 할 때. "영리 목적"이란 내용은 수익을 나타내는 것이 아니다. Database를 수정하고 데이터베이스를 통으로 배포하는 것에서 무료는 DB 소스 코드를 공유하고, 유료는 비공개할 수 있는 차이점이지 수익을 낸다해서 무조건 문제가 되는 것은 아니다. SI업체가 DB 코드를 제공하면 수익을 발생시켜도 문제가 없다.
또한 서비스 회사의 경우 보통 서버에서 소프트웨어를 구축하고 API를 통해서 입/출력과 같은 출력만하면서 별도의 데이터베이스를 판매하는 것이 아니기 때문에 무료 GPL 버전을 활용해도 소스를 공개할 필요가 없는 것이다.
MySQL 라이선스 내용 정리
요약하면 무료/유료 버전에 상관없이 Database를 수정해서 활용하고 서비스하는 것은 무료로 활용이 가능하다. 하지만 무료 버전을 활용하고 있는 경우 GPL 라이선스가 적용되어 있어서 소스 코드를 수정하여 고객에게 납품할 경우 수정된 코드를 같이 제공해야 한다. 납품하면서 제공하지 않을 계획이라면 유료 버전을 사용해야 한다.
서비스 회사의 경우. 서비스만 활용하고, 데이터베이스를 판매하는 것이 아니라면. 영리 목적으로 활용한 것이 아니므로 소스 코드를 공개할 필요가 없다.
오타나 궁금한 부분이 있다면 댓글로 얘기주시길 바랍니다!
다음 포스팅 때 뵙겠습니다.
감사드립니다!
- 참조 -
https://www.gnu.org/licenses/licenses.html
https://postgresql.kr/news/pg15_release.html
https://opensource.org/license/postgresql/
https://www.olis.or.kr/license/Detailselect.do?lId=1004
'Study 📔' 카테고리의 다른 글
[Study] 프로덕트(Product) 프레임워크(Framework) 선정 과정과 데이터베이스(Database) 선택 이유 (0) | 2023.08.17 |
---|---|
[Study] TDD(Test-Driven Development, TDD)란? (0) | 2023.05.25 |
[Study] SEO(Search Engine Optimization, SEO)이란? with SERP (0) | 2023.04.28 |
[Study] IaaS, PaaS, SaaS이란? (0) | 2023.03.30 |
[Study] React.js + TypeScript로 GitHub Blog 만들기 (0) | 2023.03.09 |