노무현 대통령 배너

'Defensive Programming'에 해당되는 글 1건

  1. 2008/07/30 머피의 법칙과 소프트웨어 개발

머피의 법칙과 소프트웨어 개발

Life & Culture 2008/07/30 08:45 posted by k16wire
사용자 삽입 이미지

머피의 법칙(Murphy's law)이란 '잘못될 수 있는 일은 결국 잘못되게 마련이다.' 또는 '잘못될 수 있는 일은 하필이면 최악의 순간에 터진다'는 법칙을 말합니다.
If anything go wrong, it will
잘만 되던 프로그램이 고객 시연회나 PM이나 PL에게 보여주려고만 하면 꼭 안된다. 남들앞에서 데모를 보여주려고만 하면 지금까지 잘되던 기능이 에러를 내면서 사람을 애먹인다.

사실 이 법칙에 아무런 과학적 근거도 없다고 합니다. 굳히 찾는다면 '나쁜 일이 오래 기억에 남는다' 정도..
하지만 이런 최악의 상황을 고려해서 시스템을 개발한다면 고 품질의 제품을 개발할 수 있지 않을까 생각한다. 미국 항공 우주국(NASA)도 이 머피의 법칙에 주목하면서 대형 사고의 위험을 많이 줄였다고 하네요.

이 머피의 법칙을 고려한 프로그래밍을 Defensive programming이라고 합니다. 위키피디아에 이 DP의 좋은 점으로 세가지를 들고 있습니다.
  • 소프트웨어의 버그와 문제가 줄어들기 때문에 일반적인 품질이 좋아진다.
  • 소스코드가 읽기 쉽고 이해하기 쉬어지기 때문에 코드 검증효과가 있어서 소스코드 가독성이 좋아진다.
  • 예기치 못한 사용자의 입력에도 소프트웨어가 의도하는대로 동작하게 만드는것이 가능해진다.
DP를 하기 위해서는 코드 복잡도를 낮춘다거나, 소스 코드리뷰, 테스팅등의 기법들이 사용가능합니다만 가만 보면 일반적으로 코드 품질을 높이기 위해서 해야 된다고 강조하는 것들입니다. 기본 강조 ^^







크리에이티브 커먼즈 라이선스
Creative Commons License