이 자료는 인하대학교 오픈SW개론 정진만 교수님 강의자료 및 수업을 참고하여 작성하였습니다.
오픈소스 소프트웨어(Open Source SW)란?
오픈소스 소프트웨어는 소스코드가 공개되어 있는 소프트웨어를 말하며, 자유롭게 복제/배포/수정 등을 할 수 있습니다.
일반적으로 개방형 협업을 통해 개발 및 관리가 됩니다.
오프소스 소프트웨어를 사용하기 위해서는 개발자가 정의한 라이선스를 지켜야합니다.
오픈소스 소프트웨어의 대표적인 예로는 Linux 커널 및 아파치 웹서버, FireFox 웹 브라우저, MySQL 등이 있습니다.
한국 저작권 위원회
저작권(Copyright)

- 인간의 사상 또는 감정을 표현한 창작물(저작물)에 대하여 행사할 수 있는 그 창작자(저작자)가 갖는 권리
- 저작권은 저작물을 창작한 때부터 발생하며 어떠한 절차나 형식의 이행을 필요로 하지 않음
- 저작권은 저작자의 권리를 보호하고 저작물의 공정한 이용을 도모하기 위해 저작권법(법률 제9785호)에 의해 보호
- 저작권 등록이란 저작권 등록부라는 장부에 등재하고 일반 국민에게 공개, 열람하도록 공시하는 것
한국 저작권 위원회
라이선스(License)
소프트웨어 소유자(Licensor)와 사용자들(Licensee)간의 계약
이를 위반할 경우, 라이선스 위반 및 저작권 침해로 이에 대한 법적 책임을 져야합니다.
사유, 독점 소프트웨어(Proprietary Software)
1970~80년대 거의 대부분 소프트웨어가 사유, 독점 소프트웨어였습니다. 기업에서만 사용하기 위한 프로그램이 대부분이었습니다. 요즘 많이 사용하는 무료 라이브러리가 거의 없었다는 말이죠.
- 사용 조건이 제한적이고, 수정이나 재배포는 허용되지 않는 소프트웨어
- 일반적으로 소스 코드가 비공개이고, 대중에게 소스가 공개되지 않는 바이너리 형식으로 배포
자유 소프트웨어(Free Software)
소프트웨어가 상업화되어 가면서 소스코드가 비공개로 전환되는 것에 반발로 자유 소프트웨어(Free Software) 운동이 일어났습니다.
여기서 Free는 **'무료'**라는 의미가 아닌, 소스 코드에 대한 사용, 수정, 배포, 개작 배포 권한이 최초 제작자와 동일하게 자유로움을 의미합니다.
1983년에 Richard Stallman이 제한한 프로젝트이고, "Free as in freedom to distribute not as in no cost.",
_"Libre not Gratis"_라는 문구로 진행했었습니다.
"We would develop a completely free software system." 그 유명한 GNU 프로젝트입니다.
Free Software는 프로그래머 유저들이 4 가지 필수 자유를 주장했습니다.
- The freedom to run the program as you wish for whatever purpose.
프로그램을 어떠한 목적이든 자유롭게 실행시킬 권리.
- The freedom to study the source code of the program and change it.
프로그램의 소스 코드를 자유롭게 공부하고, 변경할 수 있는 자유.
- The freedom to distribute exact copies, to make the copies and then give them.
자유롭게 복사를 할 수 있는 권리.
- The freedom to make copies, and then give them when you wish for your modified versions.
복사하고 수정된 버전을 전달할 수 있는 권리.
If any of those freedoms is missing, the users don't control the program. (Non-free, proprietary software)
위에 있는 어떠한 자유라도 지켜지지 않는다면 유저는 프로그램을 조작할 수 없다.
1985년 Richard Stallman은 GNU를 지원하기 위해 **자유 소프트웨어 재단(FSF)**을 설립하였습니다.
GNU / Linux
GNU 프로젝트는 컴파일러, 편집기, 디버거 등 프로그래밍과 컴퓨터 운영에 필요한 다양한 도구를 개발했습니다.
상업용 운영체제와 경쟁력에서 밀린다는 평가가 있었으나, Linux 커널의 합류로 경쟁력이 높아지게 되었습니다.
Minix is free Unix-like operating system for teaching purpose by Tanenbaum
Copyleft License
Free software permission + Reciprocal obligation
원작자가 저작권을 가지고, 다른 사람들이 자유롭게 소프트웨어를 개작 또는 배포하는 권리를 허용하고, 공유를 의무화하는 라이선스의 형태입니다.
Static Linking VS Dynamic Linking
Source: https://www.linkedin.com/pulse/static-libraries-vs-dynamic-ignacio-peralta
Static linking과 Dynamic linking 개념을 알아야 오픈 소스의 유용함에 대해서 더욱 이해를 하실 수 있을 것입니다.
만약 같은 기능을 하는 라이브러리를 사용하고 싶을 때, 왼쪽에 보이는 Static Library를 사용하는 것보다는
오른쪽에 보이는 Dynamic Library로 한 번에 사용하는 것이 더 효율적이게 보이죠?
네 실제로도 오른쪽과 같이 Dynamic linking을 이용하는 것이 더 효율적입니다.
General Public License (GPL)
Free Software Foundation (FSF) 설립자인 Richard Stallman이 작성한 최초의 Copyleft License입니다.

- License Propagation
라이브러리와 연결된 모든 코드를 공개해야합니다.
- Separate programs does not require all software to be GPL
꼭 모든 것을 공개할 필요는 없습니다.
Lessor General Public License (LGPL)
LGPL(Lessor General Public License)는 FSF가 일부 라이브러리에 대하여 GPL보다 소스 코드 공개 정도를 완화한 형태로 장려하기 위해 만든 라이선스입니다.

모든 코드를 공개해야하는 GPL과 다르게 사용된 파일에 있는 소스 코드만 공개하는 라이선스입니다.
기존 Free Software의 문제점
**"Free as in Freedom"**이라는 문구를 사용했지만, 아직 **"무료"**라는 의미로 해석하는 경우가 많아 기업에서 반발감이 컸습니다.
"너의 소프트웨어는 0원으로 얻을 수 있어."라는 식으로 말이죠.
따라서 기업 측에서는 자신들이 힘들게 제작한 소스 코드를 공개하는 것에 대한 부담감도 많았습니다.
Open Source Software

Open Source Initiative (OSI)는 1998년 Eric S. Raymond가 설립하였습니다.
"Free" 라는 단어 대신 "Open Source" 라는 단어를 사용하였고,
기존 GNU 프로젝트를 계승하지만 보다 실용적으로 라이선스를 제작하였습니다.
Copyleft vs Permissive License

Permissive License

License and Project Examples

Shareware, Freeware and FOSS
- FOSS (Free and Open Source Software)
FS, OSS와는 다른 개념입니다.
- Freeware 또는 Shareware
Freeware는 개발자가 별도의 조건, 기간, 기능에 제한 없이 개인에 한하여 무료로 사용할 수 있고 별도로 수정이 불가능합니다. 또한 비용을 지불하지 않지만, 영리적인 목적으로 사용 불가능합니다.
Shareware는 허용하는 기간내에 무료로 사용, 복사가 가능하지만, 기간이 지난 경우 일정 비용을 지불하고 정식 사용자 등록을 해야합니다. Freeware와는 달리 개인만 사용 가능하고, 기업 업무용으로는 사용 불가능합니다.