코딩
Posted 2007. 5. 10. 22:25, Filed under: Study/Computer Science얼마전에 이승희 주임님이 부탁하셨던 프로그램
삽질도 많이 했지만 지나가다 한 마디씩 던져주시는 말을 붙들고 열심히
결국 완성!
내 자리에서 잘 돌아가던 프로그램이었고 몇 번이나 테스트 했으니까 나름 자신감은 있었지만
잘하는 사람한테 확인을 받아야하니 살짝 쫄아서 숙제 검사 받는 기분으로 가지고 갔다.
그런데 이승희 주임님 자리에서 돌리니까 온갖 에러가 다 나는 거다..
완죤 급당황해서 내 자리에선 잘 됐는데 왜 이러지 -_-;; 하면서 보니까
많은 원인이 있었다..
간단한 이유로 발생한 문제들이지만 그런만큼 발견하기도 쉽지 않았고 해결하면서 몇 번이나 왔다갔다해야했다. 그러면서 당연히 코드는 여기저기 if 문으로 누더기가 되어가고 ㅠ_-
내가 코딩하는 환경하고 테스트하는 환경이 그렇게나 차이나는 걸 알고나서 그냥 그 자리를 뺏어 앉아서 개발을 하고 싶었다 -_-
이런 이야기를 이상철 선임님께 했더니 원래 그런거라 하신다.
중간 중간에 요구사항을 주기적으로 확인해서 반영하지 않으면 막판에 완전 낭패보기 십상이라고..
다른 프로그래머가 나한테 부탁한 일인데도 이 정도라면 컴퓨터를 아예 모르는 고객이라면 날 잡아먹으려들지도 모른다는 생각이 들었다. 그리고 코딩이 결코 쉬운 일이 아닐꺼라는 생각이 팍팍 든다..
그래도 이번에 많은 걸 배울 수 있었다. 익숙지 않았던 많은 라이브러리들을 사용해 볼 수 있었고 개발 과정에서 혁민이가 만들어놓은 문자열 파서나 인터넷에서 구한 MD5 추출 루틴 등 다른 사람이 만들어놓은 모듈을 가져다 쓰기도 했다.
내가 만든 여러 프로시져를 클래스로 효과적으로 나누어 나중에 내 프로그램이 확장되기 쉽도록 객체지향 개념을 어설프게나마 적용해 본 것도 많은 도움이 되었다.
어느 정도 큰 규모의 프로그램을 보면서 구조도 익힐 수 있었고 디버깅을 하는 감도 조금 늘었지싶다.
무엇보다..
- 어떤 로직을 구현하는데 있어서 에러는 의외로 간단한 부분에서 난다는 것.
- 기본적인 예외 처리는 무조건 해주어야한다는 것 (예 : 파일 입출력 시 파일이 존재하는지 확인)
- 각 모듈 사이에서 처리가 끝난 정보를 넘겨줄 때 그것이 원하는 형태로 전달되는지 확인할 것.
- 특정 환경이나 조건을 임의로 가정하지 말고 일반적인 상황에서 코딩하고 테스트 할 것.
- 기본적인 예외 처리는 무조건 해주어야한다는 것 (예 : 파일 입출력 시 파일이 존재하는지 확인)
- 각 모듈 사이에서 처리가 끝난 정보를 넘겨줄 때 그것이 원하는 형태로 전달되는지 확인할 것.
- 특정 환경이나 조건을 임의로 가정하지 말고 일반적인 상황에서 코딩하고 테스트 할 것.
예전에 어디선가 이런 말을 봤었는데...
사용자는 결코 프로그램에 우호적이지 않다. 가능한 모든 문제를 일으키고
경고를 무시하고 프로그램을 자기 마음대로 사용할 것이다.
진짜 무섭다 ㅋ