코드의 주체가 바뀌는 순간

오랫동안 소프트웨어 산업은 하나의 명확한 전제를 중심으로 작동해 왔다. 코드는 인간이 작성한다는 전제다. 이 단순한 사실 위에서 저작권 체계가 만들어졌고, 오픈소스 라이선스가 설계되었으며, 개발자 커뮤니티의 문화 역시 형성되었다. 누군가 코드를 작성하면 그 사람에게 저작권이 발생하고, 그 코드가 공개되면 특정한 라이선스 규칙 아래에서 재사용이 가능해진다. 소프트웨어의 법적 구조와 기술 생태계는 모두 이 기본 구조 위에서 안정적으로 작동해 왔다.

하지만 최근 몇 년 사이 이 전제는 조용히 흔들리기 시작했다. 생성형 AI가 등장하면서 코드 작성이라는 행위 자체가 더 이상 인간에게만 속한 일이 아니게 되었기 때문이다. 이제 개발자는 코드를 직접 작성하기도 하지만, 동시에 모델에게 코드를 요청하기도 한다. 개발 환경 속에서 AI는 점점 더 자연스럽게 코드 생산 과정에 참여하고 있으며, 어떤 경우에는 전체 함수나 모듈을 생성하기도 한다. 이 변화는 단순히 생산성 향상이라는 문제로 끝나지 않는다. 코드의 창작 주체가 모호해지는 순간, 기존의 저작권과 라이선스 체계 역시 다시 질문을 받게 된다.

이 시리즈는 바로 그 질문들을 하나씩 따라가는 과정이었다.

AI가 다시 쓴 코드라는 문제

첫 번째 이야기의 출발점은 오픈소스 커뮤니티에서 실제로 벌어진 논쟁이었다. 한 프로젝트가 기존 코드를 AI로 다시 작성한 뒤 라이선스를 변경하려 했던 사건이다. 표면적으로 보면 단순한 리팩토링처럼 보일 수도 있다. 기존 코드를 버리고 새로 작성했다면, 새로운 라이선스를 적용하는 것이 가능해 보이기 때문이다.

하지만 AI가 작성한 코드가 정말로 완전히 새로운 코드인지에 대해서는 쉽게 합의가 이루어지지 않았다. AI는 기존 코드를 그대로 복사하지 않는다. 그렇다고 완전히 독립적인 창작을 한다고 말하기도 어렵다. 모델은 방대한 코드 데이터를 학습한 뒤 통계적 패턴을 기반으로 새로운 코드를 생성한다. 이 과정에서 생성된 코드가 기존 코드와 어떤 관계를 가지는지는 매우 모호하다.

결국 이 사건이 던진 핵심 질문은 단순하다. AI가 다시 작성한 코드는 과연 독립적인 창작물인가, 아니면 원본 코드의 또 다른 형태일 뿐인가. 이 질문은 아직 명확한 답을 얻지 못했다. 하지만 분명한 것은, AI 시대의 소프트웨어 저작권 문제는 더 이상 단순한 코드 복제 여부만으로 판단하기 어려워졌다는 사실이다.

Copyleft와 학습 데이터라는 새로운 문제

두 번째 질문은 Copyleft 라이선스와 관련되어 있다. GPL 같은 라이선스는 단순한 오픈소스 라이선스가 아니다. 그것은 코드의 자유를 유지하기 위해 만들어진 하나의 철학적 장치이기도 하다. GPL 코드를 기반으로 만들어진 소프트웨어는 동일한 GPL 라이선스로 공개되어야 한다는 원칙은 수십 년 동안 자유 소프트웨어 생태계를 유지하는 중요한 기반이 되어 왔다.

그러나 AI 모델이 등장하면서 이 구조 역시 새로운 도전에 직면하게 되었다. 모델이 GPL 코드를 학습했다면, 그 모델이 생성한 코드 역시 GPL의 영향을 받아야 할까. 이 질문은 법적으로도 기술적으로도 매우 복잡한 문제다. 학습이라는 행위가 단순한 데이터 분석인지, 아니면 파생물 생성 과정의 일부인지에 대한 명확한 기준이 아직 존재하지 않기 때문이다.

AI는 코드를 그대로 복사하지 않지만, 완전히 독립적인 상태에서 코드를 생성하는 것도 아니다. 모델 내부에는 수많은 코드 패턴이 압축된 형태로 존재하고 있으며, 그 패턴은 결국 학습 데이터에서 비롯된 것이다. 따라서 학습 데이터의 라이선스가 모델의 결과물에 어떤 영향을 미칠 수 있는지에 대한 논쟁은 앞으로도 계속 이어질 가능성이 높다.

과거의 해결책, 클린룸 구현

이 문제를 이해하기 위해 우리는 잠시 소프트웨어 역사로 시선을 돌릴 필요가 있다. 과거에도 저작권과 구현 사이의 경계를 둘러싼 논쟁은 존재했다. 대표적인 사례가 바로 클린룸 구현이다.

클린룸 방식에서는 두 개의 팀이 완전히 분리된 상태에서 작업한다. 한 팀은 원본 코드를 분석해 기능 명세를 작성하고, 다른 팀은 그 명세만을 기반으로 새로운 코드를 작성한다. 구현 팀은 원본 코드를 직접 보지 않기 때문에 법적으로 독립적인 구현이라고 주장할 수 있다. 이 방식은 IBM BIOS나 다양한 시스템 소프트웨어를 재구현하는 과정에서 중요한 역할을 했다.

흥미로운 점은 AI 코드 생성 역시 어딘가에서 이 구조와 닮아 있다는 것이다. 모델은 특정 코드베이스를 직접 참조하지 않고 학습된 패턴을 기반으로 코드를 생성한다. 하지만 동시에 클린룸 방식과는 중요한 차이가 있다. 클린룸 구현에서는 분석과 구현이 명확히 분리되어 있지만, AI 모델은 학습 데이터 전체를 내부에 흡수한 상태에서 코드를 생성한다. 이 차이는 법적 해석에서도 중요한 의미를 가질 가능성이 있다.

인간 저작권이라는 오래된 원칙

AI 시대의 저작권 논의에서 또 하나 중요한 개념은 인간 저작권 원칙, 즉 Human Authorship이다. 대부분의 저작권 법 체계는 창작의 주체가 인간이라는 전제를 가지고 있다. 창작 행위는 인간의 지적 활동이며, 그 결과물에 대한 권리는 인간에게 귀속된다는 원칙이다.

하지만 AI가 코드나 텍스트를 생성하는 상황에서는 이 전제가 다시 문제로 떠오른다. 모델이 자동으로 생성한 코드에 저작권이 존재할 수 있는지, 존재한다면 누구에게 귀속되는지에 대한 논쟁이 이미 여러 나라에서 시작되고 있다. 현재까지는 AI가 독립적으로 생성한 결과물에 대해 저작권을 인정하지 않는 방향이 비교적 우세하다.

만약 이러한 해석이 유지된다면, AI가 생성한 상당수의 코드는 법적으로 보호받지 않는 영역에 속할 수도 있다. 이는 오픈소스 라이선스 구조에도 예상치 못한 영향을 미칠 수 있다. 저작권이 없는 코드에는 라이선스를 적용할 수 없기 때문이다.

새로운 형태의 소프트웨어 공급망

시리즈의 마지막에서 다룬 질문은 보다 구조적인 문제였다. AI 모델은 단순한 개발 도구일까, 아니면 새로운 형태의 소프트웨어 공급망일까.

현대 소프트웨어 개발은 이미 복잡한 의존성 구조 위에서 이루어진다. 수많은 라이브러리와 패키지가 서로 연결되어 하나의 애플리케이션을 구성한다. 개발자는 종종 직접 작성한 코드보다 외부 의존성에 더 많이 의존하기도 한다.

AI 모델은 이 구조에 또 다른 층위를 추가한다. 개발자가 작성하는 코드의 일부는 이제 모델이 생성한 코드일 수 있으며, 그 모델은 다시 수많은 오픈소스 프로젝트를 학습한 결과물이다. 즉, 모델은 과거의 코드 생태계를 압축한 일종의 지식 저장소처럼 작동한다.

이 관점에서 보면 AI는 단순한 코드 생성기가 아니라, 기존 소프트웨어 생태계를 재구성하는 새로운 공급망의 일부라고도 볼 수 있다.

결국 남는 질문

이 시리즈는 여러 법적·기술적 질문을 따라왔다. AI가 다시 쓴 코드는 누구의 것인지, GPL은 학습 데이터에 어떻게 적용되는지, 클린룸 구현과 AI의 차이는 무엇인지, AI 생성 코드에 저작권이 존재하는지, 그리고 Copyleft의 미래는 어떤 모습일지.

하지만 이 모든 질문 뒤에는 더 근본적인 문제가 있다. 우리는 어떤 소프트웨어 생태계를 만들고 싶은가 하는 문제다.

오픈소스는 단순한 기술 모델이 아니라 하나의 사회적 합의였다. 개발자들은 코드를 공유하기로 선택했고, 그 선택이 지금의 거대한 생태계를 만들어 냈다. AI 역시 마찬가지다. 기술 자체는 방향을 결정하지 않는다. 결국 어떤 규칙을 만들고 어떤 원칙을 유지할 것인지는 사람들의 선택에 달려 있다.

AI가 코드를 쓰는 시대에도 개발자의 역할은 사라지지 않는다. 오히려 더 중요한 결정들이 인간의 몫으로 남게 된다. 어떤 코드가 사용되어야 하는지, 어떤 라이선스가 적용되어야 하는지, 그리고 어떤 철학 위에서 소프트웨어가 만들어져야 하는지를 결정하는 일은 여전히 인간의 책임이기 때문이다.

변화의 초입에서

AI가 소프트웨어 산업에 미치는 영향은 아직 초기 단계에 불과하다. 앞으로 수년 동안 새로운 법적 해석과 기술적 기준이 등장할 가능성이 높다. 오픈소스 라이선스 역시 이 변화 속에서 새로운 형태로 진화할지도 모른다.

하지만 지금 이 순간 우리가 확실히 알 수 있는 사실이 하나 있다. 소프트웨어를 둘러싼 가장 기본적인 질문들이 다시 등장하고 있다는 점이다. 코드의 주체는 누구인가, 지식은 어떻게 공유되어야 하는가, 그리고 자유 소프트웨어라는 개념은 앞으로 어떤 의미를 가지게 될 것인가.

이 시리즈는 그 질문들을 정리하기 위한 하나의 시도였다. 그리고 아마 이 이야기는 아직 끝나지 않았다. 오히려 이제 막 시작된 이야기일 가능성이 더 크다.

AI가 코드를 쓰는 시대에, 우리가 다시 고민해야 할 것은 기술 그 자체가 아니라 그 기술 위에서 만들어질 새로운 소프트웨어 질서일지도 모른다.