2008. 12. 23. 17:05

어째서 위험한 줄타기인가? 어떤 상황들이 있는가?

강남에 삼성그룹이 신사옥을 지었다고 해서 놀러갔다 왔습니다.
정말 잘 지어 놨더군요. 가운데 덩그라니 알박기 한듯한 건물도 볼만했고~ ^^;
각설하고 어제 했던 이야기에 덧글도 많이 달리고 답글로 올라왔으니,
좀 딴 길로 새는 듯 하지만 의문을 적으셨길래 재답변 들어갑니다.
태클 걸려는 글은 아닙니다. 나름 IT에서 굴러먹은 이야기를 좀 해보려구요.

IT 분야 중에서 소프트웨어 개발 분야는 짧은 시간에 많은 발전이 이루어져 왔습니다.
하드웨어 분야 못지 않게 말이죠. 그런데 문제는 좀처럼 체계가 잡히고 있지 않고 있다는 것이죠.

자바나 C 같은 언어적인 기본 도구들은 거의 틀이 잡혀서 혼란이 덜하지만, 그외의 개발 도구들은
너무 많은 선택의 여지가 있습니다. 프레임워크, 소스 버전 관리, 컴파일러, 통합 개발환경, 미들웨어 서버,
통신 프로토콜, 보안 관련 표준도 다양하고...

SI 분야에 계신 분도 있고, 혹은 솔루션 분야에서 일하시는 분도 있고, 스스로 도구를 선택할 수 있는
자리에 있는 사람도 있고, 선임자가 정한 것들을 무조건 사용해야 하는 사람도 있습니다.

제가 하고 싶은 얘기는 닥치고 열심히 노력하는 걸 미덕으로 생각하지 말자는 것입니다.
무엇이 좋은가? 어떤 트렌드가 있는가? 과연 지금 사용하고 있는 도구가 최선의 선택인가에 대해서
비판적으로 바라보는 자세가 필요하다고 봅니다.

30대, 40대, 그리고 50대까지 IT에서 살아남으려면 그저 열심히 하는 것만으로는 부족하다고 생각합니다.
10년 전에 사용하던 유용한 툴, 혹은 유명한 툴 중에서 여전히 쓸만한 것들은 많지 않습니다.
자칫 유행만 쫒다가, 어느새 과거에 유명하던 개발자라는 말을 듣게 되지는 않을까?
그런 사람들을 많이 보아 왔고, 또 보게 될 것이기 때문에
개발자 자신의 포지션(position), 그리고 각자가 사용하는 도구에 대한 차분한 고민도 필요하지 않을까요?

또, 독학을 하더라도 올바른 길을 가고 있는지 계속 살펴볼 필요가 있습니다.

UML이 뜬다고 해서 다들 열심히 UML을 공부해야 한다고 난리가 난적이 있습니다.
EJB를 하면 최고로 인정 받을 수 있다고 해서 다들 EJB에 심취한 적도 있습니다.
닷넷이 나왔을 때, 마이크로소프트 소속 에반젤리스트들의 설레발은 지금도 눈 앞에 선합니다.
ERP가 한참 유행한 적도 있고, 작년과 올해에는 Flex라는 툴이 나와서 아도브에서 열심히
홍보하기도 했죠. 뭐만 열심히 하면 남들보다 2배 벌 수 있다. 참 지겹게 듣는 이야기 입니다.

그런데, 자바는 또 얼마나 살아남을 수 있을까요? Spring 이것 또한 한 때의 유행이 되는 건 아닐까요?

저는 자바를 좋아합니다. 스프링도 꽤 괜찮은 프레임워크라고 생각합니다.
스트럿츠도 사용하고, EJB도 사용해 봤고, 데이터베이스도 여러가지 써봤습니다.
독학과 삽질 분야에 대해서는 자격증을 국가에서 내준다면
삽질만 아는 대통령께 표창 받을 수 있다고 생각합니다. ^^;

그런데 말이죠. 제가 해본 여러가지 일 중에서 솔직히 말하자면 자바, 스프링, 데이터베이스 이런 기술
들이 차지하는 비중은 그리 크지 않습니다. 도구는 도구일 뿐이라는 것이죠.

스프링 스터디 블로그에서 왜 이런 말을 하냐구요?
스프링 프레임워크 자체를 목적으로 보지는 말자는 것입니다.
왜 스프링 프레임워크를 사용하고, 이것을 사용함으로써 어떤 부가가치를 창출할 수 있는가?
컨설턴트들만이 그런 얘기를 해야 하고, 할 수 있는 건 아니라고 봅니다.

우리가 프로 개발자라면 말이죠. 왜 나를 써야 하는가? 왜 내가 많은 연봉을 받을 가치가 있는가?
스프링 프레임워크를 아는 개발자를 고용함으로써 어떤 이익을 기대할 수 있는가...
이런 이야기를 면접에서 얘기할 수 있는 개발자가 되어야 한다고 생각합니다.
개발자는 자신의 능력을 파는 사람이니까요~

줄타기에 대한 이야기를 말씀 드리겠습니다.
취향의 문제라고 말씀하시는 건 솔직히 말해서 좀 아마추어적이라고 생각합니다.
기분 나쁘시다면 먼저 사과의 말씀을 드려야 할 것 같네요. 비난하려는 건 아닙니다.
소프트웨어 개발을 한다는 것이 자기 좋아서 하는 일이라는 측면에서 보면
당연히 취향도 중요한 것이지만, 제가 하려던 얘기는 엄연히 프로라는 위치에서
보았을 때, 프로라면 어찌해야할  것인가 라는 이야기 입니다.
즉, 관점이 틀린 이야기가 되었다는 것이죠. 제 본래 의도에 대한 부연 설명을 드립니다.

개발자도 언젠가는 매니저가 됩니다. 적어도 우리나라에서는 말이죠.
그냥 개발자로 남는 상황에서도 선임 개발자라면 팀 내에서 어떤 프레임워크를 사용해야할 지
자기 주장을 내놓아야 합니다. 소프트웨어 개발을 개인의 취향에 맡겨 두던 시대는 지나갔으니까요.

그런데, 프레임워크를 사용하는 것, EJB를 사용할지 결정하는 것, 다양한 도구 중에 어떤 것을 표준으로
선택하는가 하는 문제는 그리 단순한 일이 아닙니다. 수십명 혹은 수백명이 일사분란하게 움직여야 하는데
표준화된 기술을 채택하지 않으면 엄청난 혼란을 초래하고, 그에 따른 기회비용 상실, 프로젝트 지연,
심지어 회사의 존폐 위험까지도 발생할 수 있습니다.

지금 시대에 프레임워크를 사용하지 않는 기업은 거의 없는 것 같습니다.
이건 선택의 문제가 아니라고 여겨집니다.
시간이 바로 비용인데, 프레임워크 따위는 없어도 된다는 사고로 작은 시스템을 개발했다가,
나중에 유지보수 비용이 겉잡을 수 없이 상승해서 결국 다시 개발하는 경우도 비일비재합니다.
작은 기업에서는 별 일이 아닌데, 나름 규모가 있는 기업에서는 큰 비용 상실이 발생합니다.

프레임워크를 사용하지 않고 자기 혼자 멋대로 시스템을 개발한다는 것도 위험한 생각이라고 생각합니다.
1인 기업을 꾸린다면 모를지만 말입니다.

람보 같은 개발자 많습니다. 이들도 위험합니다. 왜냐하면 혼자 장렬히 전사하면 다행인데,
람보 개발자가 열심히 개발하고 장렬히 전사하거나, 시스템을 다른 사람들에게 넘겨주고 퇴사해버리면
결국 남은 개발자들이 뒷감당을 못하고 몇 배의 비용을 들여서 재개발하는 경우를 봐 왔습니다.

참호 속의 개발자... 많이 있습니다. 수백명이 참여하는 대형 프로젝트에서 일하다 보면
매일 야근을 하고 있음에도 도무지 주어진 과제를 해결하지 못하고,
우물쭈물 하다고 결국 몸이 아프다는 핑계라거나, 집안 사정이라는 이유 등등의 핑계를 대고
회사를 그만두는 경우가 있습니다. 이들의 뒷감당 해야 하는 개발자들도 부지기수인데,
과연 프레임워크를 모르는 것이 취향 차이일 뿐이라고 치부할 수 있을런지 의문입니다.

이런 이야기들이 제 개인적인 경험에 기초한 것이고, 공감하지 않으실 분도 있겠지만...
또 많은 분들이 겪어본 일들입니다. 앞서 얘기했듯이 태클 걸려는 글이 아니라,
IT 분야의 어느 막장 달리 말해서 SI 현장이라는 곳의 이야기 였습니다.

참고하시라는 거죠~ 물론, SI에서 일하지 않으시겠다면... 프레임워크를 모르는 건 그저 취향일 뿐입니다.
너무 진지해지면 지는 겁니다... 후후~