1차 공개일 · 8월 18일1차 강의가 모두 공개됩니다
TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 24 READS

40년 된 아미가에서 Common Lisp을 돌린다 — Clamiga 프로젝트 이야기

40년 된 아미가에서 Common Lisp을 돌린다 — Clamiga 프로젝트 이야기
SOURCE IMAGE · HACKER NEWS
40년 된 아미가에서 Common Lisp을 돌린다 — Clamiga 프로젝트 이야기

1985년에 나온 코모도어의 아미가(Amiga)라는 컴퓨터를 아시나요? 당시로서는 상상하기 어려웠던 4096색 그래픽과 4채널 스테레오 사운드를 갖춰서 '시대를 10년 앞선 기계'라고 불렸던 전설적인 PC인데요. 단종된 지 30년이 다 되어가지만, 전 세계에는 여전히 이 기계를 아끼고 새 소프트웨어를 만들어내는 커뮤니티가 살아 있어요. 그런 흐름 속에서 한 개발자가 아미가에서 Common Lisp을 돌리는 'Clamiga'라는 프로젝트의 개발기를 공개했어요.

Common Lisp이 뭐길래

리스프(Lisp)는 1958년에 태어난, 지금까지 살아남은 고급 언어 중 포트란 다음으로 오래된 언어예요. 괄호가 잔뜩 들어간 독특한 문법으로 유명한데, 겉모습보다 중요한 건 철학이거든요. 코드 자체가 리스트라는 데이터 구조로 되어 있어서, 프로그램이 프로그램을 데이터처럼 조작할 수 있어요. 이 성질 덕분에 매크로라는 강력한 기능이 나오는데, 쉽게 말해 '언어 문법을 개발자가 직접 확장할 수 있는' 능력이에요. Common Lisp은 여러 갈래로 나뉘어 있던 리스프 방언들을 1980년대에 하나의 표준으로 묶은 것이고요. 그만큼 강력한 대신 언어 명세가 크고 무거운 편이에요.

왜 이게 어려운 도전이냐면

문제는 아미가의 하드웨어예요. 초기 아미가는 7MHz짜리 모토로라 68000 CPU에 메모리가 512KB 수준이었어요. 지금 여러분 손목의 스마트워치보다도 한참 약한 사양이죠. 반면 Common Lisp 구현체는 기본적으로 덩치가 커요. 현대의 대표 구현체인 SBCL은 실행 이미지만 수십 메가바이트에 달하거든요.

이런 기계에 리스프를 올리려면 풀어야 할 숙제가 한둘이 아니에요. 우선 가비지 컬렉션이 필요해요. 이게 뭐냐면, 프로그램이 다 쓰고 버린 메모리를 자동으로 찾아서 청소해주는 기능인데요. 리스프는 실행 중에 리스트를 끊임없이 만들고 버리는 언어라서 GC 없이는 아예 돌아갈 수가 없어요. 메모리가 몇백 KB뿐인 기계에서는 GC가 언제, 얼마나 빨리 도느냐가 곧 사용성을 결정하죠. 또 동적 타입 언어답게 모든 값에 '이건 숫자다, 이건 리스트다' 같은 타입 정보를 붙여 다녀야 하는데, 메모리를 아끼려고 포인터의 남는 비트에 타입 정보를 욱여넣는 태그드 포인터 같은 기법이 동원돼요. 제약이 심할수록 구현자의 설계 실력이 그대로 드러나는 영역이에요.

작은 기계에 언어 올리기, 하나의 장르

사실 이런 시도는 Clamiga가 처음이 아니에요. uLisp이라는 프로젝트는 아두이노나 ESP32 같은 마이크로컨트롤러, 그러니까 메모리가 몇십 KB밖에 안 되는 칩에서 리스프를 돌려요. ECL(Embeddable Common Lisp)은 C로 컴파일되는 경량 Common Lisp으로 임베디드 환경을 노리고요. 거슬러 올라가면 1980~90년대 매킨토시에서 돌던 Macintosh Common Lisp 같은 상용 구현도 있었죠. 레트로 컴퓨팅 씬에서는 옛 기계에 현대적인 언어와 도구를 이식하는 게 하나의 장르가 됐는데, 아미가 커뮤니티는 그중에서도 유난히 활발해서 지금도 새 하드웨어 가속 보드와 OS 개량판이 나오고 있어요.

한국 개발자에게 주는 시사점

'옛날 컴퓨터에 리스프 올리기'가 실무와 무슨 상관이냐 싶을 수 있는데요, 의외로 배울 게 많아요. 첫째, 언어 구현 경험은 개발 실력을 한 단계 올려주는 지름길이에요. 파서, 평가기, GC를 직접 만들어보면 여러분이 매일 쓰는 언어가 안에서 어떻게 돌아가는지 감이 잡히거든요. Crafting Interpreters 같은 책으로 시작하면 좋아요. 둘째, 극단적인 제약 환경에서의 최적화 감각은 임베디드 개발이나 성능 튜닝에서 그대로 통해요. 메모리가 무한한 것처럼 개발하는 습관에서 벗어나게 해주죠. 셋째, 이런 프로젝트는 '재미로 하는 개발'의 좋은 본보기예요. 실용성 계산 없이 순수한 호기심으로 파고드는 사이드 프로젝트가 결국 실력의 바닥을 넓혀주거든요.

정리하면, Clamiga는 40년 된 기계에 65년 된 언어를 올리는, 낭만과 공학이 절반씩 섞인 프로젝트예요. 여러분이 만약 레트로 기기에 뭔가를 이식해본다면, 어떤 기계에 어떤 언어를 올려보고 싶으세요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://nnamgreb.de/blog/Clamiga+-+Common+Lisp+for+the+Amiga
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...