어쩌다 필이 꽃혔는지는 몰라도, 2011년부터는 안정된 회사 생활과 함께 결심한 사항을 끝까지 한번 지켜보자는 굳은 의지로, 작년 11월부터 공부하던 FLEX기술을 토대로 어쩌다 보니 오픈소셜에 관심이 생기게 되어 마침 네이버에서 공모전도 있고 해서 한번 나가보자는 취지 하에 소셜앱을 FLEX기반으로 개발하게 되었다.
그야말로 미친듯 달린 것 같다. 사실 처음에는 디자인 한다, 공부한다 는 등의 여유를 좀 부린 것 같다. 내가 기술력도 많이 부족하고, 개발을 하기에는 아직 내가 갖춰진 것이 없다고 생각했다. 모든 것을 미리 알고 시작하고 싶었고, 준비하고 시작하고 싶었다.
그렇게 공부할꺼 다 하고 디자인, 기획할꺼 다 한답시고 하다 보니 프로젝트를 생성한 날짜가 1월 30일이다. 약 1달전, 그리고 설날동안도 거의 작업을 못했으니 거의 1주일도 작업하지 않은 것 같다. 디자인만 조금 되어있고 기능적으로는 구현도 많이 되지 않은 허접한 작업물을 그저 공모전 날짜가 다가온다고 링크를 덥석 주고나서는 겁이 났다. 이토록이나 미완성인 작품같지도 않은 것을 내면 어떻게 될 것인가.
사실 기술적으로만 본다면 기존처럼 알고 있던 플렉스 3을 사용했다면 더 빨리 작업했을텐데, Flash Catalyst라는 걸 알게 되고 나서 내가 그간 구현하고 싶던 Custom Form 과 State별로의 애니메이션에 대해 원활히 작동하는 것을 보고는 이걸 꼭 써야겠따고 생각했다. 뭐 플렉스 3이나 4나 똑같겠지 라고 생각했더니만, 이건 뭐 막상 들어가니 일단 spark라는 객체가 skinable기반의 객체들인지라 모든 것들이 스킨과 연관되어 있고, 때문에 이벤트 패치나 부모-자식 간 데이터 전송에 대한 개념을 이해하지 못한다면 거의 작업 불가였다. 그저 단지 미국애들이 봤을 때 멋진 작업물은 나왔을 지언정, 한국에서 봤을 때는 그야말로 로컬라이징이 제대로 되지 않은 결과물이었다. ( 더 많은 나의 삽질들은 이제 기록해 나갈 것 같다. )
그래 뭐 거기까진 그렇다 치자. 어차피 ACE시험도 봐야 하고 그러니깐. 근데 갑자기 구글 앱 엔진이라는 것을 알게 되었고, 이 새로운 기술에 흥분을 감추지 못하고 또 공부한답시고 몇날을 새서 서버를 구축하고, BlazeDS랑 연동하려고 삽질하다 결국 안되서 Flex와 객체를 통신하기 위해 JSON으로 주고 받게 하고, 그렇게 힘들게 몇일간 밤새서 구축해 놨더니만 결국 쿼리에서 like문이 되지 않아서….. 쿼리에서 검색이 되게 하려면 인덱스를 생성하고 인덱스를 타서 검색하게 해야 한다. 이걸 이해하자니 차라리 내가 Tomcat으로 jsp서버를 새로 구축하는게 낫다고 판단하고 지난주 말에 서버 이전 작업을 거쳐서 다시 JSP서버 구축하고.. 서버 환경탓인지 기존 Class를 읽지 못해 톰켓의 모든 버전과 JDK를 맞추는 각종 삽질 종합 세트를 좀 진행하다 보니 결국 내가 가지고 있던 서버의 기존 톰켓 5.0을 가지고 만들게 되고….
이 서버 작업의 삽질이 좀 크리티컬했는데, 클라이언트에서 보면 플렉스에서 폰트가 적용 안되서 얼마나 많은 삽질을 했는지 모른다. 결국, spark랑 mx랑 css에서 각각 따로 스타일을 먹여줘야 한다는 사실을 알게 되었다.. 그 외에도 부모 자식간의 객체 전달이라던가, 이펙트나 이벤트라든가.. 이것 저것 신경쓸 것이 너무 많았다.
기술의 욕심이 화를 부르다.
그래 뭐 이걸 알아주는 사람도 있고 아닌 사람도 있을 것이다. 하지만 분명히 나 자신은 내가 고생한 정도와 오버한 정도, 삽질한 정도를 가장 객관적으로 판단할 수 있다. 때문에 나는 생각해 봤는데, 70% 정도가 삽질이었고 30%정도가 정말로 열정으로 달린 것이었다. 그리고 그 70% 삽질의 원인은 과도한 기술의 욕심이다. 보다 더 화려하고 강력한 기능을 넣기 위해, 초창기 기획보다는 한 150% 정도는 더 추가가 된 것 같다. 물론, 그때 기획에서 빠진 부분도 있지만 추가된 부분들이 내 실력에 비해서는 한 300%를 요구하는 것들이 많다는 것이다. 실력에 맞게 해야 하는데 계속 욕심이 생긴다. “아, 이것만 더 하면 될꺼 같은데!” 때문에 공모전에도 한 50% 완성된 작품을 낼 수 밖에 없었고, 그 뒤로 2주나 지난 지금에서야 어느정도 틀이 잡혔다는 것이다.
기술자의 욕심이란 것이 그런 것 같다. 물론 가만히 있는 개발자는 멈춰있을 것이다. 하지만 최소한 웹 개발을 한다면 추세에 맞춰야 한다. 요즘처럼 크로스 브라우징이 활발한 때라면 웹표준이나 모바일웹, html5를 알고 적용해야 할 시점이다. 하지만 과도한 욕심은 오히려 화를 부를 수 있다. 그게 바로 “기술의 늪”에 빠지는 길이다.
적당히 쉬운 기술을 잘 활용하는 것이 중요한 것 같다. 필요하면 내가 꼭 라이브러리를 구현하지 않아도 공개 라이브러리를 써도 되지 않는가? 일단 결과물이 얼마나 빨리 나오느냐가 중요하다. 그게 요즘같은 시대에는 더더욱이나 필요하지 않나 싶다. 개인을 상대로 하는 웹 혹은 앱이라면 한달안에 결과가 나오지 않으면 이미 승패가 갈렸다고 봐도 무방하지 않을까?
앞으로의 미래.
아이젝트 연구소라는 이름으로 처음으로 대외적으로 작품을 만들어 봤는데, 내가 이번에 작업을 하면서 가장 크게 느낀 점은 그렇다. 여지껏 개발을 하며 JSP+ORACLE 라는 내 개인적인 웹(서버)플렛폼과 FLEX/HTML5/jquery 라는 클라이언트 기술, 그리고 보통 이상의 포토샵/UX/UI 디자인 스킬, 그리고 기획력. 이게 내가 갖춰야할 것들이라 생각하는데, 혼자서 이 모든 것을 다 개발하기 위해서는 꾸준한 실력 증진이 필요하다. 특히 자바와 서블릿, FLEX에 대한 기본기가 내게 너무 부족했다. 너무 늦게 시작해서일까? 너무 늦게 프로그래밍에 눈떳다고 해야 할까. 너무 자만하고 살아왔다는 느낌도 든다. 무엇보다 내가 공부해야 할 것들이 많고, 그런게 많다는 것 자체가 내겐 흥분되고 중요하게 다가온다는 점이다!
그래서 이제는 모바일 웹에 우선 집중할 것이다. flex로 개발된 다니길 프로젝트를 페이스북으로 컨버팅 하고, 나아가 모바일 버전까지만 만들겠다. 하지만 혼자서 이 모든 것을 개발한다는 자체는 어떻게 보면 바보같은 생각이다. 예전에 마하반야님과 얘기를 잠깐 나누면서 “혼자서 모든 것을 하겠다는 것은 개발자 자신이 몸값을 낮추는 행위이다.” 라는 말씀을 들었는데 내겐 크게 와닿아서 지금까지 개발을 하며 차근차근 내가 정말 마음으로 통할 수 있는 팀을 꾸리겠다는 생각을 하고 있다. 새로움을 창조하는 데에 두려워하지 않고, 일생을 함께할 수 있는 팀. (지금까지 그런 친구는 단 한명 있었다. ^^)
여하튼 이제는 기일에 시달리지 말고 나 자신과 기일을 약속하고 지킬 수 있도록, 그리고 다니길 이거 너무 높이가 큰데 minimize버전도 좀 만들고 Global Map사용도 좀 해봐야겠다. 아이젝트 연구소의 방향을 보다 더 정확하게 설계하고 나아갈 수 있도록 노력하자!