合法(합법)이면 公正(공정)한가: AI 再具顯(재구현)과 카피레프트의 侵蝕(침식)

지난 ()、Python 텍스트 인코딩 探知(탐지) 라이브러리인 chardet의 메인테이너 Dan Blanchard가 새 버전을 릴리스했다。chardet 7.0은 速度(속도)旣存(기존) 對比(대비) 48() 빨라졌고、멀티코어를 支援(지원)하며、設計(설계)부터 다시 짜여졌다。Anthropic의 Claude가 寄與者(기여자)登載(등재)되어 있다。그리고 라이선스가 LGPL에서 MIT로 바뀌었다。

Blanchard의 말에 따르면 自身(자신)은 코드를 보지 않고 API와 테스트 스위트만을 參照(참조)해 Claude에게 처음부터 再具顯(재구현)하도록 指示(지시)했고、그 結果(결과) 以前(이전) 버전과의 코드 類似度(유사도)가 1.3% 未滿(미만)이라고 한다。따라서 이것은 獨自的(독자적)인 새 著作物(저작물)이며 LGPL을 繼承(계승)義務(의무)가 없다는 것이다。原作者(원작자) Mark Pilgrim은 GitHub 이슈를 열어 抗議(항의)했다。 LGPL은 修訂(수정) 配布(배포) () 同一(동일) 라이선스 維持(유지)要求(요구)하는데、旣存(기존) 코드에 充分(충분)露出(노출)狀態(상태)에서 만든 再具顯(재구현)은 클린 룸이라고 볼 수 없다는 것이 그의 主張(주장)이다。

事件(사건)은 Flask의 創始者(창시자) Armin Ronacher와 Redis의 創始者(창시자) Salvatore Sanfilippo(以下(이하) antirez)의 글을 ()해 더 넓은 論爭(논쟁)으로 번졌다。두 사람은 각기 다른 經路(경로)로—Ronacher는 라이선스 哲學(철학)側面(측면)에서antirez는 著作權法(저작권법)法理(법리)에서—이 再具顯(재구현)正當(정당)하다는 結論(결론)到達(도달)한다。나는 두 글을 모두 尊重(존중)하지만、둘 다 틀렸다고 생각한다。아니、더 正確(정확)하게는 둘 다 核心(핵심) 質問(질문)回避(회피)하고 있다。

核心(핵심) 質問(질문)이란 이것이다。合法(합법)이면 公正(공정)한가。두 글은 이 물음에는 ()하지 않은 채、法理的(법리적)으로 可能(가능)하다는 事實(사실)에서 社會的(사회적)으로 正當(정당)하다는 結論(결론)을 끌어낸다。法的(법적) 許容(허용)社會的(사회적) 當爲(당위)는 같은 것이 아니다。()最小限(최소한)基準(기준)()할 뿐이고、어떤 行爲(행위)가 그 基準(기준)通過(통과)한다는 것이 그 行爲(행위)가 옳다는 뜻은 아니다。이 區分(구분)이 이 글의 出發點(출발점)이다。

類比(유비)方向(방향)이 거꾸로다

antirez의 論據(논거)는 GNU 프로젝트가 UNIX 유저스페이스를 再具顯(재구현)했을 때、그것이 合法(합법)이었다는 史實(사실)에서 出發(출발)한다。Linux 커널도 마찬가지였다。著作權法(저작권법)保護(보호) 받는 表現(표현)(protected expressions)의 複製(복제)()하지만 아이디어와 動作(동작) 方式(방식)保護(보호)하지 않는다。AI로 再具顯(재구현)하는 것도 같은 法的(법적) 地形(지형) 위에 있으므로 合法(합법)이라는 것이다。

法理(법리)說明(설명) 自體(자체)大體(대체)로 맞다。再具顯(재구현)合法(합법)이라는 主張(주장)을 나는 反駁(반박)하지 않는다。問題(문제)는 그 다음 段階(단계)에 있다。antirez는 合法(합법)임을 보인 뒤 論議(논의)를 끝낸다。그러나 法理(법리)가 옳다는 것과 行爲(행위)社會的(사회적)으로 正當(정당)하다는 것은 別個(별개)主張(주장)이다。이 둘을 同一視(동일시)할 때 論證(논증)間隙(간극)이 생긴다。

間隙(간극)이 가장 鮮明(선명)하게 드러나는 곳이 바로 antirez가 끌어온 歷史的(역사적) 類比(유비)다。

GNU가 UNIX를 再具顯(재구현)했을 때、그 벡터는 獨佔(독점)에서 共有(공유) 쪽을 ()하고 있었다。Stallman은 UNIX라는 獨佔(독점) 소프트웨어를 自由(자유) 소프트웨어로 再具顯(재구현)하기 ()著作權法(저작권법)限界(한계)怜悧(영리)하게 活用(활용)한 것이다。그 再具顯(재구현)倫理的(윤리적) 正當性(정당성)法的(법적) 合法性(합법성)에서 오는 것이 아니라、公有地(공유지)(commons)를 넓히는 方向(방향)에서 나왔다。그것이 GNU 프로젝트가 歡呼(환호)를 받은 理由(이유)다。

chardet 事件(사건)에서 再具顯(재구현)의 벡터는 反對(반대) 方向(방향)이다。카피레프트 라이선스인 LGPL로 保護(보호)되던 소프트웨어가 퍼미시브 라이선스인 MIT로 再具顯(재구현)되었다。이것은 公有地(공유지)넓히는 再具顯(재구현)이 아니라 公有地(공유지)울타리를 除去(제거)하는 再具顯(재구현)이다。이제 chardet 7.0을 基盤(기반)으로 만들어지는 派生(파생) 作業(작업)은 소스 코드를 公開(공개)義務(의무)가 없다。() 1() 3千萬(천만) 다운로드라는 規模(규모)의 라이브러리에서 그 義務(의무)가 사라진 것이다。

antirez는 이 方向(방향)差異(차이)()하지 않는다。GNU의 歷史(역사)를 끌어왔는데、그 歷史(역사)()自身(자신)結論(결론)反證(반증) 事例(사례)가 된다는 것을 보지 못하거나 보지 않으려 한다。

GPL은 共有(공유)()하는가

便()、Ronacher의 論據(논거)는 다르다。그는 自身(자신)이 오래()부터 chardet이 ()GPL 라이선스로 바뀌기를 ()했다고 밝힌다。그리고 GPL이 共有(공유) 精神(정신)()한다主將(주장)한다。自身(자신)可能(가능)() 라이선스 強制(강제)가 적은 方向(방향)으로 公開(공개)하는 것을 支持(지지)하고、社會(사회)共有(공유)할 때 더 나아진다는 믿음을 가지고 있기 때문이란다。

主張(주장)은 GPL에 ()根本的(근본적)誤解(오해)를 담고 있다。

GPL이 무엇을 禁止(금지)하는지부터 보자。GPL은 소스 코드를 非公開(비공개)維持(유지)하는 것을 禁止(금지)하지 않는다。GPL 소프트웨어를 個人的(개인적)으로 修訂(수정)使用(사용)하는 것에는 아무런 制約(제약)이 없다。GPL이 條件(조건)發動(발동)시키는 것은 配布(배포)할 때뿐이다。修訂(수정)한 코드를 配布(배포)하거나 서비스로 提供(제공)하면、그 코드도 같은 條件(조건)으로 共有(공유)해야 한다는 것。이것은 共有(공유)制限(제한)하는 것이 아니라 共有(공유)條件(조건)으로 거는 것이다。

이것을 받아서 使用(사용)하고 改善(개선)했다면、그 改善(개선)共有(공유)하라要求(요구)共有(공유)抑制(억제)하는 메커니즘이 아니라 共有(공유)()달아 強制(강제)하는 메커니즘이다。公有地(공유지)利用者(이용자)에게 公有地(공유지)()寄與(기여) 義務(의무)賦課(부과)하는 것이 共有(공유) 文化(문화)()친다는 主張(주장)語不成說(어불성설)이다。

MIT 라이선스와 比較(비교)해 보면 差異(차이)分明(분명)하다。MIT 라이선스 ()에서는 누구나 코드를 가져다 改善(개선)한 뒤 獨佔(독점) 소프트웨어로 닫아버릴 수 있다。가져가서 써도 되지만 寄與(기여)選擇的(선택적)이다。Ronacher가 이 構造(구조)共有(공유) 親和的(친화적)이라고 본다면、그가 말하는 共有(공유)는 흘러가는 方向(방향)이 있는 共有(공유)다。더 많은 資本(자본)人力(인력)을 가진 쪽이 가져가는 方向(방향)으로。

非對稱(비대칭)現實(현실)에서 어떻게 作動(작동)하는지는 歷史(역사)가 보여준다。一九九〇年代(1990년대)에 많은 企業(기업)들이 GPL 코드를 吸收(흡수)獨佔(독점) 소프트웨어를 만들었다。이것이 可能(가능)했던 것은 그들이 MIT 같은 퍼미시브 라이선스를 選擇(선택)했기 때문이 아니라、當時(당시) 카피레프트 라이선스의 執行(집행)이 느슨했기 때문이다。GPL이 強化(강화)되면서 이 구멍이 막혔다。資源(자원)이 없어서 寄與(기여)()相互性(상호성)依存(의존)할 수밖에 없는 個人(개인) 開發者(개발자)나 작은 프로젝트에게 카피레프트는 그나마 對等(대등)交換(교환)可能(가능)하게 하는 裝置(장치)였다。

Flask를 만든 사람이 이 區分(구분)을 모를 () 없다。그렇다면 이 論據(논거)는 나이브한 것이 아니라 便宜的(편의적)인 것이다。

스스로 反證(반증)하는 事例(사례)

Ronacher의 글에서 가장 흥미로운 部分(부분)論據(논거)가 아니라 스쳐 지나가는 한 文章(문장)이다。Vercel이 GNU Bash를 AI로 再具顯(재구현)公開(공개)했다가Cloudflare가 같은 方式(방식)으로 Next.js를 再具顯(재구현)하자 눈에 띄게 ()를 냈다는 것이다。

Ronacher는 이것을 아이러니로 言及(언급)하고 넘어가지만、이 逸話(일화)는 그의 立場(입장) 全體(전체)를 무너뜨린다。Next.js는 MIT 라이선스다。Cloudflare의 vinext는 라이선스를 違反(위반)한 것이 아니라、Ronacher가 共有(공유) 文化(문화)進展(진전)이라 부른 바로 그 行爲(행위)를 Next.js에 適用(적용)한 것 뿐이다。Vercel의 憤怒(분노)는 라이선스 侵害(침해)()한 것이 아니라 純粹(순수)하게 競爭的(경쟁적)·領土的(영토적) 反應(반응)이었다。내가 GPL 소프트웨어를 MIT로 再具顯(재구현)하는 것은 共有(공유) 文化(문화)進展(진전)이고、누군가 내 MIT 소프트웨어를 같은 方式(방식)으로 再具顯(재구현)하는 것은 不快(불쾌)하다。 이것이 퍼미시브 라이선스 陣營(진영)이 카피레프트 陣營(진영)보다 더 共有(공유) 親和的(친화적)이라는 主張(주장)實體(실체)이다。그가 말하는 共有(공유) 精神(정신)結局(결국) 이토록 非對稱的(비대칭적)인 것이다。

Ronacher는 이 아이러니를 認識(인식)하고도 멈추지 않는다。自身(자신)世界觀(세계관)符合(부합)하는 事例(사례)이기 때문이란다。世界觀(세계관)一致(일치)하지 않는 證據(증거)를 스스로 提示(제시)하고도 結論(결론)을 바꾸지 않는 것은 論據(논거)結論(결론)에 앞서는 것이 아니라 結論(결론)論據(논거)에 앞서고 있다는 信號(신호)다。

合法性(합법성)社會的(사회적) 當爲(당위)는 다른 層位(층위)에 있다

序頭(서두)에서 말한 質問(질문)으로 돌아오자。合法(합법)이면 公正(공정)한가。

antirez는 法理(법리)를 꼼꼼히 說明(설명)한 뒤 그것으로 充分(충분)하다는 듯이 끝을 맺는다。Ronacher는 法的(법적) 灰色(회색) 地帶(지대)認定(인정)하면서도 道德的(도덕적) 問題(문제)내가 關心(관심) 있는 部分(부분)이 아니다라고 한 文章(문장)으로 넘긴다。두 글 모두 法的(법적) 許容(허용)社會的(사회적) 正當性(정당성)代理物(대리물)로 삼는다。그러나 ()은 어떤 行爲(행위)를 막지 않는다는 것을 말할 뿐이지、그 行爲(행위)가 옳다는 것을 保證(보증)하지는 않는다。租稅(조세)를 아슬아슬하게 回避(회피)하는 것이 合法(합법)이더라도 옳은지는 別個(별개)의 물음이다。特許(특허)合法的(합법적)으로 取得(취득)企業(기업)數十(수십) 年間(연간) 低廉(저렴)하게 供給(공급)되던 必需(필수) 醫藥品(의약품) 價格(가격)數十(수십) () 올리는 것이 合法(합법)이더라도、그것이 社會的(사회적)으로 正當(정당)하다는 뜻은 아니다。合法性(합법성)必要條件(필요조건)일 수 있지만 充分條件(충분조건)은 아니다。

chardet 事件(사건)에서 이 區分(구분)은 더욱 뚜렷하다。

chardet의 LGPL이 保護(보호)한 것은 Blanchard 한 사람의 勞動(노동)이 아니다。十二年間(12년간) 이 라이브러리에 寄與(기여)한 모든 사람들이 同意(동의)社會的(사회적) 契約(계약)이다。그 契約(계약)內容(내용)이것을 가져다 쓴다면、當身(당신)이 만든 것도 같은 條件(조건)으로 共有(공유)하라는 것이었다。이 契約(계약)法院(법원)強制(강제)하는 種類(종류)契約(계약)이기도 하지만、그보다 먼저 오픈 소스 共同體(공동체)數十年(수십년)에 걸쳐 構築(구축)해 온 信賴(신뢰)土臺(토대)였다。再具顯(재구현)法的(법적)으로 새로운 著作物(저작물)認定(인정)될 수 있다는 것과、그 再具顯(재구현)旣存(기존) 寄與者(기여자)들과 맺은 社會的(사회적) 契約(계약)破棄(파기)했다는 것은 別個(별개)問題(문제)다。法院(법원)萬一(만일) Blanchard의 손을 들어준대도 그것은 그의 行爲(행위)共同體的(공동체적)으로 正當(정당)하다는 것을 意味(의미)하지 않는다。合法性(합법성)社會的(사회적) 正當性(정당성)을 뒤따라오게 하지 않는다。

FSF 대표 Zoë Kooyman은 이를 簡潔(간결)하게 表現(표현)했다。自身(자신)이 받은 權利(권리)他人(타인)에게 賦與(부여)하기를 拒否(거부)하는 것은 어떤 方法(방법)을 쓰든 反社會的(반사회적) 行爲(행위)다。

누구의 觀點(관점)이 디폴트로 設定(설정)되어 있는가

論爭(논쟁)을 읽으면서 繼續(계속) 드는 質問(질문)이 있다。두 著者(저자)는 AI 再具顯(재구현)費用(비용) 下落(하락)을 어떤 位置(위치)에서 바라보고 있는가。

antirez는 Redis를 만들었고、Ronacher는 Flask를 만들었다。두 사람 모두 오픈 소스 生態系(생태계)中心(중심)에 있는 사람들이다。그들의 立場(입장)에서 AI 再具顯(재구현)費用(비용) 下落(하락)自身(자신)()하는 쪽의 이야기다。무언가를 더 쉽게 再具顯(재구현)할 수 있게 되는 것이다。Ronacher는 GNU Readline을 GPL이기 때문에 再具顯(재구현)하려 했다고 밝힌다。

反面(반면) 數十年間(수십년간) chardet 같은 라이브러리에 寄與(기여)해온 사람들의 立場(입장)에서 같은 技術(기술) 變化(변화)自身(자신)()하는 쪽의 이야기다。自身(자신)寄與(기여)가 담긴 카피레프트 保護膜(보호막)除去(제거)되는 것이다。두 著者(저자)前者(전자)位置(위치)에서 後者(후자)位置(위치)에 있는 사람들을 ()해 “이것은 恒常(항상) 合法(합법)이었고、歷史的(역사적) 先例(선례)가 있으며、技術(기술) 變化(변화)適應(적응)하라”고 말하고 있다。

非對稱(비대칭)無視(무시)한 채 普遍的(보편적) 論據(논거)인 것처럼 敍述(서술)할 때、글은 分析(분석)이 아니라 利害關係(이해관계)合理化(합리화)가 된다。두 著者(저자) 모두 自身(자신)利害關係(이해관계)正確(정확)一致(일치)하는 結論(결론)到達(도달)한다는 것을 讀者(독자)留念(유념)해야 한다。

이 싸움이 가리키는 것

Bruce Perens는 The Register와의 인터뷰에서 소프트웨어 開發(개발)全體(전체) 經濟學(경제학)이 죽었다警告(경고)했다。antirez는 비슷한 認識(인식)에서 適應(적응)하라고 말한다。Ronacher는 이 方向(방향)이 마음에 든다고 말한다。

反應(반응) 중 어느 것도 核心(핵심) 質問(질문)()하지 않는다。카피레프트의 執行(집행)技術的(기술적)으로 어려워졌을 때、그것이 카피레프트를 不必要(불필요)하게 만드는가、아니면 더욱 重要(중요)하게 만드는가。

나는 後者(후자)라고 생각한다。GPL이 保護(보호)한 것은 코드의 稀少性(희소성)이 아니라 使用者(사용자)權利(권리)였다。코드 生產(생산) 費用(비용)이 낮아진다고 해서 그 코드를 ()權利(권리)侵蝕(침식)하는 行爲(행위)가 괜찮아지는 것은 아니다。오히려 再具顯(재구현)摩擦(마찰)이 사라질수록、카피레프트 라이브러리를 MIT로 탈바꿈시키는 費用(비용)도 사라진다。GPL이 依存(의존)했던 摩擦(마찰)이 줄어들었다는 것은 法的(법적) 執行(집행)問題(문제)일 뿐、그 基底(기저)當爲(당위)를 건드리지 않는다。

當爲(당위)는 이것이다。公有地(공유지)에서 가져간 자는 公有地(공유지)에 돌려줘야 한다는 것。그 原則(원칙)再具顯(재구현)五年(5년) 걸리든 五日(5일) 걸리든 달라지지 않는다。法院(법원)이 AI 再具顯(재구현)을 클린 룸으로 認定(인정)하든 派生(파생) 著作物(저작물)로 보든、그 判決(판결)이 이 原則(원칙)社會的(사회적) 무게를 輕減(경감)시키지는 않는다。

이것이 法理(법리)社會的(사회적) 價値(가치)가 갈라지는 地點(지점)이다。()事後的(사후적)으로、느리게、現在(현재)權力(권력) 關係(관계)反映(반영)하며 만들어진다。오픈 소스 共同體(공동체)數十(수십) ()에 걸쳐 쌓아온 規範(규범)法院(법원)判決(판결)을 기다리지 않았다。()이 그것을 保護(보호)해주지 않을 때도 사람들이 GPL을 選擇(선택)한 것은、그것이 自身(자신)()共同體(공동체)價値(가치)一致(일치)했기 때문이다。그 價値(가치)()이 바뀐다고 사라지지 않는다。

以前(이전) 글들에서 나는 이 싸움의 다음 段階(단계)訓練(훈련) 카피레프트(TGPL)를 提案(제안)했다。 AI 再具顯(재구현) 問題(문제)는 거기서 한 걸음 더 나아가 明細(명세)(specification) 階層(계층)까지 保護(보호) 範圍(범위)擴張(확장)해야 한다는 것을 示唆(시사)한다。소스 코드가 明細(명세)로부터 生成(생성)될 수 있다면、그 明細(명세)가 GPL 프로젝트의 本質的(본질적) 知識財產(지식재산)이 된다。소스 코드를 보지 않고 테스트 스위트와 API만으로 再具顯(재구현)했다는 Blanchard의 主張(주장)은、逆說的(역설적)으로、그 테스트 스위트와 API 明細(명세)保護(보호)되어야 한다는 論據(논거)가 된다。

GPL의 歷史(역사)는 새로운 搾取(착취) 方式(방식)登場(등장)할 때마다 法的(법적) 道具(도구)進化(진화)해 온 歷史(역사)다。GPLv2에서 GPLv3로、AGPL로。그러나 그 進化(진화)를 이끈 것은 判決(판결)이 아니라 共同體(공동체)價値(가치) 判斷(판단)이었다。()은 뒤따라왔다。只今(지금)도 마찬가지다。法院(법원)이 AI 再具顯(재구현)()해 어떤 判決(판결)을 내리든、우리가 먼저 ()해야 할 質問(질문)法的(법적)인 것이 아니라 社會的(사회적)인 것이다。公有地(공유지)의 열매를 ()()公有地(공유지)에 돌려줄 義務(의무)가 있는가。나는 그렇다고 생각한다。그리고 그 判斷(판단)法院(법원)判決(판결)을 기다릴 필요가 없다。

antirez와 Ronacher의 글이 興味(흥미)로운 것은 그들이 옳기 때문이 아니라、그들이 무엇을 보지 않으려 하는지가 鮮明(선명)하게 드러나기 때문이다。合法性(합법성)으로 社會的(사회적) 價値(가치) 判斷(판단)代身(대신)하려 할 때、정작 重要(중요)質問(질문)法理(법리)의 그늘 속에 묻힌다。