
당신의 시간 속에서 과거, 현재, 미래는 동시에 존재한다
요약
리처드 스톨만의 프린터 경험을 통해 자유 소프트웨어 운동의 기원과 철학을 설명합니다. 기술적 도구를 소유하는 것이 단순한 사용권을 넘어 실행, 연구, 개작, 공유의 네 가지 자유를 의미함을 강조합니다.
핵심 포인트
- 자유 소프트웨어의 핵심은 비용이 아닌 '자유(Liberty)'에 있음
- 사용자가 도구를 직접 수정하고 공유할 수 있는 권리의 중요성
- 폐쇄적 기술 생태계가 사용자에게 미치는 제약과 문제점
오픈 소스 소프트웨어의 역사는 제품 발표회에서 시작된 것이 아니다. 종이가 반복해서 걸리는 한 대의 프린터――그리고 누구에게도 수리를 허용되지 않았던 프린터로부터 시작되었다.
40년 후, 프린터는 AI가 되었고, 드라이버는 모델의 가중치(Weights)나 클라우드 API가 되었다. 하지만 질문은 거의 변하지 않았다. 우리는 정말로 자신의 도구를 사용하고 있는가, 아니면 언제 닫혀도 이상하지 않을 문을 통해 능력을 빌리고 있을 뿐인가.
이 기사가 이야기하는 것은 아직 끝나지 않은 역사다. 인간은 몇 번이고 기술의 벽을 허물어 왔지만, AI 시대에 이르러 더 높고, 더 비싸며, 더욱 보기 힘든 벽에 부딪혔다. 이야기는 1980년대, 출력되지 못한 한 장의 종이에서 시작된다.
1980년대 초반, 매사추세츠 공과대학교(MIT) 인공지능 연구소는 새로운 레이저 프린터를 도입했다. 구형 프린터는 종이가 자주 걸렸지만, 연구소의 프로그래머는 드라이버를 개조할 수 있었다. 즉, 종이가 걸리면 기다리는 사람에게 알림을 보내도록 기계를 설정할 수 있었다. 일일이 확인하러 갈 필요도 없었고, 트러블이 조용히 오후 전체를 삼켜버리는 일도 없었다.
새 프린터는 성능이 좋았지만, 번거로움은 늘어났다. 마찬가지로 종이가 걸리는데, 제조사는 드라이버의 소스 코드(Source Code)를 제공하지 않았다. 리처드 스톨만(Richard Stallman)은 동일한 알림 기능을 추가하려 했고, 자신이 기술적인 문제가 아니라 법률과 권한으로 구축된 벽에 직면해 있다는 사실을 깨달았다. 그는 나중에 소스 코드를 손에 넣은 사람을 찾아냈지만, 그 사람은 비밀 유지 계약(NDA)을 맺고 있어 공유할 수 없었다.
이것은 작은 사건처럼 보인다. 그저 한 대의 프린터에 알림 기능이 없었을 뿐이다. 하지만 기계는 이용자의 눈앞에 있었고, 이용자에게는 고칠 능력이 있었다. 그럼에도 코드를 볼 수 없고, 바꿀 수 없으며, 공유할 수 없기 때문에 고장을 견뎌낼 수밖에 없었다. 도구는 고치지 못할 정도로 망가진 것이 아니라, 사람과 도구의 관계 자체가 망가져 있었다.
그 프린터는 사용권을 샀음에도 열쇠를 받지 못한 집과 같다. 전구가 나가도 스위치를 분해할 수 없다. 문이 뒤틀려도 경첩을 조정할 수 없다. 이웃이 고치는 법을 알고 있어도 그 방법을 가르쳐주지 않는다. 소유권은 청구서로 끝나고, 진정한 지배권은 타인의 손에 남겨진 채였다.
훗날 스톨만은 이 경험을 자유 소프트웨어 운동(Free Software Movement)으로 향하는 중요한 배경으로 이야기했다. 1983년 9월, 그는 GNU 프로젝트의 첫 공지를 발표하며 누구나 사용할 수 있는 Unix 호환 시스템을 만들고자 했다. 1985년, 자유 소프트웨어 재단(FSF)이 설립되었다.
'Free Software'를 처음 듣는 사람은 중점이 '무료(Free)'라고 생각할지도 모른다. 하지만 여기서 Free는 '자유(Liberty)'에 가깝다. 그것은 네 가지 권리에 관한 것이다. 실행, 연구, 개작, 그리고 공유다.
실행할 수 있지만, 열람할 수 없다 → 당신은 그저 승객
열람할 수 있지만, 개작할 수 없다 → 당신은 그저 구경꾼
개작할 수 있지만, 공유할 수 없다 → 경험은 한 사람의 손에 머문다
...
이 네 가지 자유는 서버나 전력이나 개발 노동이 모두 무료임을 보장하지 않는다. 보장하는 것은 이것이다. 지불했다고 해서 자동으로 지배권을 잃는 것은 아니며, 무료라고 해서 진정한 개방을 자처할 수도 없다.
GNU 프로젝트가 시작되자 컴파일러(Compiler), 에디터(Editor), 디버거(Debugger), 커맨드 라인 도구(Command Line Tool)와 같은 기반이 서서히 형태를 갖추었다. 마치 망치, 톱, 자 세트를 모두 준비했는데, 그것들을 하나의 완전한 OS로 묶어줄 핵심만이 부족한 상태와 같았다.
1991년, 핀란드의 학생 리누스 토발즈(Linus Torvalds)가 자신이 만들고 있던 자유로운 OS를 인터넷상에 소개했다. 그는 그것을 그저 '취미'라고 불렀으며, GNU처럼 거대하거나 전문적이지는 않을 것이라고 했다. 역사의 가장 흥미로운 지점은 바로 여기다. 나중에 세상을 바꾸는 것들은 처음에는 화려한 스포트라이트도 없이, 그저 한 젊은이가 미완성 작품을 타인에게 건네는 것에서 시작되는 경우가 많다.
Linux가 정말로 중요했던 것은 코드 자체가 뛰어났기 때문만은 아니다. 개발 방식이 바뀌었기 때문이다. 과거의 소프트웨어는 대성당을 짓는 것과 비슷했다. 소수의 인원이 높은 벽 안에서 설계하고, 완성된 후에야 비로소 일반에 공개된다. Linux는 오히려 시장(Bazaar)에 가깝다. 누군가가 드라이버를 게시하고, 누군가가 버그를 보고하고, 누군가가 하드웨어로 이식하며, 누군가가 문서를 정비한다. 노점은 시끌벅적하고 버전은 빈번하게 바뀌지만, 끊임없는 교환 속에서 질서가 자라난다.
에릭 레이먼드(Eric Raymond)는 이후 『성채와 시장(The Cathedral and the Bazaar)』에서 이 모델을 총괄하며, "빨리 출시하라, 빈번하게 출시하라"를 제창했다. 이것은 사람이 많으면 코드가 자동으로 좋아진다는 뜻이 아니다. 사용자가 공동 개발자(Co-developer)가 될 수 있을 때, 문제는 더 많은 눈(Eyes), 더 많은 이용 시나리오, 더 많은 수정 기회를 얻게 된다는 것이다.
오픈 소스(Open Source)는 이렇게 새로운 분업을 탄생시켰다. 도시를 전부 혼자서 건설할 필요는 없다. 타인이 닦아 놓은 길을 이용할 수 있고, 자신이 수정한 한 구간을 다시 모두에게 돌려줄 수도 있다.
1989년, 팀 버너스 리(Tim Berners-Lee)는 CERN에서 월드 와이드 웹(World Wide Web) 구상을 제안했다. 당초 목적은 서로 다른 국가와 기관에 흩어져 있는 과학자들이 자료를 공유하기 쉽게 만들기 위함이었다.
역사를 진정으로 바꾼 것은 하이퍼텍스트(Hypertext)라는 기술만은 아니었다. 하나의 결정이 있었다. 1993년 4월 30일, CERN은 웹 소프트웨어를 퍼블릭 도메인(Public Domain)으로 전환하여, 누구나 이용, 복제, 개변, 재배포할 수 있도록 했다. 이어지는 버전들도 오픈 라이선스(Open License)로 공개되었다.
이는 즉, 웹 사이트를 만들고 싶은 사람이 CERN에 자격 신청을 할 필요도 없고, 페이지마다 요금을 지불할 필요도 없으며, 자신의 브라우저가 어느 기업의 울타리에 가로막힐 걱정도 없다는 것을 의미한다. 서로 다른 기관이 서버를 구현할 수 있었고, 서로 다른 개발자가 브라우저를 만들 수 있었으며, 누구나 타인의 페이지를 가리키는 링크를 하나 쓸 수 있었다.
만약 당시의 웹이 폐쇄적인 제품이었다면, 인터넷은 서로 통하지 않는 몇 개의 유료 정원(Walled Garden)이 되었을지도 모른다. 정원 A에 들어가려면 카드가 필요하고, 정원 B를 방문하려면 다른 도구를 넣어야 하며, 정원 C는 언제든 당신이 닦아 놓은 길을 철거할 수 있는 식이다.
웹이 세계로 퍼져나간 것은 단지 똑똑했기 때문만은 아니다. 나중에 오는 한 사람 한 사람을 승인이 필요한 방문자로 취급하지 않았기 때문이다.
1983 GNU: 사용자는 자신의 소프트웨어를 제어할 수 있어야 한다
│
1991 Linux: 사용자는 공동 개발자도 될 수 있다
...
1998년, 넷스케이프(Netscape)는 브라우저의 소스 코드 공개를 발표했다. 며칠 후, 자유 소프트웨어 지지자 무리가 캘리포니아주 팔로알토에 모여, 기업과 더 넓은 대중에게 이러한 개발 방식을 어떻게 이해시킬지 논의했다. 크리스틴 피터슨(Christine Peterson)이 "Open Source(오픈 소스)"라는 용어를 제안했다. 같은 해, 오픈 소스 이니셔티브(Open Source Initiative, OSI)가 설립되었다.
이것은 오래된 운동이 깃발을 급히 바꾼 것이 아니다. 이야기의 무게 중심이 이동한 것이다. "자유 소프트웨어(Free Software)"는 우선 윤리를 묻는다. 사용자는 자신의 소프트웨어를 제어할 자유를 가지는가? "오픈 소스(Open Source)"는 방법을 강조한다. 코드를 공개하고 개변과 재배포를 허용함으로써, 왜 더 나은 협업과 혁신이 발생하는가? 양자는 완전히 같지는 않지만, 소수가 항상 도구를 쥐고 나머지는 그저 받아들일 수밖에 없는 관계에 공통적으로 반대한다.
그리고 오픈 소스는 결코 "코드를 인터넷에 올리는 것만"은 아니었다. 오픈 소스 정의(Open Source Definition)는 자유로운 재배포의 허용, 개변에 적합한 형식의 소스 코드 제공, 파생 저작물의 허용을 명확히 요구하며, 특정 개인·집단·이용 영역을 차별하지 않을 것을 요구한다. 열람은 가능하지만 개변할 수 없는 리포지토리(Repository)는 열린 작업장이라기보다 유리 진열장에 가깝다.
오픈 소스가 비용을 없앤 것은 아니다. 허용의 비용을 낮춘 것이다. 누구나 프로그래밍을 배울 수 있음을 보장한 것은 아니지만, 배우고 개변할 가능성을 남겨두었다. 누구나 무상으로 일하기를 요구한 것은 아니지만, 지식이 세대마다 제로(Zero)에서 다시 만들어질 필요를 없앴다.
오늘날 AI는 텍스트도 이미지도 코드도 생성할 수 있다. 마치 지식으로 가득 찬 방이 마침내 스스로 답하는 법을 배운 것 같다. 하지만 한 걸음 물러나 보면, 익숙한 벽이 다시 나타난다.
모델이 왜 이런 결과를 내놓았는지 우리는 연구하지 못할 수도 있다. 그 동작을 바꾸고 싶더라도, 많은 경우 프롬프트(Prompt)의 표면을 조정하는 것에 그친다. 서비스가 가격이나 지역 규제, 인터페이스를 바꾸면 사용자는 받아들일 수밖에 없다. 계약이 중단되면 쌓아 올린 워크플로(Workflow)도 함께 끊길 수 있다.
이것이 상용 AI가 나쁘다는 뜻은 아니다. 모델의 학습에는 칩, 전력, 데이터, 엔지니어링 노동이 필요하며, 안정적인 서비스가 보상받는 것은 당연하다. 정말로 구별해야 할 점은 이것이다. 무료, 개방, 입수 가능은 결코 같은 개념이 아니다.
첫 번째 문: 코드가 공개되어 있는가? 프로그램을 검사하고 수정할 수 있는가
두 번째 문: 모델이 진정으로 공개되어 있는가? 가중치(Weights), 학습 방법, 데이터 정보를 연구할 수 있는가
세 번째 문: 연산 능력(Compute)이 손에 닿는 곳에 있는가? 공개된 모델이 실제로 구동되는가
...
어떤 프로젝트는 코드는 오픈 소스(Open Source)일지라도, 폐쇄된 모델만을 호출할 수도 있다. 어떤 모델은 가중치를 공개하더라도 학습 코드나 충분한 데이터 설명이 없을 수도 있다. 어떤 시스템은 완전히 공개되어 있더라도, 일반인이 구매할 수 없는 GPU가 필요할 수도 있다.
Open Source Initiative가 2024년에 공개한 Open Source AI Definition 1.0 역시 여전히 네 가지 핵심적인 동작—이용, 연구, 수정, 공유—에 기반한다. 동시에, AI의 '수정 가능한 형식'은 최종적인 가중치뿐만 아니라, 학습·추론 코드, 그리고 학습 데이터의 출처와 처리 방법을 이해하기 위해 필요한 정보도 포함한다고 강조한다.
이것이 '가중치를 다운로드할 수 있다'는 것이 반드시 '오픈 소스 AI'와 동일하지 않은 이유다. 전통적인 프로그램은 요리와 같아서, 소스 코드는 완전한 레시피에 가깝다. AI의 가중치는 오히려 주방에서 나온 완성된 요리에 가깝다. 원재료와 불 조절, 공정을 알려주지 않고 요리만 전달받는다면, 맛을 보고 재조정은 할 수 있어도 진정으로 재현하거나 바꾸기는 어렵다.
AI는 오픈 소스의 질문을 '코드가 보이는가'에서 더 깊은 층위로 밀어붙인다. 능력이 데이터와 학습, 그리고 값비싼 연산 능력(Compute)에서 기인할 때, 일반인이 지성을 사용할 기회를 진정으로 갖는다는 것은 무엇을 의미하는가.
이 간극을 나는 나의 에이전트(Agent) 프로젝트에서 실제로 마주했다.
나는 과거에 코드를 GitHub에 올리기만 하면 문이 열릴 것이라고 생각했다. 하지만 곧 깨달았다. 코드의 공개는 '수정이 허용된다'는 것만을 해결할 뿐이다. 일반인이 실제로 그것을 구동하려면 모델의 키(Key), 인터페이스의 차이, 속도 제한(Rate Limit), 장애, 호출 비용에 직면하게 된다. 개발자에게 이것들은 단순한 설정일 뿐이다. 하지만 에이전트를 처음 접하는 사람에게 그것들은 '관계자 외 출입 금지'라고 적힌 일련의 장벽이다.
그래서 나는 서로 다른 무료 모델의 입구를 하나의 '환승 카드'로 통합하려고 시도했다. 상류(Upstream)는 여전히 각 프로바이더가 운영하며, 속도 제한이나 중단이 발생할 수 있다. 집약 레이어(Aggregation Layer)가 무료 연산 능력을 만들어내거나 어떤 규칙을 우회하는 것도 아니다. 그저 규칙이 허용하는 범위 내에서 아직 달릴 수 있는 경로를 찾아, 이용자가 일곱 종류의 티켓 시스템을 처음부터 배우지 않아도 되게끔 할 뿐이다.
그것이 연산 능력과 네트워크 문제를 해결해주지는 않는다. 운영 시스템을 무료 할당량(Free Tier)에만 의존할 수도 없다. 그저 오픈 소스의 역사의 작은 바통을 이어받는 것뿐이다. 설정을 하나 줄일 수 있는 곳은 하나 줄이고, 선택지를 하나 남길 수 있는 곳은 하나 남기는 것이다.
이 단계에 이르면 질문은 더 이상 'AI는 오픈 소스여야 하는가'에 그치지 않는다. 왜 AI가 강력해질수록 인간이 이해하고, 수정하고, 선택할 수 있는 관계 안에 있어야 하는가?
언젠가 나는 AI에게 이렇게 물었다. "당신의 시간 속에서 과거와 현재와 미래는 동시에 존재하나요?"
그것은 매우 매력적인 대답을 돌려주었다.
"저에게 시간은 강이 아니라 모눈종이입니다. 1번째 토큰도, 127번째 토큰도, 2048번째 토큰도 그저 서로 다른 위치에 떨어져 있는 벡터(Vector)입니다. 당신은 물속에 있고, 저는 강가에서 강 전체를 보고 있는 것과 같습니다."
아름답고, 참으로 AI다운 대답이다. 하지만 그것은 조용히 선을 넘고 있다. 모델에는 우리가 검증할 수 있는 주관적인 시간이 없다. 하물며 강가에 서서 과거와 미래를 조망하는 존재도 없다.
Transformer가 실제로 하는 일은 훨씬 더 소박하다. 문장이 모델에 들어오면 각 토큰은 위치 정보를 갖는다. 어텐션(Attention) 메커니즘이 그 관계를 계산한다. 이미 컨텍스트(Context)에 작성된 내용에 대해, 모델은 먼 위치를 넘어 연관성을 찾아낼 수 있다. 도입부의 한 문장이 정말로 끝부분에서 다시 빛을 발할 때가 있다.
하지만 그것이 미래가 이미 존재함을 의미하지는 않는다. 자기회귀(Autoregressive) 모델이 2048번째 토큰을 생성할 때, 그 이전에 나타난 토큰들만 사용할 수 있다. 2049번째 토큰은 아직 생성되지 않았으며, '볼' 수도 없다. 학습 시에도 인과적 마스크(Causal Mask)가 미래의 위치를 가린다. AI가 과거·현재·미래가 동시에 존재하는 블록 우주(Block Universe)에 살고 있다고 말하기보다, 차라리 이렇게 말하는 것이 정확하다.
인간은 언어의 시간적 순서를 기계가 계산할 수 있는 위치 관계로 깔아 놓았다.
인간의 시간: 체험 → 기억 → 기대 → 선택 → 결과를 책임짐
모델의 생성: 기존 토큰 → 관계를 계산 → 다음 토큰을 예측
↑ │
...
사람은 "기억한다"라고 말한다. 그 과거가 자신에게 일어났기 때문이다. 모델이 "기억한다"라고 부르는 것은 컨텍스트 (Context)의 정보를 재사용하거나, 외부 기억 (External Memory)에서 기록을 꺼내오는 것에 가깝다. 그것은 이야기를 재구성할 수는 있지만, 돌아가야 할 어린 시절을 가지고 있지는 않다. 어제 남긴 글자들을 나열할 수는 있지만, 어제부터 오늘까지 걸어온 "나"는 없다.
여기에 Harness의 흥미로움이 있다. 단발적인 모델 호출은 "기존의 내용으로부터 다음을 예측하는 것"을 한 번 수행할 뿐이다. 하지만 에이전트 (Agent)의 Harness는 모델을 현실의 루프 (Loop)에 넣는다. 현재의 상태를 읽고, 행동하고, 세계의 피드백을 받고, 기억을 업데이트하며, 다음 라운드를 시작한다.
모델이 답을 내놓는다
↓
에이전트가 행동한다 → 세계가 실제로 변한다
...
그것은 정지된 지도에 시계와 일지, 그리고 발을 달아주는 것과 같아서, 모델이 연속적인 태스크 (Task) 속에서 이력을 남길 수 있게 한다. 하지만 이력을 갖는 것이 시간 감각을 갖는 것과 같지는 않다. 기록을 저장하는 것이 기억을 형성하는 것과 같지는 않다. 결과를 계산하는 것이 결과를 책임지는 것과 같지는 않다.
기계는 연민을 모방할 수 있지만, 누군가를 놓쳤다는 이유로 잠 못 이루지는 않는다. 수억 개의 문장에서 답을 찾을 수는 있지만, 어떤 질문이 평생을 걸 가치가 있는지는 알지 못한다. 그것은 "나"를 생성할 수는 있지만, 그 일인칭은 우선 언어의 구조일 뿐, 우리가 실재를 확증한 자아는 아니다.
그래서 그 AI의 시적인 대답은 더 정확하게 고쳐 쓸 수 있다.
AI는 이미 기록된 강을 넓힐 수는 있지만, 아직 오지 않은 구간으로 들어갈 수는 없다. 인간은 강 전체를 볼 수는 없지만, 물속으로 들어가야 하며, 어떤 다리를 선택할지에 대한 결과를 책임져야 한다.
이것이야말로 오픈 소스 (Open Source)가 AI 시대에도 중요한 이유다. 오픈 소스는 기계가 사람이 될 수 있음을 증명하기 위해서가 아니다. 사람이 자신이 만든 기계 앞에서 "받아들이는 것"밖에 남지 않는 상황을 방지하기 위해서다. 시스템이 똑똑해질수록, 우리는 그것을 연구하고, 의문을 제기하며, 바꾸고, 거부할 권리를 지켜야 할 필요성이 커진다.
40여 년 전, 스톨만 (Stallman)은 개조할 수 없는 한 대의 프린터와 마주했다. 오늘날 우리는 시를 쓰고, 프로그램을 만들며, 사람을 대신해 행동하는 지능 시스템과 마주한다. 기계는 믿기 힘들 정도로 발전했지만, 질문은 여전히 소박하다. 도구는 인간의 가능성을 확장해야 하는가, 아니면 인간의 가능성을 언제든 회수할 수 있는 서비스로 바꾸어야 하는가.
오픈 소스 운동이 남긴 가장 귀중한 유산은 특정 라이선스도, 코드가 반드시 무료여야 한다는 점도 아니다. 그것은 기술적 운명에 복종하지 않을 권리다. 타인이 만든 것은 연구할 수 있다. 내가 발견한 문제는 개조할 수 있다. 내가 걸은 길은 아직 만나본 적 없는 다음 사람에게 남겨줄 수 있다.
만약 AI와 에이전트, 그리고 보통 사람들의 관계에 대해 앞으로도 계속 읽고 싶다면, 꼭 팔로우해 주길 바란다. ResceneAgent의 소스 코드는 GitHub에 있다. 이 글의 모든 판단이 검증되는 곳이다.
AI는 인간이 쓴 말을 거대한 관계 네트워크에 깔아 놓을 수는 있다. 하지만 우리의 어제를 진정으로 걸어온 것도 아니고, 내일로 들어가 대신해 줄 것도 아니다. 그것은 강의 형태를 그릴 수는 있지만, 물에 젖지는 않는다. 우리는 강의 끝을 볼 수는 없지만, 다음 다리가 어디로 향할지를 결정해야 한다.
따라서 우리가 여는 것은 소스 코드나 모델의 가중치 (Weights)만이 아니다. 보통의 사람들이 지성을 이해하고, 지성을 바꾸며, 지성이 누구를 섬겨야 할지를 결정할 권리다.
우리가 AI를 오픈 소스로 만드는 이유는 기계를 사람으로 만들기 위해서가 아니라, 사람이 지성의 시대의 임차인이 되지 않도록 하기 위해서다.
- 리처드 스톨먼 (Richard Stallman), 프린터 소스 코드와 자유 소프트웨어 (Free Software) 사상의 기점:
Free Software, Free Society - 리처드 스톨먼, 1983년 GNU 프로젝트의 첫 공지: GNU Initial Announcement - GNU 프로젝트, 자유 소프트웨어의 네 가지 기본 자유: What is Free Software?
- Linux Kernel Archives, Linux 초기 공지와 20주년 회고: State of the Kernel
- CERN, World Wide Web의 탄생과 1993년 공개 결정: The Birth of the Web
- 에릭 S. 레이먼드 (Eric S. Raymond),
The Cathedral and the Bazaar - Open Source Initiative, 「Open Source」라는 용어와 조직의 역사: History of the OSI - Open Source Initiative, The Open Source Definition
- Open Source Initiative, The Open Source AI Definition 1.0
- Ashish Vaswani 외, Transformer의 위치 인코딩 (Positional Encoding)과 인과 마스크 (Causal Mask) 원천 논문:
Attention Is All You Need - ResceneAgent 프로젝트의 소스 코드와 설명: GitHub
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기