요즘 네트워크 문제점을 컨설팅해 주는 프로젝트를 진행하고 있습니다. 뭐, 말이 좋아서 컨설팅이지, 그냥 네트워크상으로 stress test를 주었을 때 프로그램 뻑이 나는 부분을 찾아서 테스트를 하고 있고, 일부 소스에 대해서는 이렇게 저렇게 수정을 하는 것이 바람직하다 정도를 말해 주고 있는 정도입니다. 제가 직접 코딩하지는 않고, 다만 프로그램이 뻑가게  네트워크를 어리버리하게 만들어 주죠. ㅎ


오늘은 또 다른 모듈에서 네트워크 통신이 제대로 되지 않는다는 얘기를 듣고 같이 동행을 해 주었습니다. 클라이언트와 서버간의 통신이 제대로 되지 않는다는 것이었습니다. 결론적으로 코드 몇줄 끝내고 마무리를 지었습니다. 저는 네트워크 통신 프로그램 개발을 해 오면서 항상 스니핑을 기반으로 테스트를 하는 것이 몸에 베여 있기 때문에, 문제가 생기기만 하면 그냥 스니퍼 한번 돌려서 문제점을 쉽게 찾는 습관이 있습니다. 오늘 제가 도와준 부분도 스니퍼를 이용한다면 원인 분석에서부터 시작하여 해결까지 10분이면 쉽게 끝날 수 있는 문제점이었습니다. 그런데도 불구하고 테스트 환경이 외부에서의 접근이 힘들다는 이유로 분당(서버 관련 운영 업체) 및 인천 공항을 왔다리 갔다리 해서 해결을 했네요. 시간 낭비, 기름 낭비, 등등등...


문제는 약속되지 않은 몇바이트를 합쳐서 보내 버리는 클라이언트 부분에 있었습니다. 하지만 서버측에서도 그러한 예상치 않은 바이트를 수신했을 때 그 reason code를 제시할 수 있어야 하는데, 그 원인을 제시하지를 못하는 문제점이 존재하였습니다. 그래서 제가 서버 관련된 업체 미팅 참석자에게 "소스를 이렇게 고치면 향후 야기되어질 수 있는 문제점들에서 쉽게 오류 파악이 될 것이니까, 이런 형식으로 로그를 남겨 주시도록 수정해 주십시오."라고 얘기를 했습니다. 그런데 미팅 참석자가 프로그램 개발자가 아닌 운영자더라구요. 개발자와 직접 얘기를 하면 금방 끝날 일인데도 불구하고 "그렇게 하려면 또 개발자 불러야 하고, 이러쿵 저러쿵..." 참, 허허, 소귀에 경읽기만 하다 왔죠.


문제를 해결하고 나서 클라이언트 담당자에게 오류가 나는 부분을 얘기해 주고, 왜 그러한 현상이 야기되어질 수 밖에 없는지를 설명하려고 하였습니다. 그런데, 그때 '이 문제는 해결이 되었고 내일까지는 여기까지 구현을 해야 하니까 시간도 없고 정신도 없고 빨리 해야 한다' 라는는 일종의 조급함이 그 개발자에게 보였습니다.


오늘 작업의 결론은 소스 몇줄을 수정하는 것이겠지만, 그 소스 몇줄을 수정하기 위해서는 많은 기술과 노하우가 있어야만 합니다. 어딜 가서도 쉽게 들을 수 없는 관련된 정보를 알려 주려고 해도, 그 것은 그리 중요하지가 않은 분위기였습니다. 오로지 일정 맞추기에 급급한 모습만이 보였습니다.


안타까운 생각이 들더군요. 일정, 일정, 일정, ... , 무조건 되게 하라, 되기만 하면 된다... 프로젝트 구성원들은 해당 프로젝트를 하면서 새로운 지식이나 경험을 살리는데 주안점을 두기보다는, 그냥 정해진 그러면서도 빡빡한 일정내에서 어떻게 해서든지 일단 돌아가게끔만 하게 만들자는 생각으로 프로젝트가 진행되는 모습은 10년, 20년 전이나 지금이나 별반 달라진 부분이 없어 보였습니다.


일단 돌아가게끔 하는 것은 어렵지 않습니다. 하지만, 문서화의 부재, 스파게티 코드, 안정화되지 않은 모듈(뭐 어차피 돌아는 가겠지만...) 로 갈 것 같다는 우려가 들더군요. 작은 차이가 명품을 만든다고 했나요? 예상치 않은 만은 네트워크 트러블에 대처할 수 있는 안정적인 모듈을 만다는 것은 결코 짧은 시간안에 이루어질 수 없습니다. 오랫동안 네트워크 관련된 일을 한 전문가라 하더라고 많은 고민을 해야 하는게 네트워크 프로그래밍입니다. 그런데 해당 모듈을 며칠안에 구현을 해야 한다는 현실에서는... 참, 안타깝더군요.


일정, 일정, 일정, ... , 무조건 되게 하라, 되기만 하면 된다... 


오늘 일을 겪으면서 저는 다른 생각을 해 보았습니다. 왜 국내 SW 산업이 발전하기가 힘든가?

한국인들의 개개인의 능력들은 뛰어납니다. 고등 교육을 받는 사람들고 많고, 실제로 똑똑한 사람들도 많고, 민족성이 부지런하기도 하구요. 하지만 가장 큰 문제점중의 하나는 오늘의 일에서 볼 수 있듯이 자신만이 노하우을 쌓을 수 있는 시간적, 정신적 여유를 개발자 개개인들에게 주지 않는다는 것입니다. 아마추어가 기술을 연마하고 경험을 쌓으면 프로가 되고 전문가로 발전을 해야 하는데 프로가 될 무렵이 되기만 하면 다른 분야에 involve되어 그간의 많은 경험의 많은 부분들이 말짱 도루묵이 되는 거죠. 20대 초반의 신입 개발자와 오랜 경력의 개발자와 별반 다른 점이 없는 똑같은 레벨일 수 밖에 없으니, 나이 먹고 직종 전환을 할 수 밖에 없고... 특히나 SI 분야가 더욱더 그러하죠.

"빨리빨리"라는 한국 정서의 문화에서는 IT는 결코 올바른 길로 갈 수는 없습니다. 개개인의 노력만으로도 자연스럽게 Professional로 발전해 갈 수 있는 IT 산업의 분위기가 언젠가는 자연스럽게 조성되었으면 하는 바램입니다.