독점 소프트웨어 시대는 끝났을까?
요약
일부 개발자가 Adobe 스위트 및 오피스 스위트를 Rust로 재작성하여 오픈 소스로 공개하는 움직임이 포착되었습니다. 이는 독점 소프트웨어 시대의 종말을 예고하며, '관찰을 통한 복사'라는 클린룸 디자인 개념과 연결됩니다. 이 글은 이러한 현상을 분석하고 있습니다.
핵심 포인트
- Adobe 스위트 등 상용 프로그램을 Rust로 재작성하여 오픈 소스로 공개함.
- '클린룸 디자인'은 원본 소프트웨어의 저작권으로부터 독립적으로 기능을 구현하는 방식임.
- 이러한 현상은 독점 소프트웨어 모델에 대한 근본적인 의문을 제기함.
며칠 전, 저는 이 게시물을 접했습니다:
Brandon Thomas라는 사람이 Adobe 스위트 전체, 포토샵(Photoshop), 프리미어(Premiere), 일러스트레이터(Illustrator), 라이트룸(Lightroom) 등... 총 7개의 소프트웨어 프로그램을 전면 디컴파일했다고 합니다. 모두 Rust로 재작성되어 AI를 통해 오픈 소스로 공개되었습니다.
아, 그리고 그는 며칠 후 오피스 스위트(Office suite)에 대해서도 같은 일을 했습니다. 모든 것이 오픈 소스로 Rust로 재작성되었습니다.
Brandon이 소프트웨어의 종말을 예고하는 운동의 시작을 알린 것일까요? 아니면 느리게 다가오는 SaaS 아포칼립스(SaaS Apocalypse)에서 나온 또 다른 거짓 출발일까요?
Artcraft
여러분은 이미 이 이야기를 보셨을 겁니다. 새로운 소식은 아닙니다. 저에게는 두 가지 질문이 흥미롭습니다.
Brandon은 "클린룸 디자인(clean room design)"을 구현하는 것에 대해 이야기합니다. 이 용어에 익숙하지 않다면, 기본적으로는 리버스 엔지니어링(reverse engineering)과 관련이 깊습니다.
원칙적으로 클린룸 구현에서는 한 팀이 소프트웨어가 무엇을 하는지 관찰하고, 문서를 읽고, 스크린샷을 찍은 다음, 이 모든 것을 원래 소프트웨어에 대한 세부 정보 없이 그것을 구현할 책임이 있는 다른 독립적인 팀에게 제공합니다. 클린룸 개념은 깨끗하고 오염되지 않은 환경을 만들려고 노력하는 실제 클린룸의 은유입니다. 여기서 중요한 것은 원래 소프트웨어와 그 저작권으로부터 '오염되지 않음'에 있습니다.
요약하자면, 복사하는 것이 맞습니다. 하지만 관찰을 통한 복사인 것입니다.
그리고 이것은 전혀 새로운 일이 아닙니다.
2003년, 저는 Lineage를 플레이하고 있었습니다. 아마 Lineage가 무엇인지 모두 아는 것은 아닐 겁니다. 이는 인기 있는 MMORPG였지만 주로 한국에서 인기를 끌었습니다. 유럽에는 서버가 없었고, 그 이유는 제가 말씀드릴 수 없습니다. 하지만 저는 그것을 플레이했습니다. 다만 공식 서버에서는 아니었습니다.

게임을 설정한 작은 팀이 있었는데, 그들은 자신들의 PC와 공식 서버 사이를 지나가는 모든 네트워크 패킷을 듣고, 각 네트워크 패킷을 게임의 기능에 매핑했습니다. 이동, 주문 사용, 대화 트리거, 인벤토리에 아이템 추가 등 말입니다. 패킷 하나하나씩요. 그리고 Java로 서버를 작성하여 그 게임과 통신할 수 있게 했습니다.
이것은 커스텀 버전의 게임을 플레이하거나, 다른 설정과 새로운 퀘스트를 가진 버전을 즐기는 등 많은 것들을 가능하게 했고, 물론 공식 서버를 거치지 않고도 게임을 할 수 있게 해주었습니다. 그리고 저에게는 2003년이라는 시기가 있었는데, 의심할 여지 없이 제 경력 중 최악의 직장에서 우울증 직전이었고, 트로 페 드 프랑스(Tour de France)를 보는 것 외에는 그 어느 때보다도 땀을 흘리고 있었습니다. 그래서 저는 프랑스 서버용 L2jfree 포크(fork)를 관리하는 작은 팀에 합류했습니다.
이렇게 말하자면, 제가 약간의 면죄부를 얻는 건가요? 저는 메인 팀 소속이 아니었습니다. 인터넷을 떠다니던 여러 포크 중 하나였을 뿐입니다.
어쨌든. 리버스 엔지니어링(Reverse engineering)은 항상 존재해 왔습니다.
그리고 상황을 명확하게 보려면, 우리가 흔히 혼동하는 세 가지를 구별할 필요가 있습니다.
첫째, **디컴파일(decompilation)**입니다. 컴파일된 프로그램에서 시작하여 소스 코드를 재구성하고, 이 소스 코드가 다시 컴파일되어 정확히 동일한 바이너리 바이트(byte-for-byte)를 생성하는 것을 목표로 합니다.
최근 사례로는 Maurice Heumann이 AI 에이전트 군집을 이용해 Modern Warfare 2의 소스 코드를 재구성한 사례가 있습니다. 약 3개월에 걸쳐 진행되었습니다. 현재까지 그는 게임 기능의 99%를 복제하는 데 성공했으며, 바이트 단위로 83%가 동일합니다.
그렇다면 이것이 무엇에 유용한지 궁금할 수 있습니다? 가능한 용도 중에는 두 번째 경우인 포팅(porting)이 있습니다.
포팅(porting)의 목표는 소프트웨어를 원래 플랫폼이 아닌 다른 곳에서 실행하도록 만드는 것입니다. 가장 잘 알려진 예로는 Doom현재 소스 코드가 공개됨이 있으며, 이 게임은 거의 모든 플랫폼으로 포팅되어 메밈(meme) 수준에 이르렀습니다. 우리는 브라우저, 스마트워치 심지어 약국 간판에서도 Doom을 발견할 수 있습니다. 최근 Kotaku에서 몇 주 안에 브라우저에서 수백 개의 포팅 사례를 다루었습니다. Halo, GTA Vice City, The Simpsons Hit and Run 등이 등장합니다.
그리고 마지막으로 **재구현(reimplementation)**이 있습니다. ArtCraft가 그 예입니다. 코드를 읽는 것이 아니라 모든 것을 관찰하여 그것을 동일하게 재창조하는 것입니다. 일종의 카피캣(copycat)인 셈이죠.
보고서에 따르면, ArtCraft는 품질 면에서 아직 완벽하지 않습니다. 하지만 첫 버전이 '단지' 2주밖에 되지 않았고, 이미 GitHub에 190명의 기여자가 있으며, 거의 매일 버전을 출시하고 있다는 점을 이해해야 합니다. 만약 이 사람들이 동기 부여를 유지한다면(보장되지는 않지만), 어쩌면 이 소프트웨어는 진정한 필수품이 될 수도 있습니다.
물론 Adobe가 소송을 제기하지 않는 한 말이죠.
과연 이것들이 모두 합법일까요?
법적인 문제인가요, 아닌 건가요?
간단히 말하자면: 복잡합니다.
좋습니다. 그렇다고 해서 답이 되는 것은 아닙니다.
유럽에는 중요한 선례가 있습니다. 2012년, 유럽연합 사법재판소는 SAS Institute 대 World Programming 사건에서 판결을 내렸습니다.
World Programming은 매뉴얼과 소프트웨어 작동 방식을 관찰하여 소스 코드 없이 SAS 소프트웨어를 재창조했습니다. 그리고 법원들은 소프트웨어의 기능, 언어, 파일 형식이 저작권으로 보호되지 않는다고 판단했습니다.
저는 이것이 상식적이라고 말하고 싶습니다. 사진 편집이나 창 레이아웃, 또는 일련의 기능 같은 개념을 우리가 보호할 수 있다고는 상상하기 어렵습니다.
따라서 PSD 파일을 열 수 있는 사진 편집기를 만드는 것은 문제가 아닙니다. 충분한 사진 편집기가 있으며 모두가 매우 잘 살고 있습니다.
반면에 두 가지 회색 영역이 있습니다.
첫 번째는 외관입니다. 인터페이스가 Photoshop을 거의 복사-붙여넣기 한 것이라면, 우리는 인터페이스에 대한 저작권이나 심지어 상표법의 영역으로 진입합니다. 당연히 로고에 대해 이야기하는 것은 아닙니다. 그것은 명백하니까요.
두 번째는 **기생(parasitism)**입니다. 프랑스 법에서는 한 회사가 다른 회사의 이미지나 평판을 이용하여 유해한 경쟁을 일으켜 이익을 얻는 경우를 말합니다.
ArtCraft 페이지에서 Adobe가 언급되는 적이 없다는 것을 알아차리실 겁니다. 그리고 그것은 우연이 아닙니다. 왜냐하면 Adobe의 이미지를 사용하여 그들에게 피해를 주거나 고객을 훔치는 것은 기생 행위가 될 것이기 때문입니다.
이 주제에 대한 작은 일화가 있습니다. Malt이 아직 Hopwork라고 불릴 때, 2015년에 두 주요 경쟁업체가 합병하여 우리와 매우 유사한 이름으로 자신들을 재명명했습니다. 이것은 유럽 시장에서 큰 혼란을 야기했습니다. 사람들은 검색 엔진에 이름을 잘못 입력하거나, 아니면 Google이 직접 경쟁사 이름을 넣어 수정할 것을 제안했습니다. 그래서 우리는 기생 행위로 소송을 걸었습니다. 이 사건은 합의를 통해 해결되었고, 우리는 Malt라는 이름을 가져갔지만 상당한 보상을 지불해야 했기 때문에 예전 이름에 대해 너무 많이 후회하지는 않았습니다.
어쨌든, 인터페이스와 Adobe와의 제휴 관계를 주장하는 ArtCraft는 비록 항상 명확하게 언급되지는 않더라도 소송을 당할 수 있습니다. 따라서 공격받는 것이 반드시 복사본 그 자체가 아니라 특정 회사를 겨냥한 상업적 피해입니다.
이제 본론으로 돌아가겠습니다. 이것이 새로운 것은 아니라고 말씀드렸습니다. 물론 게임 클론, 해적 포트(pirate ports), 재작성(rewrites), 소프트웨어 모드 등은 모두 새로운 것이 아닙니다. 과거의 웨어즈 산업도 기존 바이너리를 재컴파일하는 것에 기반을 두었습니다.
하지만 이제 AI가 있습니다.
진입 장벽의 하락
[REA,
REA의 원리는 간단합니다. 코드 에이전트에게 웹 애플리케이션, 네이티브 바이너리 또는 electron 애플리케이션 등 어떤 소프트웨어든 검사할 수 있는 수단을 제공하는 것입니다.
REA 자체는 많은 것을 수행하지 않습니다. 모든 이러한 행동을 도구에 위임합니다. 예를 들어 Ghidra나 IDA 같은 디컴파일러가 그것입니다. REA는 AI가 사용할 일련의 함수인 MCP를 제안합니다. 아이디어는 REA가 네트워크 스니핑, 프로그램 디컴파일, 난독화된 JavaScript 코드 분석 등과 같은 기능을 수행할 수 있는 도구를 사용하여 소프트웨어 관찰을 AI에게 단순화하는 것입니다.
그 자체로는 우리가 이미 할 수 있다는 것들로 가득 차 있습니다. 다만 여기서는 그것들을 AI와 함께 오케스트레이션(orchestrate)할 수 있다는 점이 다릅니다. 따라서 이전에는 전문가가 필요했지만, 이제 개발자도 훨씬 적은 시간 안에 같은 작업을 수행할 수 있게 된 것입니다.
분명히 말하자면, AI로 인해 리버스 엔지니어링 자체가 가능해진 것은 아닙니다. 단지 더 접근하기 쉬워졌을 뿐입니다.
그리고 우리가 이미 코드의 가치가 많이 떨어졌다고 여겼다면, 이제 무엇이 남아있을까요?
코드는 더 이상 가치가 없다
금융 시장은 이미 결정했습니다. 연초부터 Adobe는 주가가 40% 이상 하락했습니다.
그리고 Adobe만 그런 것이 아닙니다. 봄에 Salesforce, Workday, Microsoft, Shopify 모두 폭락했습니다. 우리는 오랫동안 소프트웨어의 종말인 SaaSpocalypse(SaaS 대재앙)에 대해 이야기해 왔습니다. 저 자신도 여러 번 이 주제를 다루었습니다.
왜냐하면 시장은 이러한 회사들이 AI로 부스팅된 수많은 경쟁자들로 대체될 것이라는 사실을 예상하고 있기 때문입니다.
하지만 실제로는 Adobe의 매출이 전년 대비 12% 증가했습니다. 그리고 그 반복 매출(recurring revenue)은 270억 달러를 초과합니다. 저는 살아가기 더 어려웠던 종말들을 경험해 봤습니다. 음, 아니지만, 무슨 말인지 아시겠죠.
계속해서 SaaSpocalypse에 대해 잘못되고 철저하게 이야기하면서, 많은 사람들은 어쩌면 실제로 약간의 과장이 있었을지도 모른다고 말했습니다.
저는 그렇게 생각하지 않습니다. 단지 두 번째 칼날이 아직 지나가지 않았을 뿐입니다.
설명해 드리겠습니다.
최근에 가구를 직접 만들어 보았습니다. 이전에는 치수를 재고, 종이에 그리고, 실수를 하곤 했습니다. 치수를 변경할 때마다 모든 것을 다시 계산해야 했죠.
결국 저는 절단 계획(cutting plan)이 필요했습니다. 혹시 모르신다면, 이건 기본적으로 판재들의 목록과 그 치수, 그리고 나무를 낭비하지 않고 자르는 방법을 정리한 것입니다.
저는 SketchUp을 사용해 보았습니다. 설치하는 과정이 길고 고통스러웠으며, 게다가 제가 원하는 절단 계획까지는 해주지 못했습니다.
그래서 저만의 소프트웨어를 만들었습니다. 가구를 설명하고 치수를 입력하면 모든 것이 계산됩니다. 그리고 제 절단 계획이 나옵니다. 판재의 두께를 변경해도 모든 것이 업데이트됩니다. 아무것도 다시 그리지 않고도 열 가지 옵션을 테스트할 수 있습니다. 전기 배선 통로(passage of electrical wires)나 조립 설명서(assembly instructions)를 볼 수 있는 기능도 추가했습니다.

이 소프트웨어는 제가 팔지 않을 겁니다. 아마 저에게만 유용할 테니까요.
두 번째 예시입니다. 저는 전체 동영상 제작 과정을 다시 설계했습니다. 각 단계를 살펴보고, 지루한 일에 낭비하던 시간을 파악했으며, 비디오 다운로드, 이미지 처리, 스크립트 작성 등 제가 이미 Python으로 만들어 놓았던 모든 도구들을 모았습니다... 그리고 이 모든 것을 하나의 애플리케이션에 담았고, 이렇게 완성했습니다. 저만의 소프트웨어입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기