본문 바로가기
이전글/2008

경험으로 기술의 가치를 단정짓기

by 물개선생 2008. 10. 22.
최근 하나포스에서 연재중인 황성 작가의 태극검제란 만화를 보면, 유래가 없을 정도로 터무니 없이 강한 무림의 최고수를 이기기 위해, 태극문에 들어가 무예 수련을 하는 청풍이란 청년이 주인공으로 등장한다. 그런데, 태극문에 들어간 청풍이 배우고, 익히고, 실전을 통해 갈고 닦는 무공들은 무림에 관심을 둔 사람이라면 누구나 익히 알고 있는 기본적인 것들이다. 그는 결국 그 무공들을 극한까지 갈고 닦아 무림 최고수와 일전을 벌인다. 아직 승패가 결정나진 않았지만.. (다음 연재가 기다려지네.. 쩝)

후배들과 이야기를 나누다보면 진정한 개발의 고수, 혹은 아키텍트와 같은 경지에 도달하기 위해 무엇을 익혀야 하는지에 대한 질문을 받게 되는 경우가 있다. 그럴 때면 나 역시 그 목표를 향해 나아가고 있는 입장이라, 선뜻 어떤 답변을 꺼내기 힘들다. 하지만, 최소한 기본이 되는 지식들은 몇 가지 알고 있다. 객체 지향적인 설계 원칙, 디자인 패턴, 리팩토링, 다양한 개발 방법론, 테스트 주도 개발, 등등.. 몇 가지가 아니라 대충 훓어만 봐도 여러 가지 단어들이 금방 떠올려진다. 그래서 그런 것들을 익히고, 내것으로 만들어야 하지 않겠어? 라고 말한다. 완전히 내것이 되기 까지 계속해서 갈고 닦아야 할 기술들이라고..

그런 이야기를 건네다 보면 반응은 대부분 2가지로 나뉜다.

한쪽는 그 정도는 이미 다 알고 있는 것(?)이라며, 그런 것 말고 뭔가 감추고 있는 비법을 털어놓으라고 다그친다. 한편에서는 이미 실무에서 적용 해봤는데 별 효과도 없고 사실상 적용이 불가능(?)하다라고 말하며, 당신은 실무의 어려움, 현실을 모른다고 말한다. 섣부른 이상주의자 취급을 하는 것이다.

과연 그런가? 뭔가 새롭고, 더 나은 해결책을 제시하는 그 무엇을 알려준다면, 정말로 우리가 겪고 있는 수 많은 문제들이 해결될까?

"리드하거나, 따르거나.. 혹은 꺼지거나.. "

몇 년 전 인간 극장에서 해외 중견 업체의 모 CEO가 사훈으로 걸어놓은 말이다. 아쉽게도 난 아직 새로운 해결책을 제시할 만큼의 경륜과 능력을 갖추진 못했다. 그렇다고 이 바닥을 벗어나 새로운 도전을 해볼 생각도 없다. 현재까지는 내가 하고 있는 이 일이 힘들지만 보람되고, 즐겁기 때문이다. 그럼 유일한 한 가지 방법은 따르는 것이다.

Grady가 Kent가 Martin이... 그 대가들이 수 많은 경험을 통해 우리에게 전달해준 지식을 옳다고 믿고, 죽을 힘을 다해 실천하는 것. 그것이 내가 현재의 능력으로 할 수 있는 유일한 것이다. 유행에 따라 바뀌는 요소 기술에 의지하기 보다는, 순도 높은 경험이 쌓여갈 수록 위력을 발휘하며 흔들리지 않는 핵심적인 기술들.. 소프트웨어 공학이라고 이름 붙여진 성전들을 녹여낸 경험을 최대한 쌓아가며 발전시켜 가는 수 밖에 없다.

안타깝게도 나는 가장 기본이라 할 수 있는 함수 설계와 데이터 모델링 마저 100% 완벽하다고 자신할 수 없다. 하물며, 객체 지향적 설계? 테스트? 개발 프로세스? CBD?.. 심지어 SOA? 조금 더 넓게 생각하기 시작하면, 갖고 있던 것이 그만큼 조금 더 깊어지는 세월이 십 몇 년이 지났지만, 아직 바닥에 닿은 것이 단 하나도 없다는 것이 부끄러울 뿐이다.

그래서, 잠시 잠깐 남의 힘을 빌어 따라 경험해본 것으로 그 기술을 폄하하는 사람을 만나 대화하는 것이 무척 불쾌하다. CNP 패턴, 아니.. 복사 붙이기 신공이라고 해야 하나? 하나의 클래스 안에 다 있으면, 수정하기도 좋고.. 복사 붙이기 하면 에러 없는 코드도 공짜로 얻어지는데, 객체 지향이니 뭐니 해서 조각 조각 쪼개놓아서 짜증난다는 사람들과의 대화는 힘들다. 테스트? 그거 뭐 개발 다 끝나고 마지막에 통합 테스트할때 한번 하면 될 걸 뭐 하러 그렇게 열심히 해야 하냐고 묻는 사름들과의 대화도 힘들다. 한번도 해보지 않은 XP의 다양한 실천 기법들을, 인터넷 게시판에서 떠도는 몇 마디 말로 대형 SI에서 사용할 수 없는 것들로 폄하하는 사람들과의 대화도 힘들다. 안타깝게도 주변에는 함께 어울려 서로를 자극하는 동료보다, 힘을 쭉~ 빼놓는 몇 마디를 아무렇지도 않게 툭툭 던지는 이해 관계자들이 더욱 더 많다.

테크데이에 참석해 최신 기술 동향을 파악하는 것.. 물론 필요하다. 더 나은 도구, 더 나은 방법론, 더 나은 언어를 찾아 해메는 것도 나쁘지 않은 시도다. 하지만, 지금이라도 알고 있다고 착각하고 있던 것들, 실제로 적용하기는 무리라고 생각했던 기술들을 한번 돌아보자. 혹시 모르지 않는가? 잘 갈고 닦다 보면, 단순한 흙 덩어리라고 생각했던 그것들이, 반짝 반짝 빛나는 보석일 수도 있다. 현실에 존재하는 모순적인 부조리들과 맞서 싸줄 소중한 무기가 되어줄 수도 있고.. 말이다.