TECH 으로 돌아가기
TECH HACKER NEWS 2026.10.25 22:05 6분 읽기 31 READS

작아서 더 아름다운 것들: 작은 프로그램과 작은 언어가 주는 배움

수백 MB짜리 node_modules의 반대편

요즘은 프로젝트 하나를 시작하면 node_modules 폴더에 수백 MB가 쌓이는 게 당연해졌죠. 그런데 그 반대편에는 작다는 것 자체를 가치로 여기는 프로그램과 언어들이 있어요. 'Small Programs and Languages'는 개인 위키처럼 운영되는 '카드' 형식 페이지로, 이런 작은 프로그램과 작은 언어에 대한 생각과 자료를 모아둔 글이에요. 화려한 신기술 발표는 아니지만 개발자라면 한 번쯤 곱씹어볼 만한 주제라서 소개해볼게요.

'작다'는 건 무슨 뜻일까

여기서 말하는 '작다'는 파일 크기가 작다는 뜻만은 아니에요. 핵심은 한 사람의 머릿속에 통째로 들어가느냐예요. 코드 전체를 처음부터 끝까지 읽고, 어떤 동작이 왜 일어나는지 전부 설명할 수 있는 크기라는 거죠.

대형마트와 동네 구멍가게를 떠올려보면 쉬워요. 대형마트에는 없는 게 없지만 어디에 뭐가 있는지 직원도 다 알지는 못하잖아요. 구멍가게는 물건이 적어도 주인이 모든 물건의 위치와 재고를 다 알아요. 작은 언어가 바로 이 구멍가게 같은 존재예요. 기능은 적지만 언어 전체를 이해할 수 있고, 마음만 먹으면 직접 고치거나 처음부터 다시 만들 수도 있어요.

이 세계에서 자주 언급되는 것들

작은 언어 이야기에 빠지지 않는 대표 주자들이 있어요.

Forth는 스택 기반 언어인데, 핵심이 워낙 작아서 부트 섹터(디스크 맨 앞 512바이트)에 들어가는 구현이 있을 정도예요. 단어(word)를 정의해서 언어 자체를 넓혀가는 방식이라 조금만 써봐도 언어가 나와 함께 자라는 독특한 느낌을 받게 돼요.

Lisp와 Scheme도 빠질 수 없죠. 몇 가지 기본 연산만 있으면 언어 전체를 쌓아 올릴 수 있다는 게 Lisp의 오래된 매력이에요. 실제로 수백 바이트 안에 Lisp 인터프리터를 넣은 SectorLISP 같은 프로젝트도 있어요. Scheme 표준 문서가 다른 언어 명세에 비해 놀랄 만큼 얇다는 것도 유명한 이야기고요.

Lua는 실무에서 가장 성공한 작은 언어라고 할 수 있어요. 인터프리터 전체 소스가 C 코드 수만 줄 정도라 다른 프로그램 안에 쉽게 끼워 넣을 수 있어요. 그래서 게임 엔진, Neovim, Redis 같은 곳의 스크립트 언어로 널리 쓰이죠.

그 밖에도 빠른 컴파일 속도로 유명한 TCC(Tiny C Compiler), 니클라우스 비르트가 언어와 컴파일러와 운영체제를 책 한 권에 담아낸 Oberon 프로젝트, 작은 가상 머신 위에서 도구를 만드는 uxn 같은 시도들이 이 흐름에 자주 등장해요.

왜 지금 작은 것에 주목할까

업계 흐름으로 보면 작은 프로그램 운동은 일종의 반작용이에요. 의존성이 깊어질수록 공급망 공격(라이브러리 하나가 오염되면 그걸 쓰는 모든 프로젝트가 위험해지는 문제)의 위험이 커지고, 아무도 전체를 이해하지 못하는 시스템이 늘어나거든요. 작은 도구들은 '이해할 수 있는 소프트웨어'라는 대안을 보여줘요.

물론 한계도 분명해요. 작은 언어는 라이브러리 생태계가 빈약하고, 팀 단위의 대규모 개발에서는 타입 시스템이나 도구 지원이 풍부한 큰 언어가 유리할 때가 많아요. 그러니 작은 언어는 모든 걸 대신하는 무기라기보다 특정 목적에 딱 맞는 날카로운 도구로 보는 게 맞아요.

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

가장 추천하고 싶은 건 작은 언어를 직접 하나 만들어보는 것이에요. 'Crafting Interpreters' 같은 책을 따라가도 좋고, 사칙연산 계산기에서 시작해 변수와 함수를 하나씩 붙여가도 좋아요. 그러다 보면 파서, 스코프, 클로저 같은 개념이 책으로 읽을 때와는 완전히 다르게 와닿아요. 평소 쓰는 JavaScript나 Python의 이상한 동작이 왜 그런지도 이해되기 시작하고요.

실무에서는 Lua를 눈여겨볼 만해요. 국내 게임 업계에서도 스크립트 언어로 꾸준히 쓰이고 있고, Neovim 설정이나 Redis 스크립트처럼 개발 환경 곳곳에서 만날 수 있거든요. 그리고 다음에 라이브러리를 추가할 때 '이거 50줄이면 직접 짤 수 있지 않나?' 하고 한 번만 스스로 물어보세요. 작은 프로그램 철학에서 얻을 수 있는 실용적인 교훈이에요.

마무리

한 줄 정리: 작은 프로그램의 진짜 가치는 크기가 아니라, 처음부터 끝까지 이해할 수 있다는 데 있어요.

처음부터 끝까지 이해하고 있다고 자신 있게 말할 수 있는 도구나 언어가 있나요? 장난감 언어를 직접 만들어본 경험이 있다면 함께 나눠주세요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://ratfactor.com/cards/pl-small
SHARE
NEXT · CHOOSE

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

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

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