여러분이 오늘 파이썬으로 XML을 파싱했거나, 파이어폭스로 웹서핑을 했거나, 아니면 그냥 스마트폰을 켜기만 했더라도, 사실 한 오픈소스 라이브러리의 도움을 받았을 가능성이 커요. 바로 libexpat이라는 XML 파서 이야기인데요. C로 만들어진 이 작은 라이브러리는 파이썬 표준 라이브러리, 파이어폭스, 안드로이드, 애플 운영체제까지 셀 수 없이 많은 곳에 들어가 있어요. 그런데 이걸 실질적으로 유지보수하는 사람은 오랫동안 사실상 한 명이었고, 그마저도 무급 봉사에 가까웠다는 사실, 알고 계셨나요?
그런 libexpat에 반가운 소식이 생겼어요. 독일 뮌헨시가 libexpat의 메인테이너를 최대 6개월간 재정 지원하기로 한 거예요. 뮌헨시가 운영하는 '오픈소스 안식년(Open Source Sabbatical)' 프로그램을 통해서인데요. 시 행정에서 쓰이는 오픈소스를 위해 공공기관이 직접 지갑을 여는, 아직은 흔치 않은 사례라서 오픈소스 생태계에 시사하는 바가 꽤 커요.
libexpat이 뭐길래 이렇게 중요할까요
이게 뭐냐면, XML 문서를 읽어서 프로그램이 다룰 수 있는 형태로 바꿔주는 파서예요. 핵심 특징은 스트리밍 방식이라는 건데요. 문서 전체를 메모리에 올려서 트리 구조를 만드는 대신, 문서를 위에서부터 읽어 내려가면서 '여기 태그가 열렸어요', '여기 텍스트가 있어요' 하고 이벤트를 콜백으로 던져주는 방식이에요. 비유하자면 책을 다 읽고 나서 요약해주는 게 아니라, 한 줄 읽을 때마다 바로바로 알려주는 낭독자 같은 거죠. 덕분에 메모리를 아주 적게 쓰고 속도도 빨라서, 자원이 빠듯한 임베디드 기기부터 대형 서버까지 어디서든 쓸 수 있어요.
문제는 이런 기반 라이브러리일수록 평소엔 눈에 안 띈다는 거예요. 게다가 XML 파싱은 보안에 아주 민감한 영역이거든요. 외부에서 들어온 XML을 파싱하다가 메모리 관련 취약점이 터지면, libexpat을 쓰는 수많은 소프트웨어가 한꺼번에 위험해져요. 실제로 libexpat에는 꾸준히 보안 취약점(CVE)이 보고되고 패치돼 왔는데, 그 부담을 감당해온 게 사실상 개인 자원봉사자였던 셈이에요.
왜 하필 '시청'이 오픈소스에 돈을 낼까요
2024년 초의 xz-utils 백도어 사건을 기억하시는 분이라면 이 뉴스가 더 남다르게 느껴지실 거예요. 그 사건은 번아웃에 시달리던 오픈소스 메인테이너에게 악의적인 인물이 '도와주겠다'며 접근해 수년에 걸쳐 신뢰를 쌓은 뒤 백도어를 심으려 했던 일이었죠. log4shell 사태 때도 전 세계 기업들이 무료로 쓰던 라이브러리의 취약점 때문에 발칵 뒤집혔고요. 인터넷의 핵심 인프라가 '어느 자원봉사자가 2003년부터 묵묵히 유지보수해온 프로젝트' 위에 아슬아슬하게 서 있다는 유명한 xkcd 만화가 괜히 나온 게 아니에요.
이런 문제의식이 쌓이면서 유럽에서는 공공 자금으로 오픈소스를 지원하는 흐름이 자리 잡고 있어요. 독일 연방정부는 Sovereign Tech Fund라는 기관을 만들어 curl 같은 핵심 오픈소스 프로젝트에 자금을 대고 있고요. 뮌헨시는 예전에 시청 컴퓨터를 리눅스로 전환하는 LiMux 프로젝트로 유명했던, 오픈소스에 진심인 도시예요. 이번 안식년 프로그램은 '우리가 쓰는 소프트웨어라면 그 유지보수에도 책임을 지자'는 태도를 제도로 만든 거라고 볼 수 있어요. 기업 후원과 달리 특정 기능 개발을 조건으로 거는 게 아니라, 메인테이너가 밀린 유지보수와 보안 작업에 집중할 시간을 사주는 방식이라는 점도 눈여겨볼 만해요.
한국 개발자에게 주는 시사점
남의 나라 이야기 같지만, 사실 우리 모두의 이야기예요. 지금 여러분 회사의 서비스도 수백, 수천 개의 오픈소스 위에 서 있을 거거든요. 한 번쯤 의존성 목록(SBOM)을 뽑아서 우리 서비스가 어떤 라이브러리에 기대고 있는지, 그 프로젝트들이 건강하게 유지되고 있는지 살펴보는 걸 추천해요. 메인테이너가 한 명뿐인 라이브러리가 핵심 경로에 있다면, 그건 잠재적인 단일 장애점이기도 하니까요. 그리고 여유가 있다면 GitHub Sponsors나 Open Collective로 소액이라도 후원하거나, 버그 리포트와 패치로 기여하는 것도 좋은 시작이에요. 한국은 공공과 기업 모두 오픈소스를 정말 많이 쓰는데, 되돌려주는 문화는 아직 약한 편이라 아쉬운 지점이기도 해요.
정리하자면, 오픈소스는 공짜가 아니라 누군가의 시간과 헌신으로 굴러가고, 이제 공공기관이 그 비용을 나눠 지는 실험이 시작됐다는 소식이에요. 여러분의 회사나 팀은 쓰고 있는 오픈소스에 기여하거나 후원해본 적 있나요? 한국의 공공기관이 이런 프로그램을 만든다면 어떤 프로젝트부터 지원해야 할까요?
🔗 출처: Hacker News