최근 log4j 취약성 사태를 계기로, 오픈 소스의 근본 문제는 자금이 아니라 대기업의 요구에 영합하는 문화라는 점을 짚고, 윤리와 품질, 노동 조건을 지키기 위한 대안적 방향을 제시한다.
Haskell for all: 오픈 소스의 문제는 자금 부족이 아니다
===============
자금
===============
최근 log4j 취약성 사태를 두고, 오픈 소스 프로젝트에 자금을 댔더라면 이런 보안 대란을 막을 수 있었을 것이라는 주장을 여러 곳에서 본다. 이 글에서 나는 오픈 소스 프로젝트의 가장 큰 문제가 사실 자금 부족이 아님을 설득하고자 한다.
오해하지 말자. 나 역시 오픈 소스 기여자들이 프로젝트에 전업으로 참여할 수 있도록 편안한 임금을 받아야 한다고 믿는다. 다만 오픈 소스 프로젝트에는 그보다 더 큰 병폐가 있으며, 잘못된 방식의 자금 조달은 오히려 그 병폐를 악화시킨다.
오픈 소스 프로젝트의 진짜 문제는 _대형·착취적 기술 기업의 요구에 영합하는 것_이다. 이런 기업들의 도입을 성공의 최우선 기준으로 삼는 한, 오픈 소스 프로젝트는 품질, 윤리, 공정한 노동 조건을 계속해서 타협하게 될 것이다.
log4j 취약성log4j나 그 유지보수자를 깎아내리려는 의도는 없다. 다만 log4j 취약성은 대기업의 요구를 최우선에 두는 태도의 문제점을 적나라하게 보여준다.
log4j 프로젝트의 유지보수자들은 덜 알려진 기능 중 하나가 잠재적으로 문제가 될 수 있음을 알고 있었다(다만 영향도를 과소평가했을 수는 있다). 그러나 하위 호환성을 깨뜨릴 것이 걱정되어 그 기능을 제거하지 않았다. 더 자세한 내용은 다음 글을 보라:
위 글에서 지적하듯, 만약 대형 기술 기업들이 log4j를 후원하고 있었다면 하위 호환성을 깨지 말라는 압력은 더 커졌을 것이다. 대기업은 코드베이스를 브레이킹 체인지에 맞춰 마이그레이션하는 일을 극도로 꺼리기로 악명이 높다. 그래서 업그레이드를 크게 미루거나 오픈 소스 프로젝트를 벤더링(코드를 통째로 끌어와 내부에 포함)하기도 한다. 이런 기업들은 광범위한 오픈 소스 생태계의 필요보다 자사 우선순위를 일관되게 앞세운다.
log4j 사건은 더 큰 문제의 징후다. 많은 대형 상장 기업들이 착취적이고 가혹하며, 그런 대기업에 눈치 보며 영합하는 오픈 소스 프로젝트는 스스로에게 전혀 도움이 되지 않는다.
모든 기업이 나쁜 것은 아니지만, 다음과 같은 일을 벌이며 윤리와 사회적 책임을 상실했다는 것을 우리는 쉽게 알 수 있다:
“주주들이 시켜서 어쩔 수 없었습니다”
윤리적으로 의심스러운 기업 로고를 프로젝트 페이지에 붙여두는 게 정말 자랑스러운 일인가? 아니면 사실 경고 신호일까? 생각해 보자.
직원들에게 꼼수를 강요하는 회사가, 후원하는 오픈 소스 프로젝트에는 문제를 땜질하지 말라고 하리라고 믿는가?
임금 담합으로 급여를 누르는 회사가, 자신들이 의존하는 오픈 소스 프로젝트에는 공정한 노동 조건을 기꺼이 보장하리라고 믿는가?
자사 도덕을 저버린 회사가, 의존하는 프로젝트에도 똑같이 타협하라고 압박하지 않으리라고 믿는가?
기업들이 오픈 소스 개발자들에게 도덕적 원칙을 타협하도록 부추긴다는 말은 과장이 아니다. 이미 그런 일이 벌어졌기 때문이다.
가장 대표적인 예가 오픈 소스 운동의 전신인 자유 소프트웨어 운동이다. 이 운동은 소스 코드를 공개하는 것에 그치지 않고, 사람들의 삶이 의존하는 소프트웨어를 검사·수정·실행할 자유 같은 사용자 권리를 보장하는 데 목적이 있었다.
자유 소프트웨어 운동은 근본적으로 도덕적 운동이다. 그 목표에 동의하든 않든, 그들의 분명한 목적은 사업적 정당화가 아니라 윤리적 논거에 뿌리를 두고 있다. Richard Stallman은 Why Open Source Misses the Point of Free Software에서 이렇게 말한다:
자유 소프트웨어 운동에게 자유 소프트웨어는 윤리적 당위이며, 사용자의 자유에 대한 필수적인 존중입니다. 반면 오픈 소스 철학은 오로지 실용적 관점에서 소프트웨어를 어떻게 “더 낫게” 만들지를 다룹니다. 이 철학은 비자유 소프트웨어가 당면한 실용적 문제에 대한 열등한 해법이라고 말할 뿐입니다.
이에 비해 오픈 소스 운동은 기업의 압박에 밀려(특히 카피레프트 라이선스에 관한) 윤리적 원칙을 타협하고, 상업화가 최대한 쉬운 방향(특히 관대한 퍼미시브 라이선스)으로 기울었다. 앞의 글은 또 이렇게 말한다:
바로 그것이 오픈 소스 지도자들이 선택한 길입니다. 그들은 윤리와 자유에 대해 침묵하고, 특정 자유 소프트웨어가 주는 즉각적인 실용적 이익만을 말함으로써, 특히 기업 사용자에게 소프트웨어를 더 효과적으로 “팔” 수 있을 거라 생각했습니다.
… 그리고 그들은 성공했다. ‘성공’을 빅 테크를 엄청나게 부유하게 만든 것으로 정의한다면 말이다.
이 문제를 해결하는 데 내가 전문가인 것은 아니지만, 오픈 소스 개발자들이 착취적인 노동 조건을 감수해야 한다고도 믿지 않는다. 과거 이 주제를 꺼냈을 때 사람들이 공유해 준 몇 가지 대안을 간단히 소개하겠다.
우선(글 제목과 달리) 자금은 여전히 중요하다. 오픈 소스를 전업으로 하고 싶은 사람이라면 다음을 읽어 보라.
… 그리고 후원을 받더라도 이력이 수상한 기업의 자금은 피하라. 명시적으로 후원을 철회하겠다고 협박하지 않더라도, 그런 암묵적 위험은 늘 당신 위에 드리워져 행동을 좌우할 것이다.
오픈 소스 소프트웨어를 중심으로 사업체를 꾸린다면 더 윤리적이고 지속 가능한 비즈니스 모델을 선호해야 한다. 예컨대 벤처 캐피털은 멀리하고, 대신 협동조합 같은 형태가 더 적절한지 검토해 보라. 다음 글이 자세히 설명한다:
이는 생각보다 흔하고, 협동조합이 후원하는 오픈 소스 프로젝트 목록은 여기서 볼 수 있다:
다만 자금을 모색하기 전에, 오픈 소스 개발자는 먼저 자신의 프로젝트에서 ‘성공’이 무엇인지 성찰해야 한다. 만약 성공의 기준을 “대기업이 내 프로젝트를 쓰거나 후원한다”로 정한다면, 그 기업들에게 똑같이 이용당할 위험이 남는다. 목표가 ‘쓰이는 것’이라면, 실제로 그렇게 ‘쓰이게’ 될 것이다.
좀 더 일반적으로, 나는 오픈 소스 개발이 도덕적 원칙이 이끄는 자유 소프트웨어 운동의 뿌리로 돌아가야 한다고 믿는다. 그래야만 오픈 소스 커뮤니티가 더 건강한 경계를 세울 수 있고, 그 결과 소프트웨어 품질, 자금, 노동 조건 모두가 개선될 것이다. 도덕적 중심이 개발자들에게 척추를 세워 주지 않는다면, 그들은 기업의 이해를 만족시키기 위해 끝없는 하향 경쟁을 계속할 것이다.
게시자: Gabriella Gonzalez 작성 시각: 오전 8:25
이메일로 보내기블로그에 공유X에 공유Facebook에 공유Pinterest에 공유
Paul Chiusano2021년 12월 13일 오전 10:02
이 글을 써 줘서 고마워요. 이런 문제를 생각하는 걸 참 좋아하고, 사회가 공공재로서의 자유 소프트웨어 같은 걸 더 나은 방식으로 만들어 가길 바랍니다.하지만 글의 일부는 약간 불편하게 느껴지기도 했어요. 사람들이 자신이 만든 소프트웨어가 널리 쓰이길 바라곤 하죠. 그게 소프트웨어의 멋진 점이자 사람들을 작업하게 만드는 영감이 되기도 해요. 그런데 모두가 프로그래머가 되지 않는 이상, 오픈 소스 라이브러리와 Log4j 같은 범용 유틸리티는 최종 사용자들이 직접 쓰기 어렵죠. 현실적으로 그러한 작업의 소비자는 종종 기업입니다. 그 기업들은 여러 오픈 소스와 독점 소프트웨어를 뒤섞어 전체적인 소프트웨어(마인크래프트 같은!)를 조립하곤 하죠. 제 생각엔 이런 종류의 집성 소프트웨어 프로젝트를 최고 수준의 기업이 만들어 내는 만큼의 품질, 응집력, 기능성으로 생산하는 좋은 방법을 아직 찾지 못했어요. 저도 상황이 달라지길 바라지만, 그게 현재의 현실입니다.
그래서 유지보수자들이 소프트웨어의 비즈니스 소비자를 고려하는 것이 항상 도덕적 실패라고 주장하고 싶지는 않아요. (아마 글쓴이도 딱 그렇게 말한 건 아니지만, 그런 뉘앙스로 읽히기도 했어요.)
유지보수자들은 어떤 기업이 비윤리적인지에 대해 서로 다른 생각을 가질 수 있고, 특히 규모가 큰 기업들은 좋은 것도 나쁜 것도 많이 하기에 합리적인 견해 차이가 있을 수 있다고 봐요. 또는 유지보수자들이 아예 다른 관점으로 이 문제를 볼 수도 있죠. 선과 악 모두에 쓰일 수 있는 범용 기능을 개발한다면, 어딘가의 사악한 메가코프가 그것을 쓸 것이라는 이유만으로 그 기능을 개발하지 않을 의무가 있을까요? 제 말은, 이런 질문들은 꽤 미묘해질 수 있다는 겁니다.
사업상의 니즈가 결국 가장 큰 목소리를 내게 되는 건 맞다고 봐요. 그게 문제인 이유는 기업들이 비윤리적일 수 있어서만이 아니라, 믿기 어려울 정도로 근시안적이기 때문이기도 하죠. 그들은 당장의 단기 문제를 해결하길 원하고, “잠깐, 한걸음 물러서서 제대로 협력해 이 문제를 해결하자”라고 말하는 사람이 사실상 없는 경우가 많거든요.
또 기업들이 자신들이 의존하는 오픈 소스에 너무나 적게 돌려준다는 점도 끔찍하다고 생각해요. 오픈 소스의 재원 다변화 부족이 문제의 일부라고 봅니다. 유지보수자들이 생태계 전체의 필요를 더 균형 있게 고려하기 쉬워지도록, 기업이 오픈 소스 유지보수자에게 “조건 없는” 돈을 기부하는 문화를 정례화할 수 있다면(이게 규모 있게 작동하도록 실제 메커니즘이 있으면 더 좋고요) 상황이 나아질 수 있어요.
[답글](javascript:;)
2.
Sam K2021년 12월 13일 오후 2:26
맞아요, 전적으로 옳습니다. 문제는 log4j가 기여가 많든 적든 모두에게 기본적으로 같은 급여를 지급하는 형태로 조직되어 있지 않다는 거예요. 협동조합으로 바꾸면 인센티브가 올바르게 설정될 겁니다!
1.  [Brian McKenna](https://www.blogger.com/profile/10725680599856600394)[2021년 12월 14일 오후 6:32](https://www.haskellforall.com/2021/12/funding-isnt-problem-with-open-source.html?showComment=1639535556343#c1549080318951109193)
협동조합은 “대체로 같은 급여”가 아니라 노동자 소유를 의미합니다
[답글](javascript:;)
구독: 게시물 댓글(Atom)
본 저작물은 Creative Commons Attribution 4.0 International License에 따라 이용할 수 있습니다. Simple theme. 서비스 제공: Blogger.