이 글은 노마드코더 유튜버께서 만드신 영상에 대한 리뷰이다.
오픈소스는 사용자가 무조건 마음대로 활용할 수 있는 것은 아니다.
라이센스를 통해 오픈소스가 어떻게 얼마나 활용될 수 있는지를 정한다.
라이센스의 종류는 크게 다음과 같은 것이 있다.
1. MIT, Apache
- 코드를 이용해 이것저것을 만들고 돈도 벌고 애플리케이션을 만들거나 할 수가 있음.
- 하지만 오픈소스 코드의 버그로 인해 금전적인 손해가 발생하더라도 코드 개발자나 회사를 소송을 걸 수가 없다.
2. GPL
- 해당 코드를 가져다 나의 앱을 만드는 것은 괜찮다.
- 해당 앱은 코드를 사용한 파생물이므로 외부에 공개시 앱과 결과물, 코드 모두 같은 GPL라이센스로 공개해야 된다.
- 다만, 이 공개한 코드는 별도 라이센스 표기가 없더라도 창작자가 모든 저작권을 가지고 있으므로
그 누구도, 허락없이 재생산, 배포하거나 다른 파생상품을 만들어서는 안되게 제한할 수 있다.
이러한 차이점이 있으므로 오픈소스 사용자들은 해당 프로젝트의 라이센스를 살펴보고 사용시에 법에 저촉되는지의 여부를 판단해야 한다.
이와 관련해서 최근 논란이 되고 있는 재밌는 일화가 있다.
Github는 개발자라면 누구나 들어봤을 것이며 계정이 한개 이상씩은 가지고 있을 것이며,
가장 널리 사용하고 있는 public, private 버전 관리 웹 서비스이다.
이 Github에서는 수많은 사람들이 작성한 오픈소스 코드들이 존재한다.
최근에 이 Github에서 GPT-3 모델을 사용한 그 많은 코드가 있는 수많은 레파지토리들을 학습시켜 자동 코드 완성 AI(Copilot)을 발표했다.
여기서 이 제품의 학습 데이터로 사용한 데이터가 문제가 되는데, Github에 존재하는 수많은 레파지토리의 코드들은 그들마다의 라이센스 표기를 갖고 있다.
GPL, MIT, Apache 등등..
근데 이 코드를 학습셋으로 사용한 파생된 소프트웨어 Copilot은 라이센스 표기에 따라 해당 코드 개발자들에게 따로 허락을 구해야 하는 경우에도 별도의 절차를 거치지 않은것이다.
Github의 해명에 따르면 github를 가입할 당시에 회원들은 github가 자신의 코드를 사용할수 있도록 승인을 했다는 것이다.
약관을 잘 읽으셨어야죠 고갱님
github에 우리의 코드를 올리고, 다른 유저에게 보여주고, 검색을 위해 인덱싱을 하고 서버에서 분석을 해도 되도록 말이다!
하지만 이 경우는 분석을 한 것이 아니지 않는가?
공짜로 모두 가져와서 학습에 사용을 하고, 저 제품을 사용할때는 우리는 돈을 내야 할수도 있지 않은가?
이건 일종의 라이센스 세탁이 아닌가의 우려가 존재해보인다.
저작권이 있는 라이센스 코드가 허락도 없이 활용된 케이스이니까 말이다.
Github CEO는 해명하길
"모든 코드들은 라이센스와 관계없이 사용할 수 있다."
왜냐하면 그 코드들은 Fair Use 카테고리에 있기 때문이다.
Fair Use 코드는 저작권이 있는 저작물을 연구 목적으로 제한적 사용을 허가하는 것을 말한다.
Github에 따르면 Copilot은 단순히 코드들을 재사용하는 것이 아니라 충분히 가공된 본적이 없는 코드를 생산한다고 말하고 있다.
하지만 input 자체를 라이센스 문제 우려가 있는 코드들을 사용해 학습한 것은 사실이고 그 모델을 사용해 모델이 생성해주는 코드들은 Fair Use 코드가 맞을까?
예를 들어, 내가 마블 영화 시리즈를 몽땅 가져와서 알고리즘에 넣고 뭔가 결과물을 낸 경우 이것은 창작물이라고 할 수 있을까?
게다가 Copilot이 뱉어주는 코드들이 따로 가공되지 않은 GPL 라이센스의 코드들을 한줄도 다르지 않은 결과로 생성하는 경우도 종종 있다고 한다.
Github는 그럴 수 있는 확률은 0.1%라고 얘기한다. 하지만 이정도라고 하더라도 충분히 문제를 제기할 수 있는 여지가 있어보인다.
그리고 다른 논란중에서는 개인정보 유출 관련 이슈도 존재한다.
Copilot이 켜진채로 vscode로 코딩을 하면 내가 쓰는 코드는 AI 모델로 사용된다고 한다.
그말인 즉슨 사용자가 원치 않더라도 내 코드는 MS 서버에 저장이 된다는 것인가의 문제이다.
이렇게 그동안에는 없었던 코드 자체를 사용해 파생 소프트웨어를 만들어왔던 것과는 다른 해당 코드를 AI 모델의 학습데이터로 사용했다는 것은 생소했던 일이기 때문에 논란이 많이 생기고 있는 문제인 것 같다.
어쨌든 개발자 개인의 입장에서 오픈소스가 필요해 사용할 때는 라이센스를 살펴보는 것이 중요할 것이다.