오픈소스가 뭐길래, 공짜로 가져다 써도 되는 걸까? 라이선스는 왜 따로 있을까
앱 정보 화면의 「오픈소스 라이선스」 항목이나 개발자 문서에서 처음 만나는 말이에요. 코드가 공개돼 있다고 해서 마음대로 써도 된다는 뜻은 아니고, 쓰는 조건은 라이선스에 적혀 있어요.
3줄 요약
- 오픈소스는 소스코드를 공개하고, 정해진 조건 안에서 누구나 쓰고 고쳐 다시 배포할 수 있게 한 소프트웨어예요.
- 값을 받지 않아도 조건이 없는 것은 아니에요. 어떤 라이선스냐에 따라 저작권 문구만 넣으면 되기도 하고, 고친 코드까지 공개해야 하기도 해요.
- 받아서 실행만 할 때는 의무가 생기지 않고, 내 제품에 넣어 남에게 배포할 때 라이선스별 의무가 생겨요.

01이 말이 무슨 뜻인가
오픈소스는 프로그램의 설계도에 해당하는 소스코드를 공개해 두고, 정해진 조건 안에서 누구나 쓰고 고쳐서 다시 나눠줄 수 있게 한 소프트웨어예요. 스마트폰 앱의 정보 화면에서 「오픈소스 라이선스」라는 항목을 본 적이 있다면, 그 앱이 남이 공개한 부품을 가져다 쓰고 있다는 표시를 본 거예요.
코드를 볼 수 있다고 모두 오픈소스는 아니에요. 오픈소스 인증 기관인 OSI가 정한 정의에는 소스코드가 함께 있을 것, 누구에게나 자유롭게 재배포할 수 있을 것, 고친 결과물도 원래 라이선스와 같은 조건으로 배포할 수 있을 것을 포함해 열 가지 조건이 있고, 코드에 접근할 수 있다는 것만으로는 부족하다고 밝혀 두었어요.
이 조건을 실제 문장으로 적어 둔 문서가 라이선스예요. 만든 사람이 「이 조건을 지키면 써도 좋다」고 미리 허락해 둔 계약서 같은 것이라, 같은 오픈소스라도 라이선스가 다르면 지켜야 할 일이 달라져요.
| 라이선스 계열 | 대표 예 | 배포할 때 지킬 일 |
|---|---|---|
| 퍼미시브 | BSD, MIT | 저작권과 라이선스 문구를 함께 알리는 고지 의무 |
| 퍼미시브(추가 의무) | Apache | 고지에 더해 특허를 무상으로 쓰게 허락하는 것 같은 의무 |
| 위크 카피레프트 | LGPL | 수정한 코드를 공개 |
| 스트롱 카피레프트 | GPL | 함께 묶인 코드까지 공개 |
02왜 이런 게 생겼나
개발자는 같은 기능을 매번 처음부터 짜지 않고, 이미 만들어져 검증된 부품을 가져다 쓰면 훨씬 빨리 제품을 낼 수 있어요. 그래서 누군가 쓸모 있는 코드를 공개하면 그 위에 다른 사람이 기능을 얹고, 그 결과가 다시 공개되면서 부품이 쌓이는 구조가 생겼어요.
오픈소스라는 이름과 정의가 지금의 모양을 갖춘 것은 1998년에 OSI가 오픈소스 정의를 내놓으면서예요. 이 정의는 데비안 프로젝트의 자유 소프트웨어 지침을 바탕으로 만들어졌고, 지금도 무엇이 오픈소스인지 가리는 대표 기준으로 쓰여요.
다만 코드도 저작물이라서, 허락 없이 가져다 쓰면 저작권 문제가 생겨요. 공개한 사람은 「이 조건 안에서는 써도 된다」를 라이선스로 적어 두고, 쓰는 사람은 그 조건을 지키는 방식으로 서로의 이해가 맞춰져요.
03의무는 어디까지 따라붙나
의무가 생기는 시점부터 갈려요. 오픈소스를 내려받아 내 컴퓨터에서 실행하기만 할 때는 의무가 생기지 않고, 그것을 내 프로그램에 넣어 남에게 배포할 때 라이선스별 의무가 따라와요. 회사가 앱이나 기기를 내놓을 때 오픈소스 고지 화면을 넣는 것도 이 때문이에요.
저작권과 라이선스 문구만 알리면 되는 퍼미시브 계열, 수정한 코드를 공개해야 하는 위크 카피레프트 계열, 함께 묶인 코드까지 공개해야 하는 스트롱 카피레프트 계열이에요.
같은 라이선스라도 소스코드로 주는지, 실행 파일로 주는지, 네트워크 서비스로 주는지에 따라 지켜야 할 일이 달라서, 과학기술정보통신부와 정보통신산업진흥원의 라이선스 가이드는 배포 방식별 체크리스트를 따로 두었어요. 어디까지 묶이는지는 해석이 갈리는 경우가 있어서, 실제 제품에 넣는 사람은 라이선스 원문과 가이드를 같이 봐야 해요.
04자주 헷갈리는 것
오픈소스와 공짜 프로그램은 같은 말이 아니에요. 오픈소스 정의는 팔거나 나눠주는 것을 막지 않고, 그 대가로 사용료를 요구해서도 안 된다고 하지만, 그것이 곧 아무 조건 없이 쓴다는 뜻은 아니에요. 공짜인지 아닌지와 지켜야 할 조건이 있는지는 따로 따져야 해요.
소스를 공개하라는 의무가 모든 오픈소스에 붙는 것도 아니에요. BSD나 MIT 같은 계열은 고지 의무만 요구하고, Apache 계열은 고지에 더해 특허를 무상으로 쓰게 허락하는 것 같은 의무가 붙어요. 소스 공개가 따라오는 쪽은 GPL 같은 카피레프트 계열이에요.
「GPL을 한 줄만 써도 내 코드 전체를 공개해야 한다」는 말은 자주 들리지만, 의무가 어디까지 미치는지는 코드를 어떻게 결합했느냐에 따라 해석이 갈려요. 그래서 이 문제는 소문으로 판단하지 말고 라이선스 원문과 전문가 검토로 확인해야 해요.
05언제 내 일이 되나
코드를 직접 짜는 사람은 깃허브 같은 곳에서 부품을 가져오는 순간부터 해당돼요. 가져오기 전에 그 프로젝트의 LICENSE 파일을 열어 어떤 조건인지 읽는 일이 첫 단계고, 배포할 계획이 있다면 어떤 의무가 붙는지 그때 함께 정해야 해요.
회사가 제품에 여러 오픈소스를 넣는다면 부품마다 라이선스가 다르다는 점이 관리 문제가 돼요. 나중에 보안 문제가 생겼을 때 어느 제품에 어떤 부품이 들어갔는지 찾으려면 부품 목록이 필요하고, 라이선스 조건도 같은 목록에서 확인하는 편이 안전해요.
코드를 쓰지 않는 사람에게는 앱 정보 화면의 오픈소스 라이선스 항목이 이 제도를 눈으로 보는 자리예요. 그 목록이 길다는 것은 그 앱이 남이 공개한 부품을 많이 쓴다는 뜻일 뿐, 그 자체로 위험하다는 뜻은 아니에요.
이것만 기억하세요
- 오픈소스는 소스코드를 공개하고 정해진 조건 안에서 쓰고 고쳐 다시 배포하게 한 소프트웨어고, 그 조건이 라이선스예요.
- 받아서 실행만 할 때는 의무가 없고, 내 제품에 넣어 배포할 때 고지나 소스 공개 같은 의무가 라이선스별로 붙어요.
- 가져다 쓰기 전에 LICENSE 파일을 읽고 배포할 때 어떤 의무가 붙는지부터 확인하세요.




