다들 오픈소스.. 오픈소스.. 그러는데 그게 뭐임?

Songss·2025년 2월 14일
0

개발지식

목록 보기
4/16

1. 개발문화

깃허브에 public(공개되어 있는 소스)으로 설정된 소스는 모두 오픈소스 인가 ?

2. 오픈소스란

깃허브에 public(공개되어 있는 소스)으로 설정된 소스는 모두 오픈소스 인가 ?

오픈 소스는 리뷰, 수정 등 개선사항을 마음껏 할 수 있는 소스 코드이다.

개발자들이 서로의 아이디어(코드), 버그를 공유하면서 상호 발전을 기대할 수 있다 !

대표적인 오픈소스 :
React , Node.js , Apache , Bootstrap 등

사실 내가 어떤 로직을 작성하고 싶을때 (어떠한) 웹사이트에서 받아와서 사용해 본 적이 있지 않는가 ?

그곳들이 다 오픈소스 사이트라고 할 수 있겠다.

3. 깃허브의 모든 public프로젝트는 오픈소스 일까?

그래서 깃허브의 public된 코드들은 오픈 소스 일까 ?

라이선스가 필요한건가 ?

오픈소스는 내가 깃허브에 코드를 올리면 그게 오픈소스인줄 알았지만

그게 아니고 라이선스가 있으면 정해진 규약이 존재하면 그게 오픈소스 인 것 같은데….

다음 챕터에서 알아봐야겠다.

4. 오픈소스 라이선스란 ?

리액트 is licensed under the MIT License…

아무튼

오픈 소스로 배포/준비/공개된 소스 코드를 사용할 때 지켜야 하는 규칙 등을 명시하는 것.

Q. 그렇다면 License의 규칙은 무엇인가 ?

Permissions [권한]

  • Commercial use : 상업적 사용
  • Modification : 가감(?)
  • Distribution : 분포(?)
  • Private us : 사용

Limitations [제한]

  • Liability : 책임(?)
  • Warranty : 보증

Conditions [정황]

  • License and copyright notice : 라이센스 및 저작권 통지

라이선스 표기가 되어 있지 않는 깃허브 publice 소스 코드를 임의로 사용한다면

저작권 침해이므로 함부로 사용해서는 안된다고 한다 ;;

라이선스 표기가 되어 있는 소스 코드는 출처를 명확히 밝히고 사용할 것임을 알고 있어야한다.

그렇다면 ‘나’는 오픈소스를 만들 수 있는 건가 ?

5. 라이선스의 유래 , OSI

오픈 소스 공개하는 데 라이선스가 필요한 이유

→ 이건 오픈 소스야 ! 명시 하고 싶었고,

→ 사용/배포할 때 조건(출처, 사용법, …)을 지켜달라! 고 말하고 싶었고

OSI

OSI(Open Source Initiative)오픈 소스 소프트웨어(Open Source Software, OSS)의 개념을 정의하고, 오픈 소스 라이선스를 관리하는 비영리 단체야.

🔹 OSI의 주요 역할

1️⃣ 오픈 소스 정의(Open Source Definition, OSD) 제정

• OSI는 오픈 소스 소프트웨어의 기준을 정의했고, 이 기준을 만족하는 라이선스만 공식적인 오픈 소스 라이선스로 인정해.

• 대표적인 기준:

• 소프트웨어의 자유로운 배포 가능

• 소스 코드 공개 필수

• 파생 제품 제작 및 수정 가능

2️⃣ 오픈 소스 라이선스 승인 및 관리

OSI는 특정 라이선스가 오픈 소스 정의(OSD)를 충족하는지 심사 후 승인해.

• OSI가 승인한 대표적인 오픈 소스 라이선스:

GPL (GNU General Public License)

MIT License

Apache License

BSD License

Mozilla Public License (MPL)

Eclipse Public License (EPL)

3️⃣ 오픈 소스 문화와 철학 전파

• 오픈 소스 프로젝트와 기업들이 OSI의 기준을 준수하도록 권장

오픈 소스 커뮤니티 및 컨퍼런스 지원

🔹 OSI가 중요한 이유

오픈 소스의 신뢰성과 표준을 유지하기 위한 역할 수행

• 기업이 오픈 소스를 채택할 때 적절한 라이선스를 선택할 수 있도록 가이드 제공

• 오픈 소스 커뮤니티의 성장과 발전을 돕고, 오픈 소스의 상업적 활용을 촉진

6. 대표적인 라이선스 종류, OLIS

오픈 소스 라이선스의 종류

메인화면 | 오픈소스SW 라이선스 종합정보시스템 OLIS [OLIS 홈페이지 주소]

위 사이트 OLIS 에서 상당한 양의 라이선스 정보들을 가지고 있다.

[OLIS에서 찾은 MIT 라이선스에 대한 정보]

7. 라이선스 적용 사례, 안드로이드

안드로이드 오픈소스는 Apache 라이선스 외 다른 라이선스들도 가지고 있다.

Apache 라이선스를 사용할때 “NOTICE” 파일들에 고지사항을 첨부하라고했다.

실제로 안드로이드 오픈소스의 NOTICE.txt를 확인해본 결과

정말로 Apache License의 고지사항을 기재한 것을 확인할 수 있었다.

오픈소스 참고해서 프로젝트를 만들고 싶은데 잘 모를때…

OLIS에서 ‘검사도구’를 사용해보면 좋다고한다. (with CodeEye)

8. 라이선스 적용 사례, 오픈 소스 가이드

GPL

  • GNU General Public License
  • 강력한 조항이 있다고 ?
    • Firefox, Linux, Git, MariaDB, Wordpress 등
    • 위 소프트웨어들은 GPL(General Public License, GNU 일반 공중 라이선스)과 오픈 소스 라이선스 철학과 깊은 연관이 있다.

- 각각의 라이선스를 분석하면, GPL을 채택한 프로젝트도 있고, **GPL과 호환되는 오픈 소스 라이선스를 사용**하는 경우도 있다.

🔹 GPL의 핵심 개념

완전한 소스 코드 공개 의무

  • GPL 소프트웨어를 수정하여 배포할 경우, 소스 코드도 반드시 공개해야 함.

2차 저작물도 GPL 적용

  • GPL 소프트웨어를 기반으로 만든 소프트웨어는 모두 GPL을 따라야 함 (“Copyleft” 원칙).

상업적 이용은 가능하지만, 라이선스 준수 필수

  • 누구나 사용 가능하지만, 폐쇄 소스로 변경해 판매할 수 없음.

그 외

MIT 라이선스

  • 가장 자유로운 오픈 소스 라이선스 중 하나
  • 소스 코드 공개 의무 없음, 단 저작권 명시 필요
  • 예제: Bootstrap, React, Angular, jQuery

Apache 라이선스

  • 소스 코드 공개 의무 없음, 특허 사용 가능
  • 예제: Android

BSD 라이선스

  • 유사한 자유 소프트웨어 라이선스
  • 예제: Berkeley Software Distribution (BSD)
  • 라이선스 및 저작권 표시 조건 ⇒ 인기가 많음 !

대표적인 라이선스만 작성한 것이지 이 외에 다른 라이선스는 진짜 진짜 많음

9. 쿠키 영상 - beerware

비어웨어(Beerware)는 제약이나 조건이 매우 낮은 소프트웨어 사용권이자 그것을 통해 배포된 소프트웨어를 일컫는 말이다. 최종 사용자에게 프로그램 또는 소스 코드를 마음껏 사용할 수 있는 권리를 제공한다.

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Poul-Henning Kamp
 * ----------------------------------------------------------------------------
 */

10. 라이선스 적용 사례 , npm

express 또한 MIT 라이선스를 적용하고 있었다 !

강의를 들으면서 느낀점은

내가 상업용으로 개발하고 배포할때 꼭 라이선스를 확인하고 진행해야겠다는걸 느끼긴했다.

11. 오픈소스 라이선스 분쟁 사례, 한컴

💡 개요:

한글과컴퓨터(한컴, Hancom)와 Ghostscript(GPL Ghostscript)는 오픈소스 라이선스 위반 문제로 법적 분쟁이 있었던 사례 중 하나다.

Ghostscript는 GPL(GNU General Public License)AFPL(Aladdin Free Public License) 하에 배포되는 오픈소스 소프트웨어이며, PDF 및 PostScript 파일을 처리하는 라이브러리이다.

🔍 사건 개요

  • 한글과컴퓨터는 Ghostscript를 일부 포함한 소프트웨어를 상용 제품에 사용했음.
  • 하지만 Ghostscript는 GPL을 따르는 오픈소스 소프트웨어였기 때문에,
  • 한컴이 Ghostscript 코드를 사용했다면 그에 따라 소스 코드 공개 의무가 발생했음.
  • 한컴이 Ghostscript를 상업적으로 활용하면서도 소스 코드를 공개하지 않아 문제가 발생함.

⚖️ Ghostscript 라이선스 문제

Ghostscript는 두 가지 라이선스로 배포됨:

1️⃣ GPL (GNU General Public License)

  • 상업적 사용 가능하지만, 소스 코드도 GPL로 공개해야 함
  • 즉, GPL 소프트웨어를 활용한 프로그램은 GPL을 따라야 한다 (Copyleft 원칙)

2️⃣ AFPL (Aladdin Free Public License)

  • 상업적 사용을 금지하는 라이선스

한글과컴퓨터는 Ghostscript를 사용하면서도 라이선스 조건을 제대로 준수하지 않았음.

즉, GPL을 따르지 않고 소스 코드 공개를 거부하면서 상용 소프트웨어에 포함한 것이 문제가 됨.

🔍 핵심 쟁점

1️⃣ GPL 라이선스를 적용받는 소프트웨어를 상업용으로 사용하면, 반드시 소스 코드를 공개해야 함

2️⃣ 한글과컴퓨터는 Ghostscript를 사용했으나, GPL 요구사항을 충족하지 않아 법적 문제 발생

3️⃣ Artifex Software(Ghostscript 개발사)는 이를 문제 삼아 소송을 준비하거나, 협의 과정을 거쳤음

4️⃣ 결과적으로 한컴은 Ghostscript 사용을 중단하거나, 대체 기술로 변경했을 가능성이 높음

💡 결론 및 시사점

오픈소스 라이선스를 올바르게 이해하고 준수해야 함

✔ 특히, GPL 소프트웨어는 상업적 사용이 가능하더라도 소스 코드 공개 의무를 따른다는 점을 주의해야 함

한컴 사례처럼 라이선스를 위반하면 법적 분쟁으로 이어질 수 있음

✔ 기업들은 오픈소스 라이선스 관리 체계를 구축하고, 법적 리스크를 방지하는 것이 중요

12. 오픈소스 라이선스 표기법

우리가 사용하는 데스크탑의 사이트,프로그램 또는 모바일의 앱은 대부분 오픈소스 사용하지 않는 곳은 없다고(?)도 할 수 있다.

위 사진처럼 구글의 Chrome 또한 오프소스 소프트웨어를 기반으로 제작되었다고 명시를 하고 있다.

개발자는 프로그래밍에 관련한 지식은 당연히 빠삭하겠지만 라이센스와 같은 규약에 대해서도 어느 정도의 지식을 갖추고 있어야 하지 않을까 ? 싶다.

0개의 댓글