
지난 시간까지 리액트를 활용한 프로젝트를 진행했습니다. 이번 시간에는 소프트웨어 개발 문화와 오픈 소스 라이선스의 개념에 대해 정리했습니다.
소프트웨어 개발 문화를 이야기할 때 빼놓을 수 없는 것이 공유 문화입니다. 수많은 개발자가 스택오버플로우나 깃허브 등을 통해 문제 해결 방식과 코드를 공유하면서 기술 생태계가 크게 성장할 수 있었습니다.
이렇게 누구나 코드를 열람하고 사용할 수 있도록 소스 코드를 공개한 소프트웨어를 오픈 소스 소프트웨어(OSS) 라고 합니다. 우리가 매일 사용하는 리액트, 리눅스, 파이썬 등이 모두 오픈 소스로 운영되고 있습니다.
공유된 코드를 상업적으로 무단 이용하는 사례가 생기면서, 소프트웨어 코드에도 저작권과 사용 규칙을 명시할 필요성이 생겼습니다. 이를 통제하고 권리를 보호하기 위해 자유 소프트웨어 재단 등을 거쳐 다양한 오픈 소스 라이선스가 만들어졌습니다.
수많은 종류의 라이선스가 존재하기 때문에 모든 내용을 외우고 있을 수는 없습니다. 정확한 규약이 궁금할 때는 아래 사이트를 활용하면 관련 정보를 쉽게 찾아볼 수 있습니다.
라이선스 적용이 복잡하게 느껴진다면, 도입하려는 라이선스를 이미 적용한 다른 오픈 소스 프로젝트의 LICENSE 나 NOTICE.txt 파일을 참고하는 것도 좋은 방법입니다.
실무에서 자주 접할 수 있는 대표적인 라이선스들을 정리했습니다. 하나의 프로젝트에 여러 라이선스가 혼합되어 사용되는 경우도 많습니다.
| 라이선스 | 대표 사용처 | 주요 조건 |
|---|---|---|
| GPL 3.0 | 리눅스, MariaDB | 파생 저작물도 동일하게 GPL 3.0으로 배포, 소스 코드 공개 의무 |
| MIT | 리액트, 부트스트랩 | 라이선스 고지 문구만 포함하면 자유롭게 사용 가능. 가장 관대한 라이선스 |
| Apache 2.0 | 안드로이드 | 수정 파일에 수정 사항 표시, 기존 저작권 및 고지 사항 포함 필요 |
| BSD (2-clause) | — | 재배포 시 저작권 표시와 보증 부인 고지만 포함하면 되는 단순한 라이선스 |
GPL은 조항이 엄격한 편이고, MIT는 제약이 거의 없어 가장 널리 사용됩니다. 오픈 소스 프로젝트를 도입할 때는 어떤 라이선스인지 반드시 확인하는 습관을 들이는 것이 좋습니다.
오픈 소스 코드가 공개되어 있다고 해서 무조건 무료로 사용할 수 있는 것은 아닙니다. 라이선스 조건(예: 소스 코드 공개 의무)을 준수할 때만 무료인 경우가 많습니다.
라이선스에 명시된 내용을 따르지 않고 상업적으로 이용하거나 배포할 경우 법적인 분쟁이 발생할 수 있습니다. 실제로 한컴의 오픈 소스 라이선스 위반 사례나 오라클과 구글의 분쟁 사례가 대표적인 예입니다.
따라서 프로젝트에 외부 코드를 도입할 때는 배포 전에 항상 라이선스 조건을 꼼꼼히 확인해야 합니다.