한국어 | English | 日本語
Senior Web Application Developer (8.8+ years)
Tech & Dev
engineering
Focusing on web frontend and backend development

The Diverse World of Open Source Licenses

Open source doesn't simply mean 'free.' Using code from an open-source project might obligate you to release your entire project's source code, depending on its license. From GPL to MIT, we'll examine the key differences and restrictions of major licenses every developer should understand.
This article compares and analyzes the core features of open-source licenses, ranging from the restrictive regulations of GPL, which inherits the spirit of free software, to the more permissive LGPL, and the public domain-like BSD and MIT licenses. We will delve into the practical implications of each license in a real-world development environment, focusing on commercial use and source code disclosure obligations.

GPL (General Public License, GNU GPL)

The GPL is the progenitor of the free software philosophy, and as such, it is quite conservative (or “reciprocal”).

While typical proprietary licenses aim to restrict the freedom to share and modify software, the GPL is a regulation designed to guarantee the freedom to share and modify.

LGPL (Lesser General Public License, GNU LGPL)

A major drawback of the GPL is its “viral” nature: simply using a GPL-licensed library means the entire derivative work becomes subject to the GPL, requiring its source code to be disclosed even if commercial use is allowed.

To prevent developers from avoiding GPL libraries for this reason and to encourage contributions to open source, the FSF (Free Software Foundation) does not enforce the disclosure clause unless the code itself is modified.

BSD (Berkeley Software Distribution) License & MIT License

The Unix-like operating system BSD was once sued by AT&T’s Bell Labs, the original creators of Unix. Following this, BSD created and distributed a license that contained no copyright provisions other than requiring attribution of the source code author’s name. The MIT License is very similar to BSD, so it’s grouped here.

From the original 4-clause version, clauses were successively removed, leading to 3-clause and 2-clause versions.

4-Clause : Original

3-Clause : BSD License 2.0

2-Clause : FreeBSD License

Apache License

The preceding BSD License, with its public domain-like clauses, does not allow claiming any patents on derivative works. However, the Apache License permits patentees to claim patents on their derivative works.

The Apache License allows you to utilize its code to create a derivative work and then patent that derivative work. However, if you do so, that derivative work should no longer be licensed under the Apache License.


I’ve summarized these for a basic understanding. However, the most fascinating aspect is undoubtedly the history behind “why” and “how” each license came to be. The first reference link below provides a more detailed explanation, which you might find very helpful.



The Diverse World of Open Source Licenses
Author
Aaron
Posted on
Licensed Under
CC BY-NC-SA 4.0
CC BY-NC-SA 4.0
More in this category
Recent posts
Understanding Browser Security Policies Through Giscus CSS Customization
While building a new blog, I switched from Disqus, used in my old Hexo blog, to Giscus, currently the most convenient option. I attempted to inject custom CSS from an external source into Giscus to match my blog's CSS theme. For some reason, it didn't work as expected. This post explains the reasons behind the failure, involving not only the ubiquitous CORS for frontend developers but also intertwined security policies like Mixed Content and PNA (Private Network Access), and guides on how to properly apply custom CSS themes to Giscus.
The Erosion of Conversational Muscle and Communication Styles by LLM Filters
In an era where LLM tools, which filter out conversational impoliteness and deliver refined responses, have become commonplace, are we truly engaging in more thoughtful conversations? This article examines the phenomenon of conversational ability, which should be honed through countless failures in real-time communication, degenerating due to reliance on external tools. It further explores the potential societal anxieties and shifts in generational behavioral patterns that this trend may bring.
Optimal Timing and Strategy for Salary Negotiation with Senior Candidates
Salary negotiation is more than just an exchange of figures; it's a strategic dance of psychological timing. This analysis explores why engaging in a gradual negotiation process from the initial stages of recruitment, rather than waiting until after a final offer (when candidates tend to adopt a more calculative stance), proves more efficient for companies and fosters a more honest sharing of resources.
토스트 예시 메세지