새로운 질서 위키

조기 실패

조기 실패(Fail Fast)는 프로그램의 잘못된 상태를 발견한 자리에서 곧바로 드러내는 설계 원칙이다. 오류를 감춘 채 계속 진행하면 실제 원인과 멀리 떨어진 곳에서 문제가 나타날 수 있다. 짐 쇼어(Jim Shore)는 오류를 빨리 찾는 일과 서비스 전체를 안정적으로 유지하는 일을 함께 설계해야 한다고 설명한다. (Fail Fast)

늦게 알게 되는 일을 줄이기

  • 예를 들어 인쇄용 파일을 만드는 작업이라면 필요한 원고가 없는 상태에서 빈 페이지를 만들어 성공으로 보고하지 않도록 할 수 있다. 무엇이 빠졌는지 먼저 알려주고 해당 작업을 멈추는 편이 원인을 찾기 쉽다.
  • 멈추는 범위는 따로 정해야 한다. 한 파일의 오류 때문에 관련 없는 작업까지 모두 종료할 필요가 있는지 살펴보고, 실패의 경계를 기록해보자.
  • 백업과 가역성도 함께 검토하자. 오류를 드러내더라도 이미 작성한 내용을 잃지 않게 하고, 사용자가 다시 시도할 방법을 마련하는 것이 좋다.

기타 등등

  • 쇼어의 글은 설정값이 없을 때 임의의 기본값으로 계속 진행하는 코드와 예외를 발생시키는 코드를 비교한다. 겉보기에는 작동하는 기본값이 설정 오류를 숨길 수 있다는 사례다. 출처
  • 같은 글의 일괄 처리 예제는 개별 명령의 예외를 보고하고 다음 명령으로 진행한다. 조기 실패를 프로그램 전체의 무조건적인 종료와 구별한 예다. 출처

#원칙 #프로그래밍 #유지보수

검색