코딩이 재능을 많이 탄다고 하는 이유
1. 오픈소스 문화 그게 뭔데?
2. 오픈소스 문화가 업계에 미치는 영향력
3. 오프소스 문화가 취준생에게 미치는 영향력
4. 코딩이 재능을 많이 탄다고 하는 이유
다전공을 시작하기 전엔 수평적이고 개방적인 개발자들의 오픈소스 문화가 멋있게 보였다.
개발자가 끝없이 공부해야 되는 이유를 고민하다 '오픈소스'를 범인으로 지목하게 되었다.
취준생인 나는 오픈소스가 원망스럽다. 오픈소스가 취준생에 미치는 영향을 정리해보기로 했다.
코딩을 직접 하지 않더라도 IT 분야에 관심있는 사람이라면 '오픈소스'를 들어봤을 것이다. 최근 '오픈AI'사는 자연어처리 인공지능 GPT-3 모델을 유료로 출시한다고 해서 논란이 생기기도 했다. 소프트웨어 업체에서 자사의 제품을 유료로 출시하는 것이 문제가 됐던 이유는 오픈소스 문화와 관련이 있다.
소스 코드, 디자인 문서, 또는 제품의 내용을 사용할 권한을 공유하는 것 (위키백과)
기존의 프리웨어와는 조금 다른데 프리웨어는 사용자 입장에서 무료로 이용할 수 있지만, 소스 코드를 공개해 다른 업체(개발자)들이 공짜로 사용할 수 있는 것은 아니다. 오픈소스도 여러 종류(라이센스)가 있지만 대체로 개발자들도 무료로 이용할 수 있도록 공개한다. '오픈AI'는 단체 이름에서도 드러나듯이 무료로 누구나 사용할 수 있는 소프트웨어를 지향한다. 연구결과, 논문, 특허를 무료로 공개해왔다. 이랬던 '오픈AI'가 GPT-3를 유료화한다하니 논란이 생길 법도 하다.
처음의 작은 행동이 결과적으로 큰 현상을 만드는 현상을 '스노우볼'이라고 한다. 오픈소스가 IT산업에 미치는 영향은 스노우볼 효과와 같다. 오픈소스는 공유를 계속해서 쌓아간다. A를 오픈소스로 배포하면, A를 이용한 B역시 오픈소스가 되어야 한다. 이런 문화를 기반으로 IT산업은 급진적으로 발전해왔다. 오픈소스인 소프트웨어를 찾아보면 들어본 것이 많을 것이다.
프로그래밍 언어: Python, Javascript, C++, R, Ruby, Dart
프로그래밍 관련 사이트 및 도구: Github, Git, React, Atom, Anaconda, Jupyter
데이터 사이언스: Hadoop, Spark, Tensorflow, Pandas, Pytorch
상용 소프트웨어(클로즈소스)는 기업들이 '팔아야 할' 제품이기 때문에 소스코드를 공개하지 않는다. 마이크로소프트의 운영체제인 'Windows', 어도비사의 '포토샵, 프리미어'등은 돈을 받고 판매한다. 그런데 예를 들어 내가 Windows, 포토샵, 프리미어 등을 더 개발시킬 능력이 있다고 하자. 하지만 코드를 얻을 수 없기 때문에 할 수가 없다. 무급으로 기꺼이 봉사를 할 의사가 있어도 불가능하다. 만약 소프트웨어들이 클로즈소스가 아니라 오픈소스라면 가능하다. 당연히 오픈소스 문화에서 IT산업은 빠르게 발전할 수 밖에 없다. 오픈소스는 나이, 직급, 국적 등 상관없이 '누구나' 참여할 수 있다.
오픈소스 문화가 좋든 싫든 후배 개발자들은 따를 수밖에 없다. 오픈소스를 이용하지 않고 최신 기술을 직접 구현해 사용하겠다는 것은 불가능하다. 애초에 오픈소스의 정신은 '이미 유사한 기능이 있는 소프트웨어를 개발하면서 시간낭비를 하지 말고, 기존 것을 토대로 새로운 소프트웨어를 개발하여 사회에 기여하라'는 것이다.
정말 개발자들의 문화는 멋있었다. 그것이 내 이야기가 되기 전 까지...
개인은 사회가 만들어놓은 판에서 적응해야 한다. IT업계가 빠른 속도로 발전하고 있는데, 나만 천천히 갈 수 있을까? 없다. 천천히 가면 난 무능하고 게으른 개발자가 되어있을 것이다. (이미 된 건지도...) 오픈소스의 업계에 대한 영향력은 뒤로 하고, 기업들의 채용공고를 보면 오픈소스에 관련된 활동을 해야 취업을 하기 쉬워진다는 것을 알 수 있다. 네이버의 인턴공고를 보면 '오픈소스 프로젝트 경험이 있으신 분 우대'를 볼 수 있다. 이건 네이버 뿐만 아니라 어떤 기업의 취업공고든 쉽게 찾아볼 수 있는 내용이다. 최신 트렌드도 아닌 몇 년 전의 모델도 허덕이고 있는 나로서는... 충족시키기 힘든 조건이다.
조금 억울?한 것은 취업준비생들은 이중고를 겪는다는 것이다. 예를 들어 대기업들은 Java Spring을 많이 이용하지만 스타트업들은 nodejs를 선호한다. 취준생들은 둘 다 준비해야 한다. 그런데 오픈소스로 새로운 기술들이 지금도 나오고 있으니 ... 공부하는 속도보다 출시 속도를 따라가지 못한다면... 미래는 암담하다.
빠르게 발전하고 있는 오픈소스를 숙지할 뿐만 아니라, 자신의 능력으로 개선하라는 것이다.
오픈소스 문화가 확산되면서 개발(코딩)이 '일'과 '취미' 사이를 넘나들기 시작했다. 나는 농구, 야구를 좋아해서 'nbamania', 'mlbpark'를 눈팅하는 편이다. 농구, 야구를 좋아하니까.
'stackoverflow', 'github'는 코딩을 할 때만 본다. 내가 해야 하는 과제, 프로젝트를 하는 것도 버겁다. 다른 사람들의 디버깅을 도와주는 것은 내게 취미가 아니라 업무다. 단순히 돈을 안 받아서가 아니라 그 자체가 고된 일이기 때문에 쉬는 시간에 하기가 꺼려진다. 그런데 이런 일을 쉬는 시간, 자기 전 침대에서 등 가리지 않고 하는 '찐(또배기)' 개발자들이 있다.
IT업계는 천하제일'실력'대회다. 코딩은 누구에게나 열려있다. 다른 것 다 필요없고 '실력'만 있으면 된다. 그런데 문제는 IT업계는 매우매우 빠른 속도로 발전하고 있다는 것이다. 오픈소스에 기여하려면 기존의 소프트웨어는 물론 새롭게 출시된 것들도 파악해야 한다. 노력으로 재능을 커버하기에는 IT시장이 너무 빨리 변화한다. 그러니 코딩은 '재능'이 중요할 수밖에 없다.
끝없이 도착선이 연장된다면 당연히 마력이 높은 엔진을 가진 자동차가 유리할 수밖에 없다. 결론적으로 오픈소스 문화로 코딩에 흥미, 실력 모두 갖춘 사람과 그렇지 않은 사람들의 격차가 더욱 커지고 있다. 사실 재능탓을 하기엔 코딩을 시작한지 2년, 다전공을 시작한지 1년 정도밖에 되지 않았다. 아직은 하수지만, 많은 노력으로 stackoverflow가 놀이터가 되길 바란다.