NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

내가 오픈소스를 싫어하는 이유

본문은 위시켓과 번역가 윌리(Willy)가 함께 만든 해외 콘텐츠 기반 번역문입니다. 프로그래밍에 대한 정보를 다루는 ‘Leo Lio’의 블로그 글을 번역했습니다. 지금 이 순간도 많은 사람들이 오픈소스의 장단점에 대해 불꽃 튀는 논쟁을 벌이고 있습니다. 오늘 소개할 기사는 그중 오픈소스의 단점을 바탕으로 강하게 비판한 내용을 담고 있습니다. 해당 내용은 필자 Leo Liou의 주장으로 요즘IT의 의견과는 관계없음을 알려드립니다.

 

오픈소스 소프트웨어는 많은 단점을 가지고 있습니다. 사람들은 오픈소스의 장점만 이야기하지만 이는 한 단면만을 바라보는 것입니다. 이 중 어떤 것은 사실이 아니며, 어떤 것은 허무맹랑하기까지 합니다. 전부 설명하려면 책 한 권으로도 모자라기 때문에 오픈소스를 사용하는 것이 왜 시간 낭비이며, 그 이유는 무엇인지 간단하게 몇 가지만 짚어보도록 하겠습니다.

오픈소스

 

1. 대부분(99%)의 오픈소스는 상용 소프트웨어에 뒤처진다

이미지 편집 소프트웨어인 김프(Gimp)보다 포토샵(Photoshop)이 더 뛰어납니다. 블렌더(Blender)보다 3Ds 맥스(Max), 모도(Modo), 마야(Maya), 지브러시(Z-brush)가 더 뛰어납니다. LMMS보다 FLStudio이 뛰어납니다. 고도(Godot)엔진 보다 유니티(Unity)가 뛰어납니다. 말하자면 끝이 없습니다. 사실, 오픈소스 소프트웨어는 상용 소프트웨어의 마이너 버전입니다. 명품에 비유하자면 그럴싸하게 흉내 낸 모조품과 같죠. 오픈소스 소프트웨어는 보기에도 항상 어딘가 부족해 보이고 실제로 사용할 때도 마찬가지 느낌을 줍니다. 그렇다면 오픈소스의 대표 격인 리눅스(Linux)[1]는 어떨까요? 네. 리눅스보다 윈도나 Mac OS가 뛰어납니다.

 

2. 너무나도 낮은 품질 기준

위에서 설명한 것과 같은 맥락입니다. 오픈소스 세계에는 엄격한 제약이나 감독이 존재하지 않습니다. 개발자를 관리할 관리자도, 실력 있는 인재를 뽑을 면접도, 실수를 바로잡아줄 상사도, 여러분을 해고할 사람도 없습니다. 이 때문에 일부 오픈소스 "커뮤니티"에는 최악의 개발자들이 득시글거립니다. 이제 막 걸음마를 뗀 개발자부터 주류가 되지 못한 "숙련된 개발자"까지 원하는 프로젝트에 큰 장벽 없이 참여하고 "기여"할 수 있습니다. 실소를 금치 않을 수 없습니다.

 

3. 지적재산권은 어디에?

"잠깐만요. 오픈소스에 원하는 대로 다양한 라이선스 모델을 적용할 수 있잖아요?"  하지만 진짜 중요한 것은 누가 이를 강제할 수 있냐는 것입니다. "개발자"의 탈을 쓴 범죄자가 다른 사람의 코드를 훔쳐 살짝 바꾼 후 이를 팔아 돈을 벌었지만 아무 일도 일어나지 않은 것을 수도 없이 많이 봤습니다. 심지어 블렌더는 유료 버전이 따로 존재합니다. 문제는 오픈소스라는 개념 자체가 개발자를 이러한 위험에 노출시킨다는 것입니다. 누구라도 여러분이 고생해서 만든 창작물을 훔쳐 자신의 것인 마냥 행세하고 돈을 벌 수 있습니다.

 

4. 후진적인 "커뮤니티" 문화

"오픈소스 커뮤니티"라는 단어부터 이미 난센스입니다. 자칭 10x 개발자[2]가 다른 사람의 코드를 무차별로 공격하는 것을 자주 봤습니다. 지식을 공유하며 실력이 부족한 개발자를 이끌어 주는 것이 커뮤니티의 역할이며, 자신이 작성한 코드가 조롱당하는 것을 좋아하는 개발자는 아무도 없습니다. 미국의 인터넷 최대 커뮤니티인 레딧(reddit)에는 나쁜 코드를 공개적으로 비난하는 서브레딧도 존재합니다. "커뮤니티" 홍보를 위해서 하는 일이지만 결국 자기 얼굴에 침 뱉기와 같습니다.

 

5. 프로그래머도 먹고살아야 한다

적어도 "훌륭한" 프로그래머는 좋은 대접을 받아야 합니다. 컴퓨터 앞에 앉아서 하루 종일 코딩하는 대가가 그저 커뮤니티에서 잘했다는 칭찬을 받거나 깃허브(Github)[3]에서 많은 별점을 얻는 것에서 그친다면 무슨 의미가 있을까요? 하루하루 먹고살기 위해 코딩하는 프로그래머도 있습니다. 이러한 개발자 중 일부는 프로그래밍이 적성이지만 그렇지 않은 사람도 있습니다. 다른 모든 직업(배우, 음악가, 의사, 변호사 등)과 마찬가지로 프로그래머는 자신이 일하는 대가로 합당한 보상을 받을 자격이 있습니다. 하지만 깃허브에 존재하는 대부분의 프로젝트가 형편없다는 사실을 안다면 모두에게 해당하는 것은 아닙니다.

 

6. 부족한 기술 지원

설마 제대로 된 기술 지원을 기대하지는 않으셨겠죠? 3년 전 멋진 오픈소스 소프트웨어를 처음 개발했던 학부 졸업생 A씨는 이제 자금이 쪼들려 더 이상 프로젝트를 이어 나가기 힘든 상황입니다. 열정 하나로 코딩을 시작했지만 아무 대가 없이 공개한 프로젝트는 이제 한계에 다다랐습니다. 하루하루 무엇을 먹을지가 걱정이며 월세를 감당하기도 벅찹니다. 당연히 이성 친구와 데이트할 돈도 없겠죠. 이것이 여러분이 선택한 오픈소스의 개발자가 처한 현실일 수도 있습니다. A씨는 이제 오픈소스 개발을 포기하고 제대로 된 직장을 구하려고 합니다.

 

7. 취약한 보안

이는 아주 심각한 문제입니다. 오픈소스 소프트웨어는 보안에 취약하고 신뢰할 수 없다고 알려져 있습니다. 어차피 공짜로 쓰는 것인데 많은 것을 기대할 수 있을까요? 하지만 이로 인해 여러분의 회사에 피해가 간다면 누구에게 책임을 물을 수 있을까요?

 

8. 코드 공개 요구

오픈소스를 숭배하는 개발자의 대다수는 모든 소프트웨어, 특히 소규모 팀이나 개인 개발자가 작성한 소프트웨어는 모두 공개해야 한다고 믿습니다. 다른 사람의 코드를 보고 싶다는 욕구는 결코 채워질 수 없습니다. 그렇다면 여러분에게 코드를 보여달라는 사람들에게 무엇이라고 말해야 할까요? 프로젝트를 오픈소스로 공개할 수 없는 이유를 논리적으로 설명하기보다 이러한 요구를 그냥 무시하는 편이 낫습니다.

 

9. 대규모 레거시 시스템에서의 한계

대규모 레거시 시스템[4]에 탑재된 소프트웨어를 관리하려면 오랜 기간 같은 프로젝트에서 꾸준히 일해온 개발팀이 필요합니다. 코드베이스[5]의 역사를 이해하고 방대한 코드에서 필요한 부분을 빠르게 찾아낼 수 있는 역량이 필수이기 때문입니다. 오픈소스 프로젝트는 재능 있는 개발자를 장기간 묶어둘 만한 당근(임금, 기업 문화, 계층)이 없습니다. 이 때문에 프로젝트가 중단되는 일이 다반사입니다.

 

앞서 말씀드린 것과 같이, 할 말이 너무 많아 책을 써야 할지도 모르겠습니다. 하지만 결론만 말씀드리자면, 오픈소스는 태생적으로 한계가 있으며 제한적인 목적의 프로젝트나 학습을 위한 소규모 프로젝트에 적합합니다. 새로운 언어를 연습하거나 본인을 홍보하려는 목적의 프로젝트가 아니라면 다시 한번 생각해보세요.


[1] 가장 널리 사용되는 커뮤니티 기반으로 개발된 오픈소스 컴퓨터 운영체제(OS).

[2] 남들보다 10배의 생산성을 지닌 뛰어난 개발자.

[3] 분산 버전 관리 툴인 깃(Git)을 사용하여 프로젝트를 관리하고 공유하는 웹 기반 서비스. 수 많은 개발자들이 수 많은 오픈소스 프로젝트에 자발적으로 기여하고 있다.

[4] 과거에 개발되어 현재까지 사용 중인 낡은 시스템. 안정성이 가장 중요시되는 핵심 시스템은 쉽게 변화를 주기 힘들기 때문에 신기술의 도입이 늦고 레거시 코드가 오랜 기간 사용된다.

[5] 특정 소프트웨어 시스템, 응용 소프트웨어, 소프트웨어 구성 요소를 빌드하기 위해 사용되는 소스 코드의 전체 집합.

요즘IT의 번역글들

이 프로필을 만든 저만 해도 영어가 서툴러 영어로 된 기사는 읽는 게 더딥니다. 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.