← Back to Blog

[Open Source] Software and License

computer science > programming

2026-07-044 min read

#computer-science #programming #open-source #license

이 자료는 인하대학교 오픈SW개론 정진만 교수님 강의자료 및 수업을 참고하여 작성하였습니다.

오픈소스 소프트웨어(Open Source SW)란?

오픈소스 소프트웨어는 소스코드가 공개되어 있는 소프트웨어를 말하며, 자유롭게 복제/배포/수정 등을 할 수 있습니다.

일반적으로 개방형 협업을 통해 개발 및 관리가 됩니다.

오프소스 소프트웨어를 사용하기 위해서는 개발자가 정의한 라이선스를 지켜야합니다.

오픈소스 소프트웨어의 대표적인 예로는 Linux 커널 및 아파치 웹서버, FireFox 웹 브라우저, MySQL 등이 있습니다.

한국 저작권 위원회


저작권(Copyright)

image-1

한국 저작권 위원회


라이선스(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 프로젝트입니다.

image-2

Free Software는 프로그래머 유저들이 4 가지 필수 자유를 주장했습니다.

프로그램을 어떠한 목적이든 자유롭게 실행시킬 권리.

프로그램의 소스 코드를 자유롭게 공부하고, 변경할 수 있는 자유.

자유롭게 복사를 할 수 있는 권리.

복사하고 수정된 버전을 전달할 수 있는 권리.

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 커널의 합류로 경쟁력이 높아지게 되었습니다.

image-3Minix is free Unix-like operating system for teaching purpose by Tanenbaum


Copyleft License

Free software permission + Reciprocal obligation

원작자가 저작권을 가지고, 다른 사람들이 자유롭게 소프트웨어를 개작 또는 배포하는 권리를 허용하고, 공유를 의무화하는 라이선스의 형태입니다.


Static Linking VS Dynamic Linking

image-4Source: https://www.linkedin.com/pulse/static-libraries-vs-dynamic-ignacio-peralta

Static linkingDynamic linking 개념을 알아야 오픈 소스의 유용함에 대해서 더욱 이해를 하실 수 있을 것입니다.

만약 같은 기능을 하는 라이브러리를 사용하고 싶을 때, 왼쪽에 보이는 Static Library를 사용하는 것보다는

오른쪽에 보이는 Dynamic Library로 한 번에 사용하는 것이 더 효율적이게 보이죠?

네 실제로도 오른쪽과 같이 Dynamic linking을 이용하는 것이 더 효율적입니다.


General Public License (GPL)

image-5

Free Software Foundation (FSF) 설립자인 Richard Stallman이 작성한 최초의 Copyleft License입니다.

blob

라이브러리와 연결된 모든 코드를 공개해야합니다.

꼭 모든 것을 공개할 필요는 없습니다.


Lessor General Public License (LGPL)

LGPL(Lessor General Public License)는 FSF가 일부 라이브러리에 대하여 GPL보다 소스 코드 공개 정도를 완화한 형태로 장려하기 위해 만든 라이선스입니다.

image-7

모든 코드를 공개해야하는 GPL과 다르게 사용된 파일에 있는 소스 코드만 공개하는 라이선스입니다.


기존 Free Software의 문제점

**"Free as in Freedom"**이라는 문구를 사용했지만, 아직 **"무료"**라는 의미로 해석하는 경우가 많아 기업에서 반발감이 컸습니다.

"너의 소프트웨어는 0원으로 얻을 수 있어."라는 식으로 말이죠.

따라서 기업 측에서는 자신들이 힘들게 제작한 소스 코드를 공개하는 것에 대한 부담감도 많았습니다.


Open Source Software

image-8

Open Source Initiative (OSI)는 1998년 Eric S. Raymond가 설립하였습니다.

"Free" 라는 단어 대신 "Open Source" 라는 단어를 사용하였고,

기존 GNU 프로젝트를 계승하지만 보다 실용적으로 라이선스를 제작하였습니다.

The Open Source Initiative


Copyleft vs Permissive License

image-9


Permissive License

image-10


License and Project Examples

image-11


Shareware, Freeware and FOSS

FS, OSS와는 다른 개념입니다.

Freeware는 개발자가 별도의 조건, 기간, 기능에 제한 없이 개인에 한하여 무료로 사용할 수 있고 별도로 수정이 불가능합니다. 또한 비용을 지불하지 않지만, 영리적인 목적으로 사용 불가능합니다.

Shareware허용하는 기간내에 무료로 사용, 복사가 가능하지만, 기간이 지난 경우 일정 비용을 지불하고 정식 사용자 등록을 해야합니다. Freeware와는 달리 개인만 사용 가능하고, 기업 업무용으로는 사용 불가능합니다.