예외상황

운영 과정에서 예외적으로 발생할 수 있는 상황에 대한 대처 방안을 정리한 것입니다. 사용 환경에 따라 적용 방식이 달라질 수 있으니 참고로만 활용하시기 바랍니다.

웹브라우저 옵션

사용자가 웹브라우저에서 특정한 목적으로 옵션을 변경했을 경우에 앱에서 해당 기능을 사용하고 있다면 정상적인 동작을 하지 못할 수 있습니다. 주로 아래와 같은 상황에서 문제가 생길 수 있습니다.

자바스크립트 활성화

사용자가 웹브라우저에서 자바스크립트를 사용할 수 없도록 설정했을 경우에는 앱이 정상적으로 동작하지 않습니다. 일반적으로 기본 옵션은 활성화 상태이지만 사용자가 다른 옵션을 선택할 수 있으므로 앱이 화면에 보이지 않을 때는 해당 옵션을 먼저 확인합니다.

사용하는 웹브라우저에 따라 자바스크립트 사용 옵션을 활성화해주어야 합니다. 사용하는 버전에 따라 해당 옵션은 달라질 수 있으며 상세한 내용은 아래 링크 또는 각 웹브라우저 도움말을 참고하세요.

http://www.enable-javascript.com

인터넷 익스플로러의 경우에는 아래 옵션에서 변경합니다.

Tools > Internet options > Security > Custom level > Internet Zone > Scripting > Active scripting

파일 다운로드 활성화

사용자가 웹브라우저에서 파일 다운로드를 사용할 수 없게 제한한 경우에는 Filddownload 컴포넌트를 사용해 파일을 내려받을 수 없습니다. 일반적으로 기본 옵션은 활성화 상태이지만 사용자가 다른 옵션을 선택할 수 있으므로 파일 다운로드가 동작하지 않을 때는 해당 옵션을 먼저 확인합니다.

사용하는 웹브라우저에 따라 파일 다운로드 옵션을 활성화해주어야 합니다. 사용하는 버전에 따라 해당 옵션은 달라질 수 있으며 상세한 내용은 각 웹브라우저 도움말을 참고하세요.

인터넷 익스플로러의 경우에는 아래 옵션에서 변경합니다.

Tools > Internet options > Security > Custom level > Internet Zone > Downloads > File Download

HTTP 1.1 활성화

사용자가 웹브라우저에서 HTTP 1.1을 사용할 수 없게 제한한 경우에 앱이 느려지거나 동작하지 않을 수 있습니다. 일반적으로 기본 옵션은 활성화 상태이지만 사용자가 다른 옵션을 선택할 수 있으므로 앱이 동작하지 않을 때는 해당 옵션을 먼저 확인합니다.

인터넷 익스플로러에서만 제공하는 기능이며 아래 옵션에서 변경합니다.

Tools > Internet options > Advanced > HTTP settings > Use HTTP 1.1 through proxy connections
Tools > Internet options > Advanced > HTTP settings > Use HTTP 1.1

웹브라우저 설정과 상관없이 웹서버 설정에서 HTTP 1.0을 사용하도록 강제하는 경우에 앱이 느려지거나 동작하지 않을 수 있습니다. 전체 사용자 환경이 느려지는 경우에는 웹서버 설정을 확인하셔야 합니다.

아파치 서버의 경우에 force-response-1.0 설정을 사용할 수 있습니다.

http://httpd.apache.org/docs/2.2/en/env.html#special

XMLHTTP 활성화

사용자가 웹브라우저에서 XMLHTTP를 사용할 수 없게 제한한 경우에 앱 내에서 동적인 처리 작업을 수행하지 못할 수 있습니다. 일반적으로 기본 옵션은 활성화 상태이지만 사용자가 다른 옵션을 선택할 수 있으므로 앱이 동작하지 않을 때는 해당 옵션을 먼저 확인합니다.

인터넷 익스플로러에서만 제공하는 기능이며 아래 옵션에서 변경합니다.

Tools > Internet options > Advanced > Security > Enable native XMLHTTP support

인터넷 익스플로러 호환성 보기

사용자가 인터넷 익스플로러에서 서비스되고 있는 도메인을 호환성 보기 대상으로 추가한 경우에는 화면이 정상적으로 출력되지 않을 수 있습니다.

넥사크로플랫폼 앱 개발 시 사용하는 HTML 파일은 상위 버전 인터넷 익스플로러의 향상된 성능을 이용하기 위해 각 버전의 표준모드로 동작하도록 Meta tag로 렌더링 모드를 지정하였으며 (IE=Edge), 해당 모드에서는 주소 입력창에 호환성 보기 아이콘이 표시되지 않습니다.

따라서 화면이 깨지는 사용자의 브라우저 설정을 확인하여 표준 모드로 동작하도록 가이드를 제공하거나, 별도의 스크립트로 호환성 보기 모드인지를 확인하여 사용자에게 알려 줄 수 있습니다.

아래 코드는 참고용입니다. 개발 환경에 따라 사용하셔야 합니다.

참고: http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

var agentStr = navigator.userAgent;

var mode;

if(agentStr.indexOf("rv:11.0") >= 0) {
	mode = "IE11";
}
else if (agentStr.indexOf("Trident/6.0") > -1) {
	if (agentStr.indexOf("MSIE 7.0") > -1) {
		mode = "IE10 Compatibility View";
	} else {
		mode = "IE10";
	}
}
else if (agentStr.indexOf("Trident/5.0") > -1) {
	if (agentStr.indexOf("MSIE 7.0") > -1) {
		mode = "IE9 Compatibility View";
	} else {
		mode = "IE9";
	}
}
else if (agentStr.indexOf("Trident/4.0") > -1) {
	if (agentStr.indexOf("MSIE 7.0") > -1) {
		mode = "IE8 Compatibility View";
	} else {
		mode = "IE8";
	}
}
else {
	mode = "IE7";
}

document.title = "Browser Mode:\t" + mode;

기존 웹 화면에 아이프레임으로 콘텐츠 추가

이미 개발되어 운영하는 화면에 아이프레임 형식으로 넥사크로플랫폼 콘텐츠를 추가하는 경우 인터넷 익스플로러에서 화면이 출력되지 않을 수 있습니다.

넥사크로플랫폼 앱 개발 시 사용하는 HTML 파일은 Edge모드로 동작하게 구성되어 있습니다. 기존 화면에 사용된 HTML 파일에 DTD(Document Type Definition)이 지정되어 있지 않을 경우에는 쿼크모드(Quirks mode)로 동작하는데 이 과정에서 화면이 정상적으로 출력되지 않을 수 있습니다.

이런 경우에는 아래와 같이 메타 태그를 추가해줍니다.

<head>
  <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
</head>

메타 태그 또는 HTTP 헤더를 사용한 호환성 보장과 관련된 내용은 아래 링크를 참고하세요.

http://technet.microsoft.com/ko-kr/library/gg699448.aspx