혹시 최근 SNS에서 Omarchy Linux에 대한 글을 보신 적이 있으신가요? Omarchy는 기본적으로 아키리눅스(Arch Linux)를 기반으로, 개발자들을 위해 특화된 리눅스 배포판입니다. 저는 아직 사용해 보지 않았는데요. 음.. GeekNews를 살펴보면 DHH의 개인 dotfiles를 구성한 개발자 리눅스 환경처럼 느껴집니다.

앗. 여기서 벌써 DHH라는 이름이 나왔네요. DHH.. 본명은 데비이스 하이네 마이어 한손(David Heinemeier Hansson)입니다. 덴마크 출신이고요. 코펜하겐 경영대학에서 전산학과 경영학을 전송한 뒤 2005년 미국으로 이민갑니다.

한손은 어린 시절 컴퓨터에 대한 관심이 많았다고 합니다. 이웃집에 있는 코모도어 64에서 게임을 하면서 생긴 호기심을.. 그의 아버지가 Amstrad 464 PC를 장만하면서 폭발하죠. 하지만 그의 집 형편은 넉넉하진 않았는데요. 그런데 어떻게 컴퓨터를 샀느냐. 아버지가 TV와 스테레오를 가지고 당근하셔서 PC 를 장만했답니다.(맞교환) 아버지의 아들에 대한 사랑이 느껴지네요. (울 아버지도 넉넉치 않은 살림에 제게 금성에서 나온 패미콤 150을 사주셨는데...)

DHH는 PHP 개발 프리랜서로 일하면서 초기 웹사이트를 구축했는데, 2002년경 운명의 프로그래밍 언어, 루비를 만납니다. 그는 루비의 매력에 금방 빠져들었죠. 그는 37시그널즈에서 개발한 프로젝트 관리 서비스였던 베이스캠프를 개발했는데, 이 서비스에 사용된 코드를 정리하여 루비용 웹 애플리케이션 프레임워크를 만들었습니다. 그렇습니다. 이렇게 만들어진 프레임워크의 이름이 레일즈. 루비 언어와 찰떡궁합이라 RoR, 루비 온 레일즈로 불리웁니다. RoR의 최초 안정 버전은 2005년 12월 13일 출시되었습니다. (앗 그러고 보니 당근의 주요 백엔드 기술 스택이 RoR이라지요. 당근으로 자란 개발자 당근을 만들??) RoR은 지금은 사라진 스프링노트(제기억이 맞다면...) 트위터, 쇼피파이 등에서 널리 사용되었습니다.

정작 Omarchy 배포판을 이야기하지 않았네요. 이 배포판은 2025년 6월 26일에 출시되었고, 전체 디스크 암호화, 미리 구성된 개발자 도구, TUI기반의 효율성을 강조하는 배포판입니다. omarchy.org에서 MIT 라이선스로 배포됩니다. 호불호가 많이 있어요. 특히 배포판으로 볼 수 있는 것이냐? 과하다? 등의 논쟁이 있는 것 같습니다.

DHH는 20년 넘게 RoR을 직접 작성해온 찐 개발자이지만, 최근에는 AI 에이전트에게 코드 작성을 맡기고 자신은 방향성을 정립하고 생성 결과물을 판단하는 방식으로 일하고 있다고 합니다. 고수의 새로운 작업방식....참고할만 합니다.

글을 적다보니 오래된 맥미니에 RockyLinux를 설치해서 사용 중이었는데, Omarchy로 바꿔 사용해 봐야 겠네요.

웬만한 조직에 MSA는 필요 없다고 생각한다. 소수의 인원으로 구성된 조직이야말로 혁신을 일으킨다. 프로젝트에 사람들이 많아질수록 소통에 대한 비용이 기하급수적으로 급증한다.

 

Ruby는 고급 언어이다. 언어 중에서 코코 샤넬이다. 모든 사람들이 감당할 수는 없다.

 

프로그래밍을 제대로 배우는데 20년이 넘게 걸렸다.

 

돈이 있으면 즐겁다. 하지만 당신이 생각하는 것만큼 그냥 그렇게 오랫동안 재미있거나 깊지는 않다.

 

돈이 떨어졌다는 사실을 깨닫는 것만큼 현실감을 빨리 느끼게 해주는 것은 없을 것이다.

 

30억 달러의 매출로도 수익낼 방법을 찾지 못했다면 도대체 언제쯤 수익을 내는 마법을 부릴 수 있을까요?

 

좋아하는 일을 할 수 있는 것도 중요하지만, 필요할 때는 그 일에서 벗어날 수 있는 것도 중요합니다. 일에 너무 집착하게 되면 원하는 대로 되지 않을 때 원망하게 될 거예요. 필요하다면 일을 놓아주고 떠날 줄 알아야 합니다.

 

아주 작은 실제적인 것에서 시작해서 그것을 작동하게 만듭니다. 그리고 나서 제대로 작동하게 만드는 겁니다.

 

 

 

 

 

 

자비로운 종신 독재자(Benevolent Dictator for Life).. IT업계에서  이런 명칭을 사용할 수 있는 몇몇 분들이 있습니다. 이번에 소개하는 패트릭 볼커딩도 그중 한 분입니다. 그는 1993년 리눅스 슬랙웨어 배포판을 만들고, 지금까지 계속 개발을 이끌며, 종속성 문제 해결 및 슬랙웨어를 유닉스와 비슷하계 유지 보수하고 있습니다. 살아있는 역사의 증인이죠... 슬랙웨어... 제가 개인적으로 좋아하는 리눅스 배포판이기도 합니다. 

패트릭 볼커딩은 66년생으로 버지니아에서 태어났습니다. 아버지가 미 해군 소속 치과의사였지만 어린 시절을 노스 다코다에서 보냈습니다. 7살이던 73년도에 노스다코다 주립대 컴퓨터학과를 견학갔다가 메인프레임을 만나게 되죠. 컴퓨터에 대한 관심은 폭발했지만, 가정형편때문에 컴퓨터를 장만하지 못했던 패트릭은 열심히 전자공학을 공부합니다. 릴레이 회로를 직접 만들었답니다. 그러다가 애플2, TRS-80 같은 개인용 컴퓨터가 출시되었고, 컴퓨터 가게를 하도 자주 가서 단골이 된 패트릭은 BASIC을 독학한 후 가게에서 쓸만한 간단한 데모 프로그램을 만듭니다. 그 덕분에 가게에 떳떳하게 무제한 입장 가능!! 

그의 첫 컴퓨터는 애플2+였다고 합니다. 이후 90년까지 애플컴퓨터만 사용했는데, 92년 운명적으로 리눅스를 만납니다. 볼커딩은 85년 보스턴대학교에서 컴퓨터공학 학위 취득후 무어헤드 주립대(현 미네소타 주립대)에서 컴퓨터 과학을 공부하고 있었습니다. 볼커딩은 인공지능 수업을 듣고 있었는데, LISP으로 수업을 진행했습니다. 볼커딩은 프로젝트에 사용할 저렴한 LISP 인터프리터를 찾다가 초기 리눅스 배포판중 하나인 SLS를 다운로드 받아 사용하게 됩니다.

하지만 SLS는 잘못된 파일권한, 불안정한 네트워크 구성으로 크래시가 자주 발생했는데, 볼커딩은 소스코드를 재 컴파일하면서 안정성을 높여가는 작업을 진행하죠.  교수님이 "새로운 컴퓨터에 설치 디스크를 수정해서 이런 수정 사항들이 바로 적용되도록 할 방법이 있을까요?"라고 던진 질문이 슬랙웨어의 시작이었습니다.(교수님 왜 그러셨어요? 차라리 대학원 진학하라고 하시지. 아 이미 대학원생이구나. )

1993년 SLS의 품질 문제를 해결하기 위하여 직접 리눅스 배포판을 만들기로 결심합니다. 초기에는 소스코드에서 소프트웨어를 수동으로 패치킹하는 방식의 사용자 정의 설치 스크립트를 작성했고, 유즈넷 comp.os.linux 그룹의 피드백을 받아 시스템을 개선해 나갑니다. 1.0 이  AT&T에 처음 배포된 후 높은 인기를 누리며 초기 사용자를 끌어 모았습니다.

그는 지금도 슬랙웨어를 유지 관리하고 있습니다. 현재 슬랙웨어는 15.1이 최신 버전입니다. :)

무언가를 좋아하고, 사랑하고, 참여하고, 공유하는 과정.. 리눅스의 철학과 딱 맞는 것 같아서 소개해 보았습니다. 

 

1992년, 핀란드에서 누군가가 UNIX 클론을 만들려는 프로젝트가 진행 중이라는 소식을 처음 들었습니다. 당시 저는 16MHz 386/sx에서 OS/2를 사용하고 있었는데, 괜찮은 운영체제였지만 제가 정말로 원했던 건 UNIX 계열 운영체제였습니다.
사용자의 의도를 미리 짐작하려 들수록 오히려 장벽이 생긴다고 생각합니다. 그래서 최대한 단순하게 유지하는 것을 선호합니다. 
저는 당장 눈앞의 목표에 집중하는 것을 선호합니다. 그 목표들이 달성되면 다음에 무엇을 해야 할지 명확해집니다. 슬랙웨어 개발은 ​​계획적인 설계라기보다는 진화의 과정에 가까웠습니다.

 

 

 

 

 

 

 

2016년 2월 8일. 새로운 시스템 프로그래밍 언어 하나가 공개됩니다. 이름은 Zig. C의 단순함을 계승하면서도 현대적인 개발 경험을 제공하겠다며 시작된 이 언어는 Bun, Ghostty 등과 같은 프로젝트의 기반이 되며 빠르게 존재감을 키워갑니다. 이번에 소개할 IT 인물은 Zig를 만든 오픈소스 소프트웨어 개발자이자 Zig 소프트웨어 재단 의장인 앤드류 켈리(Andrew Kelley)입니다.

앤드류 켈리는 음악을 좋아하는 개발자였는데요. 자신의 관심사를 해결하기 위하여 실시간 오디오를 세밀하게 낮은 수준까지 제어할 수 있는 음악 스튜디오 프로그램을 개발합니다. 이 프로젝트는 제네시스 디지털 오디오 워크스테이션이 되는데요. 라이브 공연에서도 오디오 끊김 없이 계속 제어할 수 있으려면 높은 안정성과 최소한의 지연시간이 보장되어야 했습니다. 그러려면 하드웨어와의 직접적인 상호작용이 필수였겠죠.  이런 기능을 구현하기 위해 켈리는 C/C++을 주로 사용합니다. 결국 기존 소프트웨어에 만족하지 못한 켈리는 직접 크로스 플랫폼 오디오 추상 계층 라이브러리인 libsound.io를 개발합니다. 이 과정에서 기존 언어와 라이브러리에 대한 불편함을 느끼게 됩니다.

켈리는 애리조나 주립 대학교에서 전산학 학사학위를 취득한 후 다양한 회사를 거치면서 분산시스템, 오디오 처리, 클라우드 서비스, 개발 도구 개발을 경험합니다. Zig는 이러한 그의 폭넓은 실무 경험 위에서 설계된 언어입니다.

이후 데이팅 플랫폼인 OkCupid에 근무하면서 기존 레거시 코드를 유지관리하면서 Zig 개발을 이어갑니다. 하지만 직장생활과 오픈소스 개발을 병행하는 것은 쉽지 않지요. 2018년 6월 켈리는 OkCupid를 사임하고 Zig개발에 전념합니다. 켈리는 Zig가 C언어를 버리는 언어가 아니라 C를 더 안전하게 사용할 수 있는 프로그래밍 언어가 되기를 바랬습니다. 그래서 Zig의 지향점으로 C ABI와의 완벽한 호환성, NULL 포인터 대신 선택적 타입 사용, 오류 공용체를 사용하는 오류 처리 시스템, 대안적 표준 라이브러리, C 전처리기 대체 등을 내세웠습니다. 그래서 Zig의 대표적인 슬로건이 "감춰진 제어 흐름도 없고, 감춰진 메모리 할당도 없다(No hidden control flow, no hidden memory allocations)입니다. 발전을 거듭하던 Zig는 2020년 3월 24일 C/C++ 코드 컴파일할 때 GCC나 Clang을 대체하는 강력한 컴파일러로 자리매김하게 됩니다. 이후 켈리는 Zig의 비동기 입출력을 개선하고 있습니다.

켈리는 AI에 대해 상당히 비판적인 입장을 밝혀왔습니다. AI를 사용한 PR은 받지않는다는 정책을 밝혔죠. 그는 AI가 생성한 코드는 리뷰 비용만 증가시키는 경우가 많은데, 오픈소스의 경우 메인테이너의 시간이 가장 중요한 자원이기 때문에 AI 생성 코드는 거부한다고 이야기했습니다. 또한 오픈소스의 목표 중 하나는 개발자를 성장시키는 것인데 코딩 AI에 의존한 기여는 그에 부합하지 않는다는 것이었죠. 모든 프로젝트가 코딩 AI에 대해 동일한 정책을 따를 필요는 없겠지만, 프로젝트를 관리해야 하는 책임자의 시간과 교육이라는 가치를 어떻게 균형 있게 볼 것인가에 대해서 기업 입장에서도 생각해 볼 주제라 생각됩니다.

Andrew Kelley는 새로운 언어를 만든 사람중 한 명이라기보다는 시스템 프로그래밍은 단순해야 한다는 철학을 일관되게 실천해 온 개발자입니다. Zig가 앞으로 얼마나 성장할지는 알 수 없지만, 적어도 그가 던진 '복잡성을 줄이고 예측 가능성을 높이자'는 문제의식만큼은 앞으로도 오래 이야기될 것 같습니다.(Zig로 개발된 Bun은 최근 Rust로 다시 작성되었습니다.)

 

 

 

 

Andrew Kelley

 

andrewkelley.me

 

+ Recent posts