지난 시간까지 리액트를 활용한 프로젝트를 진행했어요. 이번 시간에는 소프트웨어 개발 문화와 오픈 소스 라이선스의 개념에 대해 정리해 볼게요.
소프트웨어 개발 문화를 이야기할 때 빼놓을 수 없는 것이 공유 문화예요. 수많은 개발자가 스택오버플로우나 깃허브 등을 통해 문제 해결 방식과 코드를 공유하면서 기술 생태계가 크게 성장할 수 있었어요.
이렇게 누구나 코드를 열람하고 사용할 수 있도록 소스 코드를 공개한 소프트웨어를 오픈 소스 소프트웨어(OSS)라고 불러요.
공유된 훌륭한 코드를 상업적으로 무단 이용하는 사례가 생기면서, 일반적인 예술 작품이나 음악처럼 소프트웨어 코드에도 저작권과 사용 규칙을 명시할 필요성이 생겼어요. 이를 통제하고 권리를 보호하기 위해 자유 소프트웨어 재단 등을 거쳐 다양한 오픈 소스 라이선스가 만들어졌어요.
현재 수많은 종류의 라이선스가 존재하기 때문에 모든 내용을 외우고 있을 수는 없어요. 정확한 규약이 궁금할 때는 오픈 소스 이니셔티브(OSI) 웹사이트나 한국저작권위원회의 오픈소스SW 라이선스 종합정보시스템(OLIS)을 활용하면 관련 정보를 쉽게 찾아볼 수 있어요.
라이선스 적용이 복잡하게 느껴진다면, 도입하려는 라이선스를 이미 적용한 다른 오픈 소스 프로젝트의 LICENSE 나 NOTICE.txt 파일을 참고하는 것도 좋은 방법이에요.
실무에서 자주 접할 수 있는 대표적인 라이선스들의 특징을 정리해 볼게요. 하나의 프로젝트에 여러 라이선스가 혼합되어 사용되는 경우도 많아요.
GPL 3.0 으로 배포해야 하며, 소스 코드를 반드시 제공하거나 요청 시 제공하겠다는 약정을 포함해야 해요.오픈 소스 코드가 모두 공개되어 있다고 해서 무조건 무료로 사용할 수 있는 것은 아니에요. 라이선스의 조건(예: 소스 코드 공개 의무)을 준수할 때만 무료인 경우가 많아요.
라이선스에 명시된 내용을 따르지 않고 상업적으로 이용하거나 배포할 경우 법적인 분쟁이 발생할 수 있어요. 한컴의 오픈 소스 라이선스 위반 사례나 오라클과 구글의 분쟁 사례가 대표적이에요. 따라서 프로젝트에 외부 코드를 도입할 때는 배포 전에 항상 라이선스 조건을 꼼꼼히 확인해야 해요.