오픈소스 소프트웨어 도입/사용시 생기는 단점/문제점들을 알아보자

 새해에 한 번 '한다' 체를 사용해보겠다. 반말이라 미안하다. 

이제는 모든 기업(겉으로만 IT회사 흉내내는 몇몇 중소기업빼고)들이 오픈소스 소프트웨어를 쓴다라고 말해도 될 것 같다. 오픈소스의 장점이 많으니 그럴 것이다. 단점만 있는데 쓰지는 않을 것이다. 단점보다 장점이 많으니 사용한다.

모든 것엔 장단점이 있다. 혹시 오픈소스 도입을 고려중인 곳을 위해 단점에 대해서 말해주고자 한다.  여러 오픈소스가 있겠지만, 엘라스틱스택, 카프카, 쿠버네티스 같은 오픈소스라고 생각하고 말하겠다.


그럼 단점은 무엇일까? 횡설수설 써보겠다.


1. 사용이 어렵다. 러닝 커브(Learning curve)가 높다 (영어로 보통 steep 하다고 표현한다). 쉽게 말해 배우기가 어렵다. 

즉, 전문가나 숙련된 엔지니어를 찾기가 힘들다.  비용 문제로 공짜인 오픈소스를 쓰려고 하는데 설계부터 막히고, 설치에서 막히고, 운영에서 막힌다. 에러가 나도 트러블 슈팅이 안되고, 어디 물어볼 때도 마땅치 않다. 커뮤니티나 스택오버플로우에 물어봐야 하는데 영어로 물어봐야 한다. 보통 작은 기업은 비용문제로 엔지니어 달랑 한 명 쓰려고 하는데 엔지니어 한명이 오픈소스 관련 모든 일을 할 수 없다. 뒤에서 다시 언급하겠다.


2. 무료라서 쓰지만 돈이 들 수 있다. 

위에서 발생한 문제의 연장선이다. 직원들에게 해당 오픈소스 교육을 시켜야하는데 스스로 코드를 보고, 책을 읽고, 유투브로 공부할 능력이나 의지가 없다. 그래서 해당 오픈소스마다 자격증, 교육, 지원으로 장사하는 기업들이 다 있는데 거기에 교육을 맡기는데 한 명당 3일 2백만원이다. 왠지 자격증도 따야 하는 기분이 들어 시험 응시시키면 회당 30만원이 든다. 이렇게 교육받아도 오픈소스의 영역이 너무 넓고 한 명의 엔지니어가 전부 커버하는 게 말이 안되는데 경영진은 그걸 모른다. 해당 오픈소스 개발한 개발자 수만 몇 백인데, 그런 오픈소스를 한명가지고 설계도 하고 설치도 하고 운영을 맡기려고 생각하는 회사라 암담하다. 직원이 죽는 소리를 하면 회사는 그제서야 아까 말한 해당 오픈소스로 장사하는 회사에 컨설팅을 유료로 받는다. 컨설팅 받다보니 설치도 맡겨야 겠다. 설치하려니 온프렘보다는 클라우드로 가야겠다. 설치하고 나서도 모니터링하면서 운영할 인력이 없으니 맡겨야 겠다. 트러블 슈팅나도 우리 직원 혼자 해결이 안되니 우리 직원은 그냥 외주 준 그 회사에 문제 생기면 쪼으는 역할하는 사람으로 써야겠다. 결국 무료인줄 알고 썼는데 한 달에 몇 백 몇 천씩 깨진다.   


3. 오픈소스의 가장 큰 단점은 돈내고 사용하는 소프트웨어의 가장 큰 장점인 지원(support)가 없다는 것이다.

위의 내용들과 다 겹친다. 돈 내고 쓰는 소프트웨어들의 경우는 문제가 생기면 그 회사에 이메일을 보낸다. 그럼 티켓이 생성되고 서포트 엔지니어들이 고객과 연락하면서 담당 개발자에 토스하고 하면서 문제가 쉽게 해결된다. 하지만 오픈소스는 그렇지 않다. 오픈소스 개발자들은 그냥 재미로 돈 안받고 개발하다가 다른 프로젝트로 갈아타기도 한다. 이 사람들은 서포트 엔지니어들이 아니다. 스택오버플로우나 슬랙에서 놀고 있는 전문가들이 가끔씩 재미삼아 해결해 줄때도 있지만 당장 급할 땐 난처하다. 거기다가 만국 공용어인 영어로 질문을 주고 받아야 하는데 꽤 많은 엔지니어들은 영어 울렁증이 있어서 힘들다. 여러 명이 개발하는 오픈소스라 버그나 이슈는 발견 즉시 빠르게 해결되는 것 같긴하다. 이건 몇 달씩 걸리는 상업 소프트웨어 보다 낫긴 한데 내가 깃헙에 버그를 보고하고 하려니 할 일이 많다. 영어도 부족하다. 국내 페북 해당 커뮤니티에 질문을 올리고 하는데 답변은 언제 올라올지 모르고 올라온 답변도 시원찮다. 그래서 결국 돈 주고 유료 지원을 받게 된다. (유료지원을 받아도 사실 한국 서포트 엔지니어가 외국개발자에 토스하는 방식이다.) 가격이 비싸다. 아~ 오픈소스 그냥 쓰지 말자. 아~ 근데 우리가 개발하려니 인력도 없고 돈도 없고 개발자들 실력도 안된다.  결국 인원빨 많고 돈 많은 내수용 IT 대기업에서 오픈소스를 많이 쓴다. 


4. 보안이 문제라고 하기도 하는데, 또 어떻게 보면 오픈소스니 소스가 다 보이고 여러명이 여러개의 눈으로 보고 있는데 악성 코드를 심을 수 있을까 싶기도 하는데 또 방심한 틈을 타 (등잔 밑이 어둡다) 트로잔 목마를 세워둘 수도 있을 것 같다. 오픈소스의 장점이 단점이 되기도 한다. 

예로, 오픈소스에 포함된 log4j 같은 것들이 심각한 보안 문제를 일으키기도 한다. 근데 이건 상용 소프트웨어도 마찬가지다. 오픈소스라고 더 심각하다고 할 순 없다고 본다. 


가장 중요한 부분 : 오픈소스를 잘못 사용하면 배보다 배꼽이 커지는 상황을 보게 된다. 실력 안되는 회사는 애초에 건드리지도 말자!!!   가 아니라 자신의 자원과 현재 상태를 잘 분석해서 신중히 검토하고 소화할 수 있는 인력을 보유한 뒤, 그것을 잘 운영하고 관리할 수 있는 체계있는 시스템을 만들고 문서화를 잘해서 그 시스템을 자알 유지시키자! 고 말하고 싶다. 


P.S. - IT 회사 두 곳에서 혼자서 오픈소스들을 회사에 도입해서 사용하게 해주려고 고생한 경험에서 나온 주관적이고 개인적이고 나 혼자만의 생각이다. 너무 열올리지마라. 니 생각도 맞고 내 생각도 맞다. 사람마다 경험한 것이 다르고 생각하는 것이 다른 것이다. ㅇㅋ? 


******************************************************************************

부연 설명 - 보통 해당 오픈소스의 주축인 개발자나 메인테이너들이 모여서 회사를 만들고, 그 회사에서 개발을 주도하고, 컨퍼런스도 열고, 해당 오픈소스 생태계 활성화를 위해서 여러가지 활동을 합니다. 웨비나도 하고, 무료 교육도 합니다. 유료 교육과 자격증 사업도 하고 지원 서비스를 제공하고, 오픈소스에 여러 부가 서비스를 달아서 판매합니다. 클라우드 업체랑 딜을 하고 여러 다른 기업 제품들과 연동하는 커넥터, 인테그레이션 들도 개발합니다. 스티커도 주고 티셔츠도 주고 후드티도 주고 좋은 일 많이 합니다. 돈 많이 벌면 누구나 좋은 일 조금은 하게 됩니다. 그리고 그 좋은 일은 결국 돈벌려고 하는 거고. 뭐, 프로끼리 새삼스럽게!

마지막으로 오픈소스에 부가 서비스로 돈 버는 기업들은 너무 고가의 비용을 청구하지 맙시다. 해당 오픈소스 생태계는 사용자가 사라지면 같이 사라집니다. 아시죠? 좋은 취지의 오픈소스 소프트웨어들로 장사를 할꺼면 상도는 지킵시다!  

- The End - 

Comments