출처: 월간 마이크로소프트웨어 2월호(www.zdnet.co.kr)
유경상 ksyu@tysystems.com
안녕하세요.. 타락임다..^^
마소지 특집을 보구 웃다가 가슴에 닫는 구절이 있어 적슴미다..^^
-------------------------------------------------------------------------------
프로그램을 작성해본 사람이라면 누구나 소스 코드에 주석(Comment)을 다는 것이 좋은 습관이라는 것을 알고 있다. 필자가 아는 K 프로그래머는 프로젝트 진행 중에 한 모듈의 코드를 보고 "누가 이렇게 작성했냐"며 길길이 날뛴 적이 있다고 한다. 그 코드는 너무 복잡했기 때문에 유지 보수가 어렵다는 것이었다. 하지만 팀원 누구도 그 코드를 작성하지 않았다. 자세히 코드를 살펴본 결과 그 코드의 작성자는 다름 아닌 K 씨 자신이었다. 그리고 그는 그렇게 복잡하게 코딩하지 않으면 안 되었던 이유를 겨우 생각해 냈다. 왜 그런 식으로 코딩했는지 몇 줄의 주석만 달아 놨더라도 아마 이런 해프닝은 발생하지 않았을 것이다.
자기가 작성한 코드라도 몇 개월이 지나면 기억하기 힘들다. 특히 대형 프로젝트일수록 이러한 상황이 심하다. 필자가 리눅스 커널의 TCP/IP 시스템 코드를 수정할 때였다. 그 때 커널 버젼은 1.0.8이었지만 여전히 거대한 분량의 커널 코드는 필자를 압도하고도 남았다. 논문은 고속의 데이터 전송을 위한 운영체제 레벨의 지원에 대한 것이었는데, 커널의 디바이스 드라이버를 수정해야 했다. 드라이버를 수정해 원하는 속도 향상을 얻었다. 그리고 두 달 후, 관련 논문을 작성하다가 드라이버 코드를 참고해야 할 상황이 왔다. 하지만 코드를 아무리 살펴봐도 정말 '무식한' 방법으로 코딩이 돼 있었다. 아무리 생각해도 왜 내가 그렇게 코딩했는지 생각이 나지 않았다. 그래서 좀더 효율적인 코드로 바꿔보았다. 수정한 코드는 제대로 작동하지 않았고 그때서야 왜 그렇게 무식한 방법을 사용했었는지 이유가 떠올랐다. 이 경우도 비슷하게 몇 줄의 주석만 있었다면 이런 고생은 안 했을 것이다.
그 이후로 필자는 코드에 주석을 다는 습관 을 들였다. 그리고 추가적으로 코드를 메모장처럼 사용하는 습관도 들였다. 대부분의 프로그래머는 많은 시간을 소스 코드와 함께 보낸다. 따라서 코딩과 관련된 사항을 종이나 다른 파일 등에 기록하는 것보다 소스 코드에 기록해 두는 것이 매우 효율적이다. 다음에 작업할 내용이나 다른 코드가 완성된 후에 수정해야 할 사항. 하드 코드(hard ocde)된 내용 등을 소스 코드 내에 주석으로 남겨두는 것이다. 그리고 차후 작업할 때 이 주석을 보면 앞으로 해야 할 내용, 수정해야 할 내용 등이 설명과 함께 남게 될 것이다. 다음은 필자가 소스 코드에 사용한 몇몇 주석을 예로 들어본 것이다.
1. // FIXME : 테스트 후 잘 작동하면 삭제할 것!
2. // FIXME : 다음 멤버 변수를 private로 바꿀것!
3. // CONSIDER : 여기서 예외를 발생하는 것이 합당할까?
4. // HARD CODE : 보다 간단히 하기 위해 아스키 코드를 하드 코드함
이렇게 작성된 주석들을 탐색기의 검색 기능이나 대부분의 에디터가 제공하는 검색을 통해 키워드(FIXME, CONSIDER 등)를 찾으면 소스 코드에서 어떤 작업을 더 해야 하는지가 명백히 드러난다. 소스 코드는 다른 어떤 것 보다 훌룡한 개발 일지이자 메모장이다.
---------------------------------------------------------------------------------
저두 필자와 같은 경험이 있어서 웃음이 나왔습니다. 그리고 필자의 의견에 공감합니다. 예로 든 1 번 주석은 오타로 여겨지는데 어떤 단어일지 짐작이 안갑니다.
즐푸하세여..^^
타락천사...
|