실패-패스트

Fail-fast

시스템 설계에서 페일패스트 시스템은 고장을 나타낼 가능성이 있는 모든 조건을 인터페이스에 즉시 보고하는 시스템이다.페일패스트 시스템은 대개 결함이 있을 수 있는 프로세스를 계속하려고 시도하기보다는 정상 작동을 멈추도록 설계된다.그러한 설계는 종종 작동 중 몇 지점에서 시스템 상태를 점검하므로 모든 고장을 조기에 감지할 수 있다.페일패스트 모듈의 책임은 오류를 감지하고 다음으로 높은 수준의 시스템이 오류를 처리하도록 하는 것이다.

하드웨어 및 소프트웨어

페일패스트 시스템 또는 모듈은 다음과 같은 몇 가지 상황에서 바람직하다.

  • 중복 구성요소를 사용하여 내결함성 시스템을 구축할 때 개별 구성요소는 고장을 성공적으로 견딜 수 있는 충분한 정보를 시스템에 제공하도록 고장 속도가 빨라야 한다.
  • 고장-빠른 구성 요소는 다른 구성 요소의 고장으로 이어질 때까지 한 구성 요소의 고장이 보이지 않을 수 있는 상황에서 종종 사용된다.
  • 고장 원인을 찾는 것은 시스템이 가능한 한 많은 정보를 사용하여 고장 발생 시간에 근접하게 보고하기 때문에 실패의 원인을 찾는 것이 더 쉽다.내결함성 시스템에서는 고장이 감지되지 않을 수 있는 반면, 내결함성이나 고장 속도가 아닌 시스템에서는 나중에 관련 없어 보이는 문제를 일으킬 때까지 일시적으로 고장이 숨겨질 수 있다.
  • 고장 발생 오류를 보고할 뿐만 아니라 정지하도록 설계된 페일패스트 시스템은 되돌릴 수 없거나 비용이 많이 드는 작업을 잘못 수행할 가능성이 적다.

개발자들은 또한 코드를 변수나 객체 초기화에서 가능한 한 빨리 실패하려고 할 경우 fail-fast라고 부른다.객체 지향 프로그래밍에서, 장애물이 빨리 설계된 객체는 생성자에 있는 객체의 내부 상태를 초기화하여, (잘못된 "설정자"로 인해 나중에 실패할 비초기화되거나 부분적으로 초기화된 객체를 허용하는 것이 아니라) 잘못된 경우 예외를 시작한다.만약 내부 상태에 대한 변경이 더 이상 예상되지 않는다면 그 개체는 불변하게 될 수 있다.기능에서 fail-fast 코드는 전제조건에서 입력 파라미터를 점검한다.클라이언트-서버 아키텍처에서 fail-fast는 클라이언트 요청을 처리하거나 다른 내부 구성요소로 리디렉션하기 전에 도착 즉시 클라이언트 요청을 검사하여 요청이 실패하면 오류를 반환한다(잘못된 매개변수, ...).빠르게 설계된 코드는 내부 소프트웨어 엔트로피를 감소시키고 디버깅 노력을 감소시킨다.

소프트웨어 엔지니어링 분야에서 Fail Fast Iterator반복하는 동안 반복기에 의해 처리된 요소의 순서가 변경될 경우 오류를 발생시키려 하는 반복기다.

비즈니스

이 용어는 적어도 2001년으로 거슬러 올라가 사업에서 은유로서 널리 사용되어 왔는데,[1] 이는 기업들이 조심스레 진행하여 불운한 접근법에 수년을 투자하기보다는 제품이나 전략의 장기적인 생존 가능성을 결정하기 위한 과감한 실험을 해야 한다는 것을 의미한다.창업문화 내 일종의 '만트라', 즉 '빠른 실패, 자주 실패'[2]로 채택됐다.

"Fail fast, fail precess"는 실리콘밸리에서 흔히 볼 수 있는 만트라다.

James Surowiecki, The New Yorker


참고 항목

참조

  1. ^ Khanna, Rajat; Guler, Isin; Nerkar, Atul (2016-04-01). "Fail Often, Fail Big, and Fail Fast? Learning from Small Failures and R&D Performance in the Pharmaceutical Industry". Academy of Management Journal. 59 (2): 436–459. doi:10.5465/amj.2013.1109. ISSN 0001-4273.
  2. ^ "Epic Fails of the Startup World". The New Yorker. Retrieved 2017-08-14.

외부 링크