Fabrice Bellard: 전기 (2009)
(ipaidia.gr)- 프랑스 출신 프로그래머 Fabrice Bellard는 지난 20년간 가장 영향력 있는 개발자 중 한 명으로, 수많은 혁신적 프로젝트를 공개 소프트웨어 형태로 발표함
- 어린 시절부터 전자기기와 저수준 프로그래밍에 몰두하며, 15세에 실행 파일 압축기 LZEXE를 개발해 초기 성공을 거둠
- 이후 École Polytechnique에서 폭넓은 공학 교육을 받으며, 수학적 계산과 컴퓨터 구조에 대한 깊은 이해를 쌓음
- 대표작으로 FFmpeg, TinyCC, QEMU 등이 있으며, 특히 QEMU는 가상화 및 프로세서 에뮬레이션 분야에서 핵심 기술로 자리함
- 그는 자유 소프트웨어 철학을 실천하며, 금전적 이익보다 기술적 흥미와 공유를 중시하는 개발자로 평가됨
초기 생애와 프로그래밍 입문
- 1972년 프랑스 그르노블에서 태어나 몽펠리에에서 성장
- 어린 시절부터 전자기기에 관심을 보였으며, 첫 단어가 “magnétophone(테이프 레코더)”였다고 전함
- 9세 때 TI-59 프로그래머블 계산기로 프로그래밍을 시작
- 제한된 표시와 문자 집합에도 불구하고 루프 등 고수준 개념을 익히며 저수준 코드 감각을 발전시킴
- 11세에 TI-99/4A 홈컴퓨터를 사용하며 TI BASIC으로 프로그래밍을 확장
- 한 줄당 한 명령만 입력 가능한 구조로, 계산기 프로그래밍에서 컴퓨터 프로그래밍으로 자연스럽게 전환
LZEXE와 초기 성취
- 15세에 Amstrad PC1512를 구입해 본격적인 개발 활동 시작
- 저장 공간 제약을 해결하기 위해 LZEXE라는 실행 파일 압축기를 개발
- LZSS 알고리듬을 8086 어셈블리로 재작성해 빠른 압축·해제를 구현
- BBS를 통해 배포되며 즉각적인 성공을 거둠
École Polytechnique에서의 교육
- 프랑스 최고 명문 École Polytechnique(X) 에 입학
- 5년 과정의 공학 학위 프로그램으로, 군 복무 1년 포함
- 폭넓은 교양과 기술 교육을 통해 비판적 사고와 다분야 역량을 중시
- Bellard는 이 과정을 통해 컴퓨터 구조와 계산 이론의 중요성을 확립
- 어셈블리 언어와 하드웨어 이해를 필수로 강조
수학적 연구와 알고리듬 개발
- 1995년 Pollard의 FFT 곱셈법을 C로 구현하며 수치 알고리듬 연구에 진입
- FFT(고속 푸리에 변환)를 활용한 대수 계산을 통해 π의 수백만 자리 계산 수행
- 1997년 π의 n번째 이진 자릿수를 계산하는 공식을 발표
- 기존 Bailey–Borwein–Plouffe 공식보다 43% 빠른 O(n²) 복잡도로 개선
VReng과 TinyGL
- 1998년 학생 프로젝트로 VReng(Virtual Reality Engine) 개발
- 인터넷 멀티캐스트 기반 3D 가상 세계 탐색 엔진
- 이후 OpenGL의 비효율성을 개선하기 위해 TinyGL을 제작
- 40KB 크기의 경량 3D 렌더러로, Mesa보다 훨씬 빠르고 플랫폼 독립적
FFmpeg의 탄생
- 2000년 “Gerard Lantau”라는 가명으로 FFmpeg 프로젝트 시작
- 오디오·비디오의 인코딩, 디코딩, 스트리밍, 변환을 지원하는 도구
- libavcodec(코덱 라이브러리)과 libavformat(컨테이너 처리 라이브러리)로 구성
- FFmpeg은 다양한 포맷 간 변환을 지원하며, VLC 등 수많은 멀티미디어 소프트웨어에 통합
IOCCC 수상과 TinyCC
- 2000년 International Obfuscated C Code Contest(IOCCC) 우승
- 4KB 미만의 C 컴파일러를 구현, 이후 TinyCC로 발전
- TinyCC는 ANSI C99 호환 초소형 컴파일러로, 리눅스 커널을 15초 내 빌드 가능
- 2001년 두 번째 우승작은 475바이트 크기의 소수 계산 프로그램
- FFT 기반 알고리듬으로 수백만 자리의 소수를 빠르게 계산
QEMU와 가상화 혁신
- 2005년 QEMU 발표, 프로세서 아키텍처를 소프트웨어로 에뮬레이션
- 동적 번역(dynamic translation) 을 통해 명령어 블록을 묶어 변환·캐시함으로써 성능 향상
- 특정 상황에서 거의 네이티브 수준의 속도 달성
- QEMU는 이후 VirtualBox, Xen, KVM 등 주요 가상화 기술의 핵심 구성 요소로 채택
자유 소프트웨어 철학과 개발 태도
- Bellard는 모든 주요 프로젝트를 자유 소프트웨어 라이선스로 공개
- 금전적 이익보다 흥미와 유용성을 우선시하며, 소스 코드 공유를 중시
- 행정적·커뮤니케이션 업무보다 순수한 개발 활동에 집중
- 다양한 주제에 도전하는 이유에 대해 “같은 일을 반복하면 지루하기 때문”이라고 언급
컴퓨터 과학에 대한 관점과 조언
- 컴퓨터 과학을 실용적 탐구(응용) 와 이론적 탐구(계산 이론) 로 구분
- 두 영역 모두에서 한계를 넓히는 것이 중요하다고 강조
- 후배 개발자에게 기초 이론과 하드웨어 이해를 권장
- 알고리듬 학습에는 Donald Knuth의 『The Art of Computer Programming』 을 추천
- 당시 진행 중인 연구는 멀티코어 프로세서를 활용한 디지털 신호 처리, 특히 Software Defined Radio 관련 프로젝트
Hacker News 의견들
-
그는 분명 GOAT급 인물이지만, 이 글은 소프트웨어 엔지니어링을 잘 모르는 사람이 쓴 듯함
예를 들어 QEMU의 코드 번역 캐싱을 ‘최초의 네이티브 성능 에뮬레이터’로 묘사했는데, 사실 JIT 기술은 훨씬 오래전부터 존재했음- 게다가 예전 Transmeta 프로세서도 비슷한 방식을 사용했음
명령어를 여러 번 통과시키며 점점 더 최적화하는 멀티패스 접근을 했고, 사용이 늘수록 속도가 향상되었음
물론 이게 Bellard의 업적을 깎아내리는 건 아니지만, 사실은 사실임
- 게다가 예전 Transmeta 프로세서도 비슷한 방식을 사용했음
-
ffmpeg와 QEMU를 5년 사이에 내놓고, 거기에 IOCCC를 두 번이나 수상한 건 정말 미친 업적임
-
이번 전기는 이 전설적인 프로그래머에 대해 지금까지 본 어떤 글보다 새로운 정보가 많음
-
이후에도 그는 PC 하드웨어 기반의 5G 기지국과 LLM 관련 프로젝트를 진행했음
- 또 ASN.1 컴파일러와 스택을 독자적으로 개발했음
-
솔직히 Fabrice Bellard가 LLM 코딩 툴을 쓰기 시작했을까 궁금함
만약 그렇다면 생산성이 더 높아질 텐데, 그건 좀 무서울 정도임
그는 이미 LLM 압축 연구를 했고, 주로 C로 코딩함
수십 년간 C를 써온 사람이라면 대부분의 코드를 기억하고 재활용할 수 있음
그래서 LLM이 큰 도움이 되지 않을 수도 있음
오히려 자신의 코드로 자체 LLM을 학습시킬 가능성이 높다고 봄 — LTE 프로젝트처럼 유료 비공개 프로젝트로 발전할 수도 있음- 현재의 LLM이 그가 하는 저수준 고성능 작업에 실제로 도움이 될지 의문임
- 실제로 그는 ts_server라는 LLM 관련 프로젝트를 이미 만든 적이 있음
- 나는 그가 LLM을 쓰지 않는다고 생각함
그의 코드는 정교하고 체계적이며, 흔히 AI가 만든 코드와는 완전히 다름
그는 프로그램의 전체 구조를 머릿속에 그리며 작업하는 사람임
그래서 일부는 그가 여러 명이거나 LLM을 쓴다고 추측하지만, 그는 그런 얘기를 들으며 웃고 있을 듯함 - 오히려 LLM이 Bellard에게 묻는 쪽일지도 모름
- 일부 뛰어난 개발자들(mitsuhiko, Evan You 등)은 LLM을 보조 도구로 활용하듯, Bellard도 그런 식으로 쓸 가능성이 있음
-
최근 MicroQuickJS를 공개하면서, 그는 이제 ‘전설적인 결과물’을 내야 하는 사람이 되어버렸음
사람들은 그에게 항상 대단한 걸 기대함 -
Bellard가 antirez처럼 부자가 되었을까 하는 궁금증이 듦
-
(2009년 글임)
- 제목에는 2009년으로 표시했지만, URL은 2020년이라 혹시 본문이 업데이트된 것일 수도 있음