설계 및 구현을 하다보면, 모든 예외처리가 되어야하지만, 논리적으로 안전한 것에 대해서는 처리하지 않는 상황을 만나게 된다.

즉, 방문은 잠그지 않고 자도 현관문이 열리지만 않는다는 가정만 확실하면 방문을 잠그지 않아서 발생하게 되는 도난사고 같은 예외상황은 고려대상이 아니라것이다. 프로그램도 외부에서 흘러오는 데이터가 어떤 확인 절차를 거치고, 어떤 가공이 일어나는지를 모두 알 수 있다면(또, 그래야하고) 예외를 확인하고 처리해야할 곳이 어디인지 확실하게 된다.

현관문에서 확인한 사람을 방문에서도 한 번 더 확인하는 것이 잘 되어 있는지, 잘못되어 있는지는 생각하기 나름이다. 오히려 현관문에서는 금속탐지만 하고, 방문에서는 거짓말 탐지를 한다는 식으로 나뉘어 있다면 그것은 잘되어 있는 것일지도 모른다.

프로그램의 오작동이라는 것이 어디선가 오류가 발생할 만한 것을 인식하지 못하고 통과시켜서 뒤에서는 냅다 처리하던대로 수행하는 것 아닌가.
안전장치 두 개라는 의미는 안전장치 없이 사는 초보 프로그래머라기보다는 이제 뭔가 제대로 해보려는 사람들을 염두에 두고 말하는 것이다. 정상 기능을 위한 코드는 전체의 20%밖에는 되지 않는다. 나머지 80%는 모두 예외를 위한 것이며, 독수리같은 눈으로 쳐다보아도 완벽하게 되는 것은 너무 어렵다. 봐야할 것이 눈덩이처럼 불어나게 되면 더더욱 힘들어지게 된다.

어느 누구도 지나치게 안전한 프로그램을 만들지는 않는다. 코드가 느려질 수 도 있고, 불필요한 코드의 중복으로 인해 관리가 어렵게 되기 때문이다. 조금 한다고 하는 사람들은 정확히 안전한 프로그램을 만드는 것을 목표로 안전장치가 두 개인 것은 하나로 줄이는 행동을 한다. 그러나 그것이 안전장치를 안 달던 습관과 맞물려 돌아 갈 때, 벌레 한마리를 만드는 것이다.

캬... 누가 오르랴 저 경지에...

어느 누구도 벌레 한마리 없는 코드를 만들 수 없다. 다만, 잘해야 벌레를 밟지 않는식으로 동작하는 프로그램을 만들뿐이다.
  1. 미친감자 2006.07.11 09:32

    현관문
    방문
    으로 비유하니까.
    이해하기 너무 쉽고 재밌다^^

  2. madkoala 2006.08.16 10:07

    MAD가 넘쳐나는 아름다운 세상...
    그리고 질문! 댓글 입력 필드에 보면
    이름 (name)
    홈페이지 (homepage)
    그런데 왜!! 비밀번호 (homepage)인가요?

    • 최호진 2006.08.16 13:07

      저런... 이 스킨... 실수가 있구만.

+ Recent posts