개발자 중에서 스택오버플로우를 모르는 사람은 없을 것이다. 코딩을 하다가 궁금한 내용이 있어서 검색을 하면 대부분의 경우에는 스택오버플로우에서 답변을 찾게 된다. 나 역시 매일 코딩을 하면서 많은 도움을 얻는 사이트다.
지난 가을에 한국정보통신진흥원에서 뉴욕으로 연수를 보낸 젊은 개발자들을 상대로 강연을 할 때, 한국에도 스택오버플로우와 같은 사이트가 있는지 물어본 적이 있다.
내가 들은 답변에 의하면 그런 사이트는 없는 것으로 드러났다. 연수원을 이끌던 교수님은 한국에는 ‘공유’의 문화가 결여되어 있기 때문이라고 설명해 주었다. 그렇다면 우리에게 공유의 문화가 왜 결여되어 있는가라는 질문이 떠오를 수밖에 없다. 많은 이야기가 있었지만 결론은 몇 가지로 압축된다.
우선 자신감의 결여다. 내가 제공하는 답변이 맞는지에 대해서 확신하지 못하고, 내가 올리는 코드가 최선의 코드인지 확인할 수 없기 때문이다. 답변만이 아니다. 질문을 올릴 때 더 많은 갈등과 의혹에 휩싸이게 된다.
이런 질문을 올리면 내가 이런 것도 모르는 사람이라는 사실을 온 세상에 공표하는 것이 아닌가 하는 불안한 심정이 든다. 어릴 때부터 온전한 방식으로 질문하는 방법을 배우지 못하고, “닥치고 듣기만 하는” 교육방식에 길들여져 있는 영혼은 질문하는 것이 불안하고 불편하다.
또 다른 이유는 먹고 살기 바쁘기 때문이란다. 날마다 야근을 해야 하고 마감일이 코앞인데 한가롭게 웹사이트를 돌아다니면서 남의 질문을 읽고 답하는데 사용할 시간이 없다. 궁금한 점이 있는 사람은 어차피 신속하게 답변이 올라올 것도 아닌데, 하는 생각이 들기 때문에 질문을 하지 않는다.
질문에 대한 답을 알고 있는 사람 역시 자기 일이 바쁘기도 하고, 답변을 하는데 따르는 구체적인 ‘인센티브’가 없기 때문에 질문을 무시한다. 귀차니즘과 먹고살기즘 앞에서 장사가 없다.
경쟁도 있다. 내가 터득한 비장의 ‘지식’을 나누어 줌으로써 잠재적 경쟁자들의 파워를 업그레이드 시키는 우를 범하지 않겠다는, 일종의 생존본능 같은 것이 키보드 위에 올라와 있는 손가락을 철수시킨다. 강신주 교수는 사람보다 돈을 더 중요하게 여기는 자본주의적 마인드가 우리의 영혼을 잠식했다고 지적하며, 인간중심의 철학을 회복할 것을 주장한다. 거시적으로 보면 그런 마인드가 공멸을 부를 수밖에 없기 때문이다.
지식을 나누는 것조차 경쟁의 시각으로 바라보는 우리의 ‘본능’은 그런 의미에서 자기파멸적이다. 개인은 자신만의 작은 섬에 갇히고, 전체는 공멸의 늪에 빠진다.
공유의 문화에 대해서 이야기를 꺼낸 이유는 통섭에 있다. 원래 뜻처럼 자연과학과 인문학의 결합에 대한 것이 아니라 프로그래밍 언어와 플랫폼의 통섭에 대해서 이야기해보고 싶었다. 요즘에는 단일한 언어와 플랫폼을 사용해서 하나의 시스템을 구축하는 것이 가능하지 않으며, 그렇게 하는 것이 바람직하지도 않다.
내가 일하는 월가의 은행에서 자바와 C#이 하나의 시스템 안에서 뒤섞인 채 사용되기 시작한 것은 아주 오래 전의 일이다. 요즘에는 오캐멀, 파이썬, 스칼라, 클로저, F#과 같은 다채로운 언어를 혼용해서 사용하는 곳도 늘어나고 있는 추세다.
데이터베이스 역시 관계형 데이터베이스의 독점적 지위가 허물어지고 캐시나 그리드를 활용한 인메모리 데이터베이스, 니오포제이(Neo4J)와 같은 그래프 데이터베이스, 몽고DB(MongoDB)와 같은 문서 데이터베이스 등이 프로젝트의 요구사항에 따라서 배치된다. 웹사이트를 개발할 때 사용할 수 있는 프레임워크 수도 일일이 셀 수 없을 정도다.
각종 기술과 플랫폼이 비온 뒤 죽순이 자라나듯 엄청난 기세로 쏟아져 나온다. 그렇게 많은 것 중에서 어느 하나를 선택해서 평생을 먹고 살아야 한다고 생각하는 사람은 혼란을 겪을 수밖에 없는 시절이다. 선택을 내리는 것이 결코 쉬운 일이 아니기 때문이다.
하지만 중요한 것은 그러한 선택 자체가 착각임을 깨닫는 것이다. 선택은 없다.
하나의 특정한 기술과 결혼을 해서 평생을 살려고 하는 사람은 시대착오적이다. 폴리글랏(여러 나라말을 구사하는 다국어 구사자를 일컫는다)의 시대에 결혼 따위는 존재하지 않는다. 2월 중에 한빛출판사에서 출간될 책의 내용 중에서 한 구절을 인용해본다.
“앞으로 프로그래머는 어느 하나의 언어에 안주할 수 없다. 패러다임을 달리 하는 여러 개의 언어를 자유롭게 구사하지 않으면 살아남을 수 없는 폴리글랏 프로그래밍의 시대가 되었기 때문이다. 자신의 포트폴리오를 어떤 언어로 구성하는지는 각자의 몫이다. 하지만 앞으로는 프로그래머가 어떤 언어에 대해서 얼마나 많이 알고 있는가 하는 것이 아니라 어떤 언어를 얼마나 빠르게 학습할 수 있는가 하는 것이 더 중요하다는 점을 기억하기 바란다.”
개발자에게 있어서 통섭의 다른 이름은 폴리글랏이다. 서로 다른 것들이 합쳐지면서 새로운 활로를 개척하는 것이 통섭이다. 그리고 공유와 통섭은 동전의 양면이다.
관련기사
- 카드정보 유출, 더 알아야할 불편한 진실2014.02.04
- 카드 정보 유출 사태 키운 SW의 배신2014.02.04
- NoSQL이 진정으로 의미하는 것2014.02.04
- 창업국가의 비밀2014.02.04
한국에 스택오버플로우와 같은 웹사이트가 있는지 찾기 위해서 인터넷 검색을 하다가 우연히 만난 한국의 개발자 사이트를 둘러보면서 느낀 점은, 그들이 각각 자기만의 섬을 이루고 있다는 점이었다. 외롭고 배타적인 느낌이었다. 그들이 선택한 언어나 플랫폼 주변에서는 심지어 종교의 아우라가 뿜어져 나오기도 했다. X에 대해서 말하는 것은 곧 Y에 대한 배척이라고 간주하는 막장논리도 눈에 뜨였다.
개발자들은 자기가 사용하고 있거나 새롭게 학습하고 있는 기술에 종교적인 의미(즉 배타성)를 부여하는 것을 경계해야 한다. 그것과 결혼하는 것을 두려워해야 한다. 공유를 통해서 섬을 탈피하고, 나눔을 통해서 통섭을 해야 한다. 끊임없이 바람을 피워야 한다. 지금은 폴리글랏의 시대이기 때문이다.
*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.