지금 다니는 회사에서 Typeorm에 관해서 대화를 나눈 적이 있었다. 다들 자기 의견에 대해서 말을 하는데, typeorm의 최초 개발자가 typeorm을 주도적으로 개발하지 않아 곧 deprecated 된다는 얘기를 들었다. 사실 nodejs 서버 진영에서는 (적어도 한국에서는) ORM 프로그램 중에서 가장 많이 쓰이는 것이 typeorm이라고 알고 있었다. 하지만 지속적인 지원이 없는 프로그램을 가장 많이 쓴다는 것이 둘 다 모순이 된다고 생각했다. 그래서 이것에 대해서 궁금증이 생겨서 나름 내용을 찾아봤다.
일단 typeorm이 많이 쓰이는 이유를 찾아보니 오래되기도 했고 typescript 지원에다가 다른 orm에서 주로 쓰는 패턴과 비슷해서 적응이 빠른것이 장점인 것 같았다. 하지만 typeorm은 소수의 인원들로부터 시작한 프로젝트이고, node의 생태계가 급성장함에 따라서 typeorm을 사용하는 사람이 많아졌고, 이에 비례해서 PR 및 Issue들이 기하급수적으로 늘어나게 되었다. 하지만 현장 인력은 늘어나지도 않고, 더욱이 오픈소스 프로그램이여서 보수도 들어오지 않았다. 보수라고 해도 다른 개발자들의 sponsor 또는 donate 밖에 없던 상황이였다. 결국 typeorm의 개발자는 해당 Issue를 올리게 되었다.
https://github.com/typeorm/typeorm/issues/3267
간단히 요약하면, typeorm을 유지하기 위해서는 시간과 인력, 그리고 돈이 필요한데 지금 그것을 관리하기 위해서는 너무 거대해졌고 인력과 시간이 없다는 것이다. 그 이후로는 간간히 업데이트가 올라오는 것을 봐서는 뭔가 개발을 하는 것 같기는 한데, 타 ORM에 비해서는 업데이트 주기도 늦고 언제 deprecated 될지 모르는 프로젝트가 되었다.
사실 오픈소스라는 것은 자본주의 사회에서 보았을 때는 이해를 할 수 없는 프로그램이긴 하다. 자신의 힘으로 프로그램을 작성했고 타인이 사용한다고 하면 거기에 저작권 또는 가격을 붙여 수익을 내는 것이 맞는데, 몇몇 개발자들은 해당 프로그램의 작동 원리(소스) 를 공개하기 시작했다. 이것이 오픈 소스의 시작이고, 이러한 코드들이 github라는 커뮤니티에 모이면서 오픈소스 프로그램은 널리 퍼지게 되었다. 그리고 몇몇 퀄리티 있는 오픈소스들은 많은 인기를 얻게 되었다.
여기까지만 보면 좋은 문화같아 보인다. 하지만 이러한 오픈소스에는 맹점도 분명히 존재한다. 그것은 돈이 안 된다는 것이다. 사실 돈이 안 된다는 것만 보면은 문제가 없다. 하지만 해당 프로그램에 버그가 있거나 개선을 요구하는 다른 사람들이 있을 수 있다. 이러한 요구사항들이 고치기 어렵지 않고 몇 개 안되면은 취미로 할 수도 있다. 하지만 해당 프로그램을 사용하는 사람들이 너무 많고 PR도 몇천개씩 들어오기 시작하면 여기서부터 문제가 생긴다. 나는 내가 작성한 프로그램을 타인이 소소하게 잘 사용했으면 하는 바람에 공개를 했는데, 컴플레인이 몇천개씩 들어오게 되면은 고민에 빠지게 된다. 물론 이런 문제를 해결할 능력과 시간이 충분하다면 할 수도 있으나, 대부분의 사람들은 이러한 시간과 돈이 없는 경우가 많을 것이다. 여기에 개선을 요구하는 것을 넘어서 강력한 항의가 들어올 수도 있고, 저작권에 따라 다르겠지만 해당 프로그램을 사용해 엄청난 돈을 버는 사용자도 있을 것이다. 이러한 상황 속에서 오픈소스 개발자들은 당연히 엄청난 스트레스를 받을 것이다.
nextjs에서 사용하는 컴파일러인 swc의 개발자도 같은 고민에 빠진 것을 본 적이 있다.
https://kdy1.github.io/post/2022/10/stc/
참 안타까운 현실이라고 생각한다. 이러한 현상 때문에 자바나 ES같은 상황이 생기는 것 같다. 자바 또한 오픈소스 프로그램이였는데, 구글에서 자바를 사용해서 막대한 돈을 벌어들이면서 갈등이 생기게 되었고, 결국 자바는 여러개의 다른 버전이 생기게 되었다. 또한 ES (엘라스틱서치) 도 원래 오픈소스 프로그램이였지만 아마존에서 해당 프로그램을 상품으로 판매하게 되면서 갈등이 생겼고, 결국 특정 버전을 기점으로 ElasticSearch 와 OpenSearch로 나뉘게 되었다. 개인적인 생각으로는 기업의 가치가 매우 거대해지면 사용하는 오픈소스 프로그램에는 어느정도 보상을 해 주는것이 맞다고 생각은 한다. 하지만 그게 도덕상의 문제지, 법적으로 문제는 되지 않아서 사용해도 문제는 없다. 특히나 이윤을 추구하는 기업이라면 더더욱 기여를 하지 않을 확률이 높다. 만약 이대로 가면은 오픈소스 프로그램이 옛말이 되지 않을까 무섭다는 생각도 든다.
잘 작성된 오픈소스 프로그램은 코딩을 배우기에 참 좋다고 생각을 한다. 높은 확률로 훌륭한 개발자가 읽기 좋게 작성한 프로그램일 확률이 높고 사람들끼리 코드리뷰를 하는 것도 컴퓨터만 있으면 무료로 볼 수 있는 최고의 교육 자료들이라고 생각한다. 나같은 경우에도 특정 프로그램의 오작동을 확인하기 위해서 오픈소스를 분석해 본 경험도 있었고, 그것이 나에게 많은 도움이 되었다. 하지만 익명성에 가려져 다른사람의 의견이나 코드를 무조건적으로 비난하고, 해결해달라고 떼쓰고, 그것을 이용해서 막대한 돈을 벌었음에도 불구하고 기여를 1도 하지 않는 사람들이 있기도 하다. 아무리 가상 공간에서 있다고 한들, 최소한에 상호간에 존중하고 배려하는 모습은 갖추어야 하는 것이 개발자로서 필요한 0순위라고 생각한다.
앞서 말한 상황이 계속 생기게 되면, 언젠가는 '오픈소스 프로그램' 은 구시대의 유물로 남겨질 수도 있다. 우리가 받고 있는 혜택을 다음 세대의 개발자한테도 물려줘야 좋은 개발 문화가 계속되지 않을까
'IT 이야기' 카테고리의 다른 글
Mermaid를 사용해서 ERD 작성하기 (0) | 2023.04.24 |
---|---|
local에서 https로 개발하기 (2) | 2023.02.10 |
ts-jest 설치 안되는 에러 해결 (2) | 2023.02.01 |
로컬 환경에서 외부 요청 받기 (0) | 2022.10.20 |
심심해서 그냥 끄적이는 나의 개발환경 (0) | 2022.10.06 |