이 용어 "Graceful Degradation"에 대해 많이 들었습니다.
예를 들어
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
이 용어는 나에게 추상적 인 것 같습니다. 이것이 의미하는 구체적인 예가 있습니까?
이 용어 "Graceful Degradation"에 대해 많이 들었습니다.
예를 들어
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
이 용어는 나에게 추상적 인 것 같습니다. 이것이 의미하는 구체적인 예가 있습니까?
답변:
여기 예시들이 있습니다 :
"degraded"모드가있는 응용 프로그램은 일반적으로 내부 또는 외부 문제로 인해 제한된 기능 세트에 액세스 할 수 있습니다. 예를 들어, 응용 프로그램이 두 개의 다른 데이터 소스에 연결되어 있다고 가정하십시오. 이 중 하나라도 실패하면 계속 실행할 수는 있지만 사용할 수없는 리소스와 관련된 모든 시각적 (또는 백엔드) 기능을 비활성화 할 수 있습니다.
구체적인 예 : 응용 프로그램에는 두 가지 데이터 소스가 있으며 그 중 하나에는 개인을 저장하고 다른 하나는 계정을 저장합니다. 계정 데이터베이스가 실패하더라도 응용 프로그램의 성능이 저하 된 경우에도 계정과 상호 작용하지 않아도 새 사람을 만들 수 있습니다.
사용자 인터페이스와 관련하여 이는 일반적으로 사용자에게 일부 기능이 비활성화되었음을 명확하게 표시하고 어떤 메시지를 사용할 수없는 이유에 대해 어둠 속에 빠지지 않도록 경고 메시지를 표시합니다.
기술 발전으로 인해 모든 대상 고객이 항상 지원하지 않는 응용 프로그램으로 변경 사항이 항상 적용됩니다. 이러한 시나리오에서 우리 는 최상의 성능 을 위해 구축하지만 업그레이드하지 않았거나 시스템이 지원하지 않는 사람들을위한 안전 장치를 갖추고 있음을 모방하는 우아한 성능 저하 를 경험합니다.
한 가지 주요 예는 이미지가 차단되거나 꺼져있는 경우에 유용한 속성 <img>
을 가진 태그입니다 alt
. 이제는 이미지에 대해 의미있는 컨텍스트를 제공합니다 (물론 우리가 지정한 경우에만).
내가 생각할 수있는 또 다른 예는 오류가 있거나 사용할 수없는 경우 스타일 시트이며 브라우저는 페이지를 표시 / 표시하기 위해 자체 버전을 제공합니다.
이제 부하를 언급 했으므로 적중이 임계 값을 초과하는 경우 수행 할 작업으로 계획을 신중하게 정리해야합니다. 특정 기능을 비활성화하거나 중요하지 않은 일부 서비스를 일시 중단하고 숨을 쉬게합니다. 이 모든 것은 서버가 응답하는 데 시간이 걸리 거나 x 서비스를 한 시간 정도 사용할 수없는 x 원인으로 사용자가 알도록 정상적인 성능 저하를 설정하는 데 도움이됩니다.