TECH 으로 돌아가기
TECH HACKER NEWS 2026.10.31 04:02 7분 읽기 25 READS

Cuis Smalltalk: 40년 된 언어를 '한 사람이 다 이해할 수 있는 크기'로 다시 다듬다

Cuis Smalltalk: 40년 된 언어를 '한 사람이 다 이해할 수 있는 크기'로 다시 다듬다
SOURCE IMAGE · HACKER NEWS
Cuis Smalltalk: 40년 된 언어를 '한 사람이 다 이해할 수 있는 크기'로 다시 다듬다

무슨 프로젝트인가요

Cuis는 스스로를 모던 Smalltalk-80이라고 소개하는 Smalltalk 구현체예요. 1980년에 나온 언어를 지금 다시 이야기하는 게 좀 뜬금없게 느껴질 수 있어요. 그런데 우리가 매일 쓰는 개념과 도구 중에 Smalltalk에서 시작된 게 생각보다 정말 많아요.

Smalltalk가 뭐길래

Smalltalk는 1970년대 제록스 PARC 연구소에서 앨런 케이, 댄 잉걸스, 아델 골드버그 등이 만든 언어이자 개발 환경이에요. 객체지향 프로그래밍이라는 말 자체가 앨런 케이에게서 나왔어요. 창을 겹쳐 띄우는 GUI, MVC 패턴, 리팩토링 도구, JUnit의 조상인 SUnit도 Smalltalk 생태계에서 태어났고요. 스티브 잡스가 PARC를 방문해서 보고 매킨토시를 구상했다는 유명한 일화에 나오는 화면도 Smalltalk 환경이었어요.

Smalltalk의 철학은 두 가지로 정리할 수 있어요.

첫째, 모든 것이 객체이고, 모든 동작은 메시지를 보내는 거예요. 숫자 3도 객체예요. 3 + 4는 3이라는 객체에게 + 메시지를 4와 함께 보내는 코드예요. 심지어 if문도 문법이 아니라 메시지예요. x > 0 ifTrue: [...]는 비교 결과로 나온 Boolean 객체에게 ifTrue: 메시지를 코드 블록과 함께 보내는 코드예요. 그래서 문법 전체가 엽서 한 장에 들어간다는 말이 나올 만큼 단순해요.

둘째, 이미지를 기반으로 한 살아있는 환경이에요. 보통은 코드를 쓰면 파일을 저장하고, 빌드하고, 프로그램을 다시 실행하잖아요. Smalltalk는 실행 중인 환경 전체를 이미지라는 파일 하나에 통째로 저장해요. 모든 객체와 클래스, 열려 있는 창까지 포함해서요. 게임 세이브 파일과 비슷해요. 프로그램이 돌아가는 중에 메서드를 고치면 바로 반영되고, 에러가 나면 디버거 안에서 코드를 고친 다음 멈춘 자리에서 실행을 이어갈 수 있어요.

Cuis는 뭐가 다른가요

Smalltalk 계보에는 애플에서 시작된 Squeak가 있고, Squeak에서 갈라져 나와 실무에서 가장 많이 쓰이는 Pharo가 있어요. Cuis도 2000년대 중반 후안 불레티치(Juan Vuletich)가 Squeak에서 갈라져 나와 시작한 프로젝트예요.

Cuis의 목표는 분명해요. 한 사람이 시스템 전체를 이해할 수 있을 만큼 작고 단순하게 만드는 것이에요. Squeak는 수십 년 동안 기능이 계속 쌓이면서 거대해졌어요. Cuis는 반대로 꼭 필요하지 않은 것들을 덜어내는 쪽을 택했어요. 기본 클래스 수를 줄이고, 겹치는 기능을 정리하고, 나머지는 필요할 때 패키지로 불러오게 했어요. 원조 Smalltalk-80의 단순함은 지키면서 지금 환경에서 쓸 수 있게 다듬는 게 핵심이에요.

주요 특징은 이래요.

간단한 코드를 볼까요. (1 to: 10) select: [:each | each even]은 1부터 10까지의 범위 객체에게 짝수만 골라 달라는 메시지를 블록과 함께 보내는 코드예요. 자바스크립트의 filter와 같은 개념인데, 이런 스타일 자체가 Smalltalk에서 왔어요. 루비의 블록 문법도 Smalltalk의 영향을 많이 받았고요.

업계 맥락: 지금 Smalltalk를 배우는 의미

솔직히 Cuis로 회사 서비스를 만들 일은 많지 않을 거예요. 실무용 Smalltalk가 필요하다면 생태계가 더 큰 Pharo가 현실적인 선택이에요. Cuis의 가치는 배우기 위한 언어라는 데 있어요.

요즘 개발 환경은 너무 거대해서, 내가 쓰는 도구가 어떻게 동작하는지 끝까지 들여다보기가 거의 불가능해요. Cuis에서는 디버거, 클래스 브라우저, 컴파일러까지 전부 Smalltalk로 작성돼 있고, 원하면 그 코드를 열어서 고칠 수도 있어요. 개발 도구가 블랙박스가 아니라 안이 훤히 보이는 유리상자인 셈이에요. 핫 리로딩, REPL 중심 개발, 노트북 환경처럼 살아있는 프로그래밍이 다시 주목받는 지금, 그 원형을 직접 써보는 건 꽤 신선한 경험이 될 거예요.

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

객체지향을 클래스와 상속 위주로 배우셨다면, Smalltalk는 메시지라는 관점을 보여줘요. 앨런 케이도 객체지향의 핵심은 클래스가 아니라 메시지라고 여러 번 말했어요. 주말에 Cuis 이미지를 하나 내려받아서 클래스 브라우저로 Boolean 클래스를 열어보세요. ifTrue:가 정말 평범한 메서드로 구현돼 있는 걸 보면, 언어 설계를 보는 눈이 조금 달라질 거예요.

마무리

한 줄 정리: Cuis는 Smalltalk-80의 단순함을 지키면서 시스템 전체를 이해할 수 있는 환경을 목표로 하는, 배우기에 아주 좋은 놀이터예요.

여러분은 자기가 쓰는 언어나 프레임워크의 내부를 끝까지 따라가 본 적이 있나요? 이해할 수 있는 크기의 소프트웨어가 지금도 가능하다고 보시나요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://cuis.st/
SHARE
NEXT · CHOOSE

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

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

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