오픈 소스 조건은 무엇인가요?
오픈 소스 조건: 2024년 기준 53% 라이선스 충돌 및 보안 취약점 리스크
오픈 소스 조건 이해는 소프트웨어 개발 과정에서 발생하는 법적 분쟁과 보안 위협을 방지하는 핵심 요소입니다. 라이선스 규정 위반은 기업 가치 평가나 투자 유치 및 실사 과정에서 치명적인 결함으로 작용하며 프로젝트의 존속을 위협합니다. 안정적인 개발 환경 구축과 권리 보호를 위해 반드시 정확한 준수 사항을 확인하십시오.
오픈 소스 사용 전, 반드시 알아야 할 '진짜' 조건들
많은 개발자와 기업이 오픈 소스를 단순히 무료로 쓸 수 있는 코드라고 생각합니다. 하지만 이는 반만 맞는 말입니다. 오픈 소스의 조건은 단순히 비용에 관한 것이 아니라, 사용한 대가로 무엇을 돌려줘야 하는가에 대한 법적 약속이기 때문입니다.
실제로 분석된 상용 코드베이스의 96%가 오픈 소스를 포함하고 있지만, 그중 53%는 라이선스 충돌 문제를 안고 있었습니다. 즉, 둘 중 하나는 잠재적인 법적 리스크를 안고 개발되고 있다는 뜻입니다. 이 글에서는 오픈 소스 소프트웨어 정의부터, 당신의 프로젝트를 살리거나 죽일 수 있는 라이선스별 핵심 조건, 그리고 위반 시 겪게 될 현실적인 시나리오까지 명확하게 정리해 드립니다.
핵심 조건 1: 오픈 소스 정의 (OSI 10대 원칙의 본질)
오픈 소스 이니셔티브(OSI)는 오픈 소스를 정의하기 위해 10가지 조건을 제시합니다. 복잡해 보이지만, 핵심은 세 가지로 요약됩니다.
1. 자유로운 재배포 (Free Redistribution)
누구든지 당신의 소프트웨어를 복사해서 친구에게 주거나 인터넷에 올릴 수 있어야 합니다. 이때 로열티나 비용을 요구할 수 없습니다.
2. 소스 코드 공개 (Source Code)
프로그램은 반드시 소스 코드를 포함하거나, 소스 코드를 쉽게 구할 수 있는 방법을 제공해야 합니다. 오픈 소스니까요.
3. 파생 저작물 허용 (Derived Works)
누구나 당신의 코드를 수정해서 새로운 프로그램을 만들 수 있어야 합니다. 그리고 그 수정된 프로그램도 원본과 같은 라이선스로 배포될 수 있어야 합니다.
이 세 가지가 지켜지지 않으면, 엄밀히 말해 오픈 소스가 아닙니다. (무료 소프트웨어인 프리웨어와 헷갈리지 마세요. 프리웨어는 소스 코드를 주지 않습니다.)
핵심 조건 2: 라이선스별 의무 사항 (내 코드를 공개해야 하나요?)
개발자들이 가장 두려워하는 질문입니다. 이 라이브러리를 쓰면 내 소스 코드도 다 공개해야 하나? 답은 어떤 라이선스를 썼느냐에 따라 천차만별입니다.
라이선스는 크게 두 가지 계열로 나뉩니다: Permissive(허용적) 라이선스와 Copyleft(카피레프트) 라이선스.
Permissive 라이선스: "마음대로 쓰세요, 출처만 남기면 됩니다"
MIT, Apache 2.0, BSD 라이선스가 여기에 속합니다. 이들은 사용 조건이 매우 관대합니다. 소스 코드를 수정해서 상용 프로그램을 만들고, 코드를 비공개로 해도 됩니다. 유일한 조건은 저작권 고지(Copyright Notice)와 라이선스 사본을 포함하는 것입니다. 그래서 기업들이 가장 선호합니다. 이는 대표적인 오픈 소스 라이선스 종류 중 하나로 분류됩니다.
Copyleft 라이선스: "받은 만큼 돌려주세요"
GPL, AGPL 라이선스가 대표적입니다. 이들은 '전염성'을 가집니다. 만약 당신이 GPL 코드를 가져와 수정하거나 결합해서 배포한다면, 당신의 전체 소스 코드도 GPL 라이선스로 공개해야 합니다.
많은 스타트업이 이 부분을 간과했다가 낭패를 봅니다. (저도 예전에 GPL 라이브러리를 무심코 썼다가 제품 출시 직전에 전체 모듈을 다시 짜야 했던 아픈 기억이 있습니다. 밤샘의 연속이었죠.)
현실적인 리스크: 위반하면 어떻게 되나요?
법적 소송? 물론 가능합니다. 하지만 더 흔하고 무서운 건 비즈니스 기회의 상실입니다.
투자 유치나 M&A 실사(Due Diligence) 과정에서 오픈 소스 위반은 치명적인 결함(Red Flag)으로 작용합니다. 실제로 전체 코드베이스 중 약 84%가 최소 하나의 취약점을 가지고 있으며, 74%는 고위험군 취약점을 포함하고 있다는 통계가 있습니다. 이는 보안 문제뿐만 아니라 오픈 소스 사용 시 의무 사항에 대한 관리 부실을 보여주는 지표이기도 합니다.
솔직히 말해서, 초기 스타트업 단계에서는 아무도 신경 쓰지 않을 수 있습니다. 하지만 회사가 성장하고 유명해지는 순간? 경쟁사나 저작권 사냥꾼들이 당신의 코드를 뜯어보기 시작할 겁니다. 그때 가서 수정하려면 비용은 수십 배로 뜁니다.
주요 오픈 소스 라이선스 한눈에 비교
프로젝트 성격에 따라 선택해야 할 라이선스가 달라집니다. 다음은 가장 많이 사용되는 4가지 라이선스의 핵심 차이점입니다.
MIT License ⭐ (가장 인기 많음)
- 저작권 고지 및 라이선스 전문 포함
- 없음 (Non-copyleft)
- 제한 없이 가능
- 명시되어 있지 않음 (이 점이 Apache와의 차이)
Apache License 2.0
- 저작권 고지, 라이선스 사본, 수정 사항 명시
- 없음 (Non-copyleft)
- 제한 없이 가능
- 사용자에게 특허 권리 명시적 부여 (기업 친화적)
GNU GPL v3.0
- 배포 시 동일한 라이선스 적용 (전염성)
- 강력함 (전체 코드 공개 필수)
- 가능하지만 소스 코드는 제공해야 함
- 포함됨
판교 스타트업의 라이선스 악몽과 탈출기
판교의 한 핀테크 스타트업 C사는 투자 유치를 앞두고 소프트웨어 감사를 받게 되었습니다. CTO인 민수(가명) 씨는 자신만만했습니다. 직접 짠 코드가 90% 이상이었으니까요. 하지만 실사 결과는 충격적이었습니다. '라이선스 위반으로 인한 심각한 법적 리스크 존재'.
원인은 신입 개발자가 차트 기능을 구현하며 가져다 쓴 작은 오픈 소스 라이브러리 하나였습니다. 그 라이브러리는 'AGPL' 라이선스였는데, 이는 서버에서 실행되는 코드라도 네트워크로 연결된 사용자에게 소스 코드를 공개해야 하는 가장 강력한 조건을 가지고 있었습니다.
투자자는 난색을 표했고, 민수 씨 팀은 선택의 기로에 섰습니다. 코드를 공개하거나, 해당 기능을 2주 안에 처음부터 다시 만들거나. 팀원들은 2주간 사무실에서 숙식하며 차트 모듈을 자체 개발(In-house)로 교체했습니다.
결과는? 투자는 예정대로 진행되었지만, 민수 씨는 뼈저린 교훈을 얻었습니다. 이제 C사는 깃허브(GitHub)에서 코드를 가져오기 전 반드시 라이선스부터 확인하는 '화이트리스트' 정책을 도입했습니다. 작은 습관 하나가 회사의 운명을 바꿀 뻔했던 것입니다.
핵심 메시지
코드를 가져오기 전 'LICENSE' 파일부터 확인하세요개발 편의성만 보고 npm install이나 git clone을 하기 전에, 해당 프로젝트의 루트 디렉토리에 있는 라이선스 파일을 읽는 습관을 들여야 합니다.
GPL과 AGPL은 '전염성'이 강합니다이 라이선스가 포함된 코드를 프로젝트에 섞는 순간, 당신의 전체 프로젝트도 코드를 공개해야 할 의무가 생길 수 있으니 상용 소프트웨어 개발 시 각별히 주의해야 합니다.
자동화된 도구로 리스크를 관리하세요사람의 기억력은 믿을 수 없습니다. FOSSA나 Snyk 같은 도구를 CI/CD 파이프라인에 연동해 라이선스 위반 여부를 자동으로 체크하는 것이 가장 안전합니다.
추가 읽기 제안
오픈 소스를 수정해서 팔아도 되나요?
네, 가능합니다. 오픈 소스는 '무료'가 아니라 '자유'를 의미하므로 상업적 판매를 막지 않습니다. 단, GPL 같은 라이선스라면 판매한 소프트웨어의 소스 코드도 구매자에게 제공해야 한다는 조건만 지키면 됩니다.
개인적인 공부 목적으로만 쓰고 배포는 안 할 건데, 그래도 조건을 지켜야 하나요?
아니요, 배포하지 않고 혼자(또는 회사 내부에서만) 사용한다면 라이선스 의무가 발생하지 않는 경우가 대부분입니다. 오픈 소스 조건의 핵심은 '배포(Redistribution)'가 일어날 때 발동됩니다. (단, AGPL은 예외적으로 네트워크 접근만으로도 공개 의무가 생길 수 있습니다.)
라이선스가 없는 깃허브 코드는 마음대로 써도 되나요?
절대 안 됩니다. 라이선스가 명시되지 않은 코드는 작성자에게 '모든 권리(All Rights Reserved)'가 있습니다. 즉, 허락 없이 사용하면 저작권 침해가 됩니다. 반드시 작성자에게 연락해 라이선스를 확인해야 합니다.
본 콘텐츠는 일반적인 정보를 제공할 목적으로 작성되었으며, 전문적인 법률 자문을 대체할 수 없습니다. 구체적인 라이선스 분쟁이나 법적 판단이 필요한 경우, 반드시 변호사나 지식재산권 전문가와 상담하시기 바랍니다.
답변에 대한 의견:
의견을 주셔서 감사합니다! 여러분의 의견은 향후 답변을 개선하는 데 매우 중요합니다.