오늘은 또 다른 모듈에서 네트워크 통신이 제대로 되지 않는다는 얘기를 듣고 같이 동행을 해 주었습니다. 클라이언트와 서버간의 통신이 제대로 되지 않는다는 것이었습니다. 결론적으로 코드 몇줄 끝내고 마무리를 지었습니다. 저는 네트워크 통신 프로그램 개발을 해 오면서 항상 스니핑을 기반으로 테스트를 하는 것이 몸에 베여 있기 때문에, 문제가 생기기만 하면 그냥 스니퍼 한번 돌려서 문제점을 쉽게 찾는 습관이 있습니다. 오늘 제가 도와준 부분도 스니퍼를 이용한다면 원인 분석에서부터 시작하여 해결까지 10분이면 쉽게 끝날 수 있는 문제점이었습니다. 그런데도 불구하고 테스트 환경이 외부에서의 접근이 힘들다는 이유로 분당(서버 관련 운영 업체) 및 인천 공항을 왔다리 갔다리 해서 해결을 했네요. 시간 낭비, 기름 낭비, 등등등...
문제는 약속되지 않은 몇바이트를 합쳐서 보내 버리는 클라이언트 부분에 있었습니다. 하지만 서버측에서도 그러한 예상치 않은 바이트를 수신했을 때 그 reason code를 제시할 수 있어야 하는데, 그 원인을 제시하지를 못하는 문제점이 존재하였습니다. 그래서 제가 서버 관련된 업체 미팅 참석자에게 "소스를 이렇게 고치면 향후 야기되어질 수 있는 문제점들에서 쉽게 오류 파악이 될 것이니까, 이런 형식으로 로그를 남겨 주시도록 수정해 주십시오."라고 얘기를 했습니다. 그런데 미팅 참석자가 프로그램 개발자가 아닌 운영자더라구요. 개발자와 직접 얘기를 하면 금방 끝날 일인데도 불구하고 "그렇게 하려면 또 개발자 불러야 하고, 이러쿵 저러쿵..." 참, 허허, 소귀에 경읽기만 하다 왔죠.
문제를 해결하고 나서 클라이언트 담당자에게 오류가 나는 부분을 얘기해 주고, 왜 그러한 현상이 야기되어질 수 밖에 없는지를 설명하려고 하였습니다. 그런데, 그때 '이 문제는 해결이 되었고 내일까지는 여기까지 구현을 해야 하니까 시간도 없고 정신도 없고 빨리 해야 한다' 라는는 일종의 조급함이 그 개발자에게 보였습니다.
오늘 작업의 결론은 소스 몇줄을 수정하는 것이겠지만, 그 소스 몇줄을 수정하기 위해서는 많은 기술과 노하우가 있어야만 합니다. 어딜 가서도 쉽게 들을 수 없는 관련된 정보를 알려 주려고 해도, 그 것은 그리 중요하지가 않은 분위기였습니다. 오로지 일정 맞추기에 급급한 모습만이 보였습니다.
안타까운 생각이 들더군요. 일정, 일정, 일정, ... , 무조건 되게 하라, 되기만 하면 된다... 프로젝트 구성원들은 해당 프로젝트를 하면서 새로운 지식이나 경험을 살리는데 주안점을 두기보다는, 그냥 정해진 그러면서도 빡빡한 일정내에서 어떻게 해서든지 일단 돌아가게끔만 하게 만들자는 생각으로 프로젝트가 진행되는 모습은 10년, 20년 전이나 지금이나 별반 달라진 부분이 없어 보였습니다.
일단 돌아가게끔 하는 것은 어렵지 않습니다. 하지만, 문서화의 부재, 스파게티 코드, 안정화되지 않은 모듈(뭐 어차피 돌아는 가겠지만...) 로 갈 것 같다는 우려가 들더군요. 작은 차이가 명품을 만든다고 했나요? 예상치 않은 만은 네트워크 트러블에 대처할 수 있는 안정적인 모듈을 만다는 것은 결코 짧은 시간안에 이루어질 수 없습니다. 오랫동안 네트워크 관련된 일을 한 전문가라 하더라고 많은 고민을 해야 하는게 네트워크 프로그래밍입니다. 그런데 해당 모듈을 며칠안에 구현을 해야 한다는 현실에서는... 참, 안타깝더군요.
일정, 일정, 일정, ... , 무조건 되게 하라, 되기만 하면 된다...
정말 공감가는 글 입니다.
구한말 서양사람들이 들어와 우리나라 생활방식을 보고, 느긋하고 천천히
일처리를 한다고 하였다고 하더군요. 그런데 공화국으로 넘어오면서
급속한 경재 개발이 이루어지고, 아직까지 그 동안 유지해온 페이스를 그대로 가져
가고 있는거 같습니다. 이제는 크게 숨한번 쉬고, 다른걸 챙겨야 할 시기인데, 그걸 '갑' 사람들은 어떻게 느끼는건지 모르겠습니다.