프로그래머 10계명
프로그래머 10계명
도스시절 한글라이브러리인 한라 프로를 만드신 임인건님께서 쓰신 글입니다.
프로그래밍을 공부하시는 분들께 큰 도움이 되리라 생각합니다.
시작부터 경지에 이르기까지…
1. 정보를 모음에 소홀히 하지 말고 설명서를 읽음에 게을리 하지 말지어
다. 오늘 필요 없는 정보는 내일 필요하리라. 가장 가치 있고도 저렴한
지식은 책 속에 있느니라. 서점과 동료의 책꽂이에 무엇이 꽂혀 있는지
때때로 살피어라. 무심코 흘렸던 종이 한 장이 너의 근심을 풀어 주었
으리라. 설명서는 충분히, 꼼꼼히 읽을지어다. 모든 의문은 설명서를
안 보는 데서 생기니라. 그렇더라도 모두 다 읽을 필요는 없느니라.
2. 너의 PC가 안전하다고 믿지 말지어다. 5분 후에 정전이 되고 내일 너의
하드가 맛이 가리라. 그러하니 너의 소중한 소스 코드는 정기적으로 여
러 군데에 단계별로 백업해 두어라.
3. 변하는 수를 다룰 때에는 늘 조심할지어다. 정수가 절대로 그 한계를
넘지 않으리라 가정하는 것은 어리석음이라. 127, -128, 255, 32767,
-32768, 65535, 이 숫자들을 너의 골수에 새기어라. 0.0은 0이 아니니
실수는 원래부터 결코 정밀하지 않느니라. 부호 없는 것과 있는 것을
어울리거나 정수끼리 나눌 때에는 늘 조심하여라.
4. 무슨 일을 반복시킬 때에는 처음과 끝에 유의할지어다. 너의 컴퓨터는
1보다는 0을 좋아 하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈
때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너
의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.
5. 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다. 절대로 일
어나지 않을 일은 반드시 일어나고, 가장 드물게 일어날 일이 가장 너
를괴롭히리라. 그러하니 언제나 논리에 구멍이 없는지 꼼꼼히 따져 보
고, if를 쓸 때에는 else부터 생각하라.
6. 함수 안에서 매개 변수값은 결코 믿지 말지어다. 지금 그 매개 변수가
결코 가질 수 없다는 값을 내일부터는 가지리라. 그러하니 매개 변수값
이 올바름을 항상 검사할지어다. 그렇더라도 처리 속도가 문제가 되는
경우는 예외이니라.
7. 오류를 알려 주는 기능은 있는 대로 모두 활용할지어다. 컴파일러의 경
고는 모두 켜 두어라. 경고는 곧 오류이니라. 오류를 알리는 함수의 결
과를 확인하지 않는 우를 범하지 말지어다. 모든 파일 입출력과 모든
메모리 할당은 조만간 실패할 것이라.
8. 한 번의 수정과 재컴파일만으로 연관된 모든 것이 저절로, 강제로 바뀌
도록 할지어다. 어떠한 것을 수정했을 때에 연관된 것이 따라서 변하지
않는다면 그것이 곧 벌레이니라. 컴파일러로 하여금 매개 변수 리스트
를 완전하게 검사하도록 하고, 언젠가 손대야 하거나 따라서 변해야 하
는 수치는 전부 매크로로 치환하며, 형 정의를 적극 활용하여라.
9. 사용자가 알아서 잘 써 주리라고 희망하지 말지어다. 너의 프로그램은
항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨
리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.
10.매사에 겸손하고 항상 남을 생각할지어다. 가장 완벽한 프로그램일수록
가장 완벽하게 숨은 벌레가 있느니라. 네가 이 세상 최고의 프로그래머
라고 떠들며 자만할 때, 옆집 곳간에서는 훨씬 더 뛰어난 것을 묵묵히
만들고 있느니라. 아무렴 프로그래밍은 혼자 잘나서 할 게 아니니, 너
로 인해 다른 사람들도 더불어 잘 되면 그얼마나 좋은 것이냐.
이 모든 것을 깨닫고 지키려 애쓰는 자는, 있어도 없어도 되어도 아니
되어도 늘 평온하리라.있나니 너희는 모든 프로그램에 대해서 위의 프로시줘를 따를 지니라.