-
프랑스 출신 프로그래머 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 관련 프로젝트