얼마전 오랜만에 또 지수형을 만나서 이야기 할 기회가 생겼다. 만남이란 것이 꼭 어떠한 바램을 위해 존재하는 것은 아니지만 근래들어 만난 모임중에 아마 가장 가치있는 모임이 아니었나 싶다. 예전엔 어떤 수를 써서라도 개발자 모임에 가는 것을 좋아라 하는 나였는데, 그새 이렇게 변했다. 나는, 학교에 치우치고 이리저리 일에 치우치다 보니 사람이 많이 나태해 졌다는 것을 새삼 알게 되었다.
지수형은 요즘 스타트업의 Main Programmer로 한참 바쁘신 것 같다. 그 바쁜 시간을 내서 낮에 무려 4시간이나 이야기를 나누게 되었다. 주된 내용은 역시나 프로그래밍 기술에 대해서. 지수형은 최초 프로그래밍을 시작할 때 나와 비슷하게 Java를 통해 매력을 느낀 이후 Scala로 갈아타고 지금은 주력 언어가 Scala가 되었다. 사실 나는 그때까지도 스칼라가 얼마나 강력한 지를 몰랐지만, 확실히 기술은 지속적으로 변하고 있었다.
트랜드라는 것이 그렇다. 사실 뭐 요즘 프로그래밍좀 한단 친구들, 해봤자 아파치에 PHP정도 돌려서 MYSQL써서 하는 프로그래밍을 개발이라고 하고 있다. 물론 틀린 것은 아니다. 하지만 다양한 상황에 대해서 유연하게 대처할 수 있는, 그런 프로그래밍을 한다면? 그럼 과연 단순히 PHP만 돌릴 수 있는 환경이 “다” 라고 할 수 있을까.
기술은 쉬워진다. 여기서 쉬워진다는 말은 내 생각이지만 “미국”에서 쉬워진다는 말이다. 사실 스칼라라는 언어, 마치 Ruby를 다루는 것처럼 쉽다. 물론 아직도 많이 사용해 본 것은 아니지만 그런 쉬운 스크립팅(scripting)형 언어를 어떻게 하는 것이 과연 잘 쓰는 것인가. 이런 고민을 하기 전에 나는 국내에 스칼라 관련된 자료가 매우 미비하구나 라는 것을 먼저 느낄 수 있었다. 마치 내가 HTML5 자료에 대해 목메이다가 한국 사용자모임을 만든 것처럼..
나태해진 그대, 그대는 바로 나를 말한다. 나의 주력인 서버 기술을 살펴보면 우선 자바를 돌릴 수 있는 환경이 되어야 한다. 그나마 작년, Spring을 공부한 이후 Servlet과 많이 친숙해 져서 이젠 조금 더 자유자재로 웹상에서의 데이터를 서버와 클라이언트 간에 주고받을 수 있는 실력이 됬다. 하지만 그래봤자 나는 APACHE+TOMCAT+MYSQL+WIN2k8 환경을 버리지 못한다. 어떤 다른 WAS도 시도해 보려고 하지 않는다.
사실 실무에 있었을 때 Resin, Websphere, WebLogic, JBoss 총 네 종의 상용(물론 Jboss는 빼고..) WAS를 다뤄봤다. 세부적인 설정이야 서버 관리자가 알아서 하긴 했지만, 그래도 어느정도 서버가 구동되는 방식에 대해 이해를 한다. 그래봤자 자바란 게 뭐 클래스패스랑 리소스 경로만 잘 잡고, 커넥션에 대해 잘 잡으면 그만이다. 그러다 보니 위에서 언급한 apache+tomcat환경이 너무나도 익숙해졌고, 거기다가 CI툴로 Hudson사용에 Apache 물린 SVN, 한물 갔지만 스크립트만 만들면 되는 Ants만 있으면 난 거의 무적으로 환경을 구축할 수 있는 것 같다.
하지만 이러한 “무적” 이라는 단어가 내게 나태를 가져왔다. 이러한 환경을 나는 20살, JSP를 알고 난 이후 무려 7년간 고수했다. 그러다 보니 자바가 아니면 익숙하지 않다. MySQL처럼 RDB가 아니면 익숙치 않다. 익숙치 않다 보니 나는 쉽게 포기를 하고 만다. 스칼라를 배우고자 했는데, 익숙치가 않으니 쉽게 포기를 한다.
쉽다는 것의 전재는 잘 알고 들어간다는 것이다. “쉽고 강력한” 의 함정은 이게 왜 다른 것에 비해 강력한지를 알아야 한다는 것이다. 나는 그러한 함정에 아주 깊게 빠져있던 것 같다. 프로그래머는 말 그대로 코딩만 하면 된다고 생각했는데, 그러면서도 나는 슈퍼개발자를 지향해 왔다. 모순적이다.
어쨌든 지수형을 통해 알게된 Scala, Node.js, Akka, Play Framework, spray.io, scalate 등.. 난 참 특히 spray.io에 놀랐는데 마치 코딩을 하듯이 서버를 구동시킨다는 것이 와.. 그동안 정말 내가 우물안의 개구리였구나 라는 생각이 매우 깊게 들었다. 톰켓과 자바만 고집할 게 아니라 어차피 Light한 서버 개발자(이 의미는 주력은 front-end로 가되, back-end 환경의 구현에 있어서는 전문가 스럽지는 않아도 막힘이 없는 정도 라고 하겠다.)를 생각하는 나로썬, 아에 뒤집어 엎는 편이 좋을 것 같다.
작년 지수형의 첫 만남을 통해 IntelliJ IDEA를 알게 되었고 올해는 스칼라와 다른 back-end기술들을 알게 되었다. 핵심적인 개발자 한명이 바꿔놓는 나는 정말로 크다. 사실 개발자야 우리과가 컴공과 이므로 정말 많긴 한데.. 뭐랄까, 내가 바라보는 우리과의 친구들은 개발자적인 마인드보다는 학문적인 마인드가 크다.
“융합” 즉 디자인+프로그래밍+기획 을 모두, 거기에 여러가지 사회학적인 요소를 혼합하고자 하는 융합적 프로그래머 를 지향하는 나로썬 너무 보편적인 개발자로 나가고자 하는 친구들과 섞이고 싶지 않은 마인드가 매우 강하다. 이 말은 즉 나는 괴짜 개발자가 좋다는 것이다. 학교에서 프로그래밍을 공부하는 친구들, 자바나 C#, 웹언어 좀 알게 되면 이제 눈에 나오는 걸 개발할 수 있게 되니 그때부터 대부분이 자만스러워 지는 것 같다. 나는 그런 모습을 7년간 학교에서 너무 많이 지켜봐왔다. 사실 그런 자만을 가지고 있는 학생은 그리 많지 않다. 한 5% 남짓, 하지만 문제는 그들은 나머지 95%를 도우려고 하지 않는다는 것이다.
그래서 나는 학교에서 나머지 95%를 도우기 위해 노력한다. 너무 코딩을 잘하고, 좋아하는 친구들은 되려 피하게 된다. 대신, 코딩은 잘 못해도 관심은 있되(여기서 관심은 최소한 미래에 밥벌이로 코딩을 하겠다는 친구들) 학교생활 잘 하고 자신의 소신것 어떤 노력을 하는 친구들을 나는 더 선호한다. 그리고, 지금까지도 그런 후배들과 많이 만나오려고 노력했었고 실제로 많은 후배들을 사귈 수 있었다.
사람은 변하면서 살아간다. 나 또한 여지껏 제대로된 작품 하나 만들려 하지 못했던 나 자신을 반성해본다. 그리고 또다른 메튜장 2.0을 설계하기 위해, 다시금 노력한다. 초심의 무지한 프로그래머로 돌아간다.