브라우저에서 돌아가는 자가 복제 Forth Mesh Agent: 천재적인 발상인가, 단순한 기행인가?


도입: 브라우저 탭, 그리고 기묘한 실험

15년 넘게 엔지니어로 일하면서 수많은 기술 스택의 흥망성쇠를 지켜봤지만, 가끔 해커뉴스(Hacker News)를 보다 보면 “도대체 왜 이런 걸 만들었지?” 싶으면서도 묘하게 끌리는 프로젝트를 발견하곤 합니다. 이번에 눈에 띈 프로젝트는 Unit 입니다.

‘브라우저 탭에서 실행되는 자가 복제(self-replicating) Forth 인터프리터이자 Mesh Agent’라니. 키워드만 들어도 사이버펑크 냄새가 물씬 풍기지 않나요? 처음엔 단순한 장난감인가 싶었지만, 내부를 들여다볼수록 꽤 흥미로운 엔지니어링 의도가 숨어있었습니다.

기술적 톺아보기: 왜 하필 Forth와 WebAssembly인가?

원문 페이지와 패키지 구조(crates.io 언급)를 보면 아키텍처를 쉽게 유추할 수 있습니다. 코어 엔진은 Rust로 작성되었고, WebAssembly(Wasm)로 컴파일되어 브라우저에 올라가는 구조입니다.

가장 눈에 띄는 질문은 이것입니다. 왜 하필 Forth일까요?

Forth는 극단적으로 가볍고 단순한 스택 기반(stack-based) 언어입니다. 메모리 제약이 심한 과거의 임베디드 시스템에서나 쓰던 이 유물을 최신 브라우저로 가져온 이유는 명확해 보입니다. Agent가 네트워크를 타고 돌아다닐 때 발생하는 페이로드(payload)를 최소화하기 위해서입니다.

  • Mesh Networking: 브라우저 탭들끼리 WebRTC와 같은 P2P 프로토콜을 통해 Mesh 네트워크를 구성합니다.
  • Self-Replicating: 이 네트워크 위에서 Forth 코드가 자신을 복제(spawn)하며 다른 노드(탭)로 이동하거나 증식합니다.

최근의 무거운 JavaScript 런타임이나 복잡한 JSON 기반의 통신 방식 대신, Wasm 위에서 돌아가는 초경량 Forth 인터프리터를 사용해 Latency를 줄이고 Throughput을 극대화하려는 접근은 엔지니어로서 꽤 신선하게 다가옵니다.

개인적인 시선: 봇넷인가, 인공생명(ALife)인가?

솔직히 말씀드리면, 처음 이 프로젝트를 봤을 때 “그래서 이걸 프로덕션 어디에 쓰지?” 라는 회의감이 강하게 들었습니다. 사용자의 브라우저 탭을 좀비 PC처럼 활용하는 우아한 봇넷(Botnet)을 만드는 건가 싶기도 했고요. 과거 2010년대 중반에 비슷한 P2P 브라우저 컴퓨팅을 시도했던 프로젝트들이 있었지만, 대부분 상태 동기화의 복잡성과 네트워크 오버헤드 때문에 실패했던 기억이 납니다.

하지만 해커뉴스 스레드에서 한 유저(anon)가 던진 질문을 보고 생각이 조금 바뀌었습니다.

“Very interesting. What are goals, fitness and mutation in this context?”

이 질문이 핵심을 찔렀습니다. 이건 단순한 분산 컴퓨팅 시스템이 아니라, 브라우저라는 거대한 런타임을 생태계로 삼는 인공생명 실험에 가깝습니다. 코드가 스스로 증식하고, 네트워크 상태에 따라 살아남거나 소멸하며, 그 과정에서 변이(mutation)가 일어날 수 있다면? 분산 시스템의 Fault Tolerance를 생물학적 메커니즘으로 풀어나가는 매우 흥미로운 PoC(Proof of Concept)가 되는 셈입니다.

결론: 그래서, 쓸만한가요?

결론부터 말하자면, Unit은 당장 프로덕션에 도입할 수 있는 기술은 아닙니다. 보안 문제(악의적인 코드의 무한 복제 방지)나 상태 관리의 복잡성, 그리고 브라우저 탭이 닫히면 노드가 날아가는 Volatile한 특성 등 넘어야 할 산이 너무 많습니다.

하지만 Edge computing이나 Serverless 아키텍처의 극한 형태를 상상해 본다면 어떨까요? 중앙 서버 없이 클라이언트들의 유휴 자원만으로 스스로 유지되고 복구되는 자율형 네트워크. Unit은 그런 먼 미래를 엿볼 수 있게 해주는 훌륭한 해킹 실험입니다. 주말에 Rust와 Wasm, 그리고 P2P 네트워크에 관심 있는 시니어 엔지니어라면 코드를 한 번 뜯어보시길 강력히 추천합니다.

References