깊이와 넓이.
개발자들이 하는 고민중에 하나를 이야기 해 볼까 합니다.
물론 이 이야기는 그냥 사는 얘기 입니다. ^^
먼저 제가 밝이는 저의 이력들이 자랑할려고 하는게 아니라는 것을 오래되신 분들은 아실겁니다.
젊을때는 나이자랑 하지만 나이가 먹을수록 나이가 부끄러워 진다는 것을요.
그 이유를 생각해 보니 ..
'벼는 읽을수록 고개를 숙인다?' 이런건 개뿔도 아니구요. ^^
점점 챙피해 지는거죠.
나이먹고 경력이 쌓여도 젊은사람 보다 못한 자신을 보면서..
점점 공부 안하고 노력안하면서 이미 안 것들로 먹고 사는 자신을 보면서요.
저와 같은 스타일을 걸어 오신분들 많으실지 모르겠지만 저는 이런 스타일 이었습니다.
현재 프리할려고 들고다니는 이력서를 보면 돈받고 일한 크고작은 플젝이 43개 이구요.
프리들은 이력서에 거품 잔뜩 넣어서 승부봐야 한다는거 아시죠?? ^^
거기에 경험했다고 기술한게 아래와 같은 것들입니다.
---------------------------------------------------------------------------------
* 서버 및 Was 개발환경
- Linux, Unix, Sun, HP, Aix, IBM, Solaris, WinNt, IIS, Apache, Netscafe, WebTob, Jeus, Tomcat, Resin, Websphere, Weblogic
* 개발 언어
- Java, Objective-C(Mac), Servlet, Applet, JSP, PHP, ASP, Shell, Perl, PL/SQL, Procedure
* DB 환경
- Oracle, MySQL, PgSql, MsSQL, DB2, SyBase,
* 프레임웍, 미들웨어, Xinternet
- Miplatform, Anyframe, IBsheet, EJB, Tuxedo, CICS, JGarnet, Struts, Spring, Pear, Mdb, Prototype, Jquery
* 서버 구축 및 운용
- Named, Apache, FTP(ProFtp, VsFtp), Samba, Sendmail, Pop3, IMAP, NFS, IRC, CVS, SSH, Rsync 등
* 개발툴, 모델링, 형상관리
- ErWin, EditPlus, Xcode(Mac), Toad, Crt, Vi, Eclipse, Gauce, CBD방법론, UML, Together, CVS, SVN, Flex Builder
* 웹디자인 학원 강의 및 홈페이지 제작
- PhotoShop, Namo, Dreamweaver, Flash, 3D Max, Illustrator, Director, AutoCAD
---------------------------------------------------------------------------------
참고로 이런 다양성을 추구하게 된 계기는 자세히 생각해 보니까 저의 욕구였던거 같습니다.
일종의 자존심 이었을 수도 있고 ,
늘 새로운 것을 해 보고 싶었죠.
그러다 보니 한가지만 지루하게 해야 되는 정규직이 어느순간 싫었고 프리를 10년 넘게 계속 하게 된 계기도 되구요.
웹디자인 배우다가 98년 부터 전산과 다니면서
리눅스 서버 셋팅하고 cgi 공부한다고 perl, c 로 게시판, 메모장, 방명록 이런거 짜다가
본격적으로 취업해서 php, mysql 로 시작했죠.
각종 서버셋팅에 개발에 디자인(?) 에.. ...
아시겠지만 그때는 중소업체들 프로젝트는 개발자들이 A부터 Z 까지 모두 했었죠.
그러다가 윈도우 환경을 접하면서 asp, mssql 을 하게 ?구요.
지금 생각해 보면 php 만 할줄 아는 저에 비해 asp 를 하는 대리가 부러웠구요.
언젠가는 나도 꼭 도전하리라 마음 먹어서 기어코 한거 같네요.
그래서 저의 과거를 보면 프로젝트 하며서 언어를 처음 접한게 많습니다.
리스크를 감수하면서 밤새면서 , 공부하면서 일을 한거죠.
php -> asp -> jsp -> java -> Applet -> Miplatform -> Object-c
php 빼고는 학원에서 배운건 없이 프로젝트 시작하면서 배웠죠.
사실 지금도 이런 경우가 많습니다.
지금도 자바 안드로이드를 배워보고 싶다..
그러면 단가 낮추고 서라도 아는사람 소개받아서 안드로이드 프로젝트를 시작하는거죠.
책 몇권 사서 밤새가면서 공부하구요.
어쨌든 이건 제 스타일 이었구요.
그러면서 깊이에 대한 고민을 문득 하게 됩니다.
내가 한 가지를 얼마나 깊이 있게 알고 있을까?
그리고 프로젝트를 하다가 한가지만 깊게 알고 있는 동료들을 보면 내심 자격지심이 생기기도 하구요.
하지만 저도 잡다하게 하면서 조금 깨달은 것이 있습니다.
모든 언어는 똑같다는 거죠.
이게 논란의 소지가 있을수 있겠지만..
구조는 같다고 생각합니다.
아무리 신봉하는 언어라고 쳐도..
변수선언, 조건문, 반복문, 배열, 파일처리, DB 처리, TCP/IP 네트워크
이 범위를 벗어 나지 않는다는 거죠.
초급때는
내가 하는 언어를 자랑스럽게 여기거나
내가 못하는 언어를 시기하거나 무시하는 경향이 있었죠.
하지만 막상 그걸 해 보면 별거 아니더라는 겁니다.
mysql 만 하던 시절 oracle 하던 사람들 보면 ..
오라클은 특별하고 고급스러운 DB 일거라고 생각한 적이 있었고..
java 를 모르는 시절에는 php, asp 에 비해 몸값도 높고 객체지향 개발하는 개발자들 보면
많이 부러웠었죠.
또한
2년전까지만 해도 아이폰 어플 보면서 ios 가 부러웠습니다.
맥으로 코딩하는 사람들 보면 신비하기도 했죠.
하지만 막상 해보면 언어는 저 위의 패턴을 절대 벗어나지 않더군요.
적어도 아직까지는 말이죠.
물론 ios sdk 환경은 참 잘되어 있습니다.
다시 깊이 이야기를 해 보자면..
제가 지금 부러운건..
미국 할아버지 개발자들이 쓴 빨간책 있죠?
무슨 무슨 레퍼런스 인가요?
엄청 두꺼운..
저도 그런 개발자가 되고 싶은 생각이 있습니다.
얼마전 kenu 님이 올려주신 글을 보다 보니까
우리나라에는 technical career path 없다는 단어가 눈에 띄더군요.
쉽게 말하면 엔지니어로서 년봉 1억, 2억 받을수 있는 사회적인 구조가 없다는 이야기기 아닐까 합니다.
프리랜서 하면 어거지로 월 600 정도까지 벌겠지만..
딱 거기까지 라는 거죠.
저도 그 이상을 벌어 볼려고 요즘 짱돌을 굴려 보지만..
답이 별로 안 나옵니다.
물론 DB 쪽이나 컨설팅 등 고액연봉의 몇가지 길이 있긴 하지만
대중적이지 않고 수요가 많지 않다는 단점도 있구요.
하지만 우리가 바라는건 개발+코딩 만 해서
경력이 오래되면 년봉 1억을 받을수 있는 구조를 원하는 거잖아요?
'이분은 java 개발 경력이 20년인데 연봉이 1억5천 입니다.'
뭐 이런 분위기요.
쉽게 말하면 C 나 자바나 Object-c, 또는 PL/SQL 만 20년 팠더니 연봉이 1억이 넘더라..
미국은 이런 구조가 되나요?
사실 저도 말만 들었지 직접 보지는 못해서요.
주제로 돌아 오자면..
여러분들은 깊이 VS 넓이
어느것을 더 선호 하나요?