앱 캐시

네트워크를 효율적으로 사용하기 위해 개발된 앱을 배포서버에서 매번 내려받지 않고 캐시 기술을 사용합니다.

캐시의 종류

지원하는 캐시의 종류는 아래와 같습니다.

캐시 상태

설명

none

캐시 기능을 사용하지 않습니다.

dynamic

서버로부터 내려받은 파일이 갱신되었을 때만 수신합니다.

서버상의 파일이 갱신되지 않은 경우는 로컬 캐시(Local Cache) 파일을 재사용합니다.

session

엔진을 기동할 때, 단 한 번만 수신하고 해당 엔진이 종료될 때까지 로컬 캐시 파일만을 사용합니다. (엔진 기동 시 로컬 캐시 파일과 일치하면 재사용합니다.)

static

서버로부터 한 번이라도 내려받은 파일은 엔진 재실행과 상관없이 로컬 캐시 파일만 사용합니다. (단, Type Definition에 지정된 서비스 그룹의 버전이 변경된 경우에는 다시 내려받습니다.)

속성값이 static이면 캐시 파일을 로컬저장소에 저장하게 되는데 웹브라우져의 기능 제약으로 로컬저장소를 사용하지 못합니다. 그래서 웹브라우저에서 사용하는 경우에는 속성값이 static인 경우에도 session으로 동작합니다.

웹브라우저에서 사용하는 경우에는 속성값이 none이면 브라우저에서 캐시를 사용하지 않는 것이 정상입니다. Firefox를 사용하는 경우에는 브라우저 캐시를 사용하는 증상이 있는데 이 증상은 Firefox 버그입니다.

https://bugzilla.mozilla.org/show_bug.cgi?id=1129500

MS 인터넷 익스플로러에서 실행되는 경우 넥사크로플랫폼 내부에서 이용하는 캐시메모리보다 인터넷 익스플로러의 캐시가 우선 동작하는 경우가 있습니다. 웹브라우저 캐시옵션이 "자동으로 확인(default)"일 때 서버에서 변경된 자바스크립트 파일(*.js)이 갱신되지 않는 현상은 제약사항입니다.


웹브라우저를 새로 실행하거나 새로고침하는 경우에는 제품에서 관리하는 메모리상의 캐시가 모두 제거되기 때문에 속성값을 session, dynamic, static으로 설정한 경우 설정한 값과 무관하게 브라우저 동작에 의존하게 됩니다.

넥사크로 스튜디오에서 [Launch Project] 또는 [Quick View] 메뉴를 사용해 NRE를 실행하는 경우에는 typedefinition에 설정된 Service-cachelevel 값을 무시하고 none으로 동작합니다.

(cachelevel 속성의 설정값이 변경되는 것은 아닙니다)

넥사크로플랫폼에서 이미지를 처리할 때는 이미지 표현 관련 기능(size, stretch 등)과 성능상의 이유로 사용 브라우저의 캐시 설정에 따른 동작을 하도록 설계됐습니다.

(프로젝트 service 그룹에 설정된 cachelevel과는 별개의 동작입니다)

ExcelImportObject 또는 ExcelExportObject를 사용해 엑셀 파일을 가져오거나 내보낼 때에는 지정한 cachelevel 속성값과 관계없이 무조건 none으로 동작합니다.

캐시 적용 방법

다음은 Type Definition 편집기에 대한 설명입니다.

  1. 캐시는 등록된 서비스 그룹에만 적용됩니다.

  2. "./Base/' 폴더 아래 등록된 모든 파일에 대해 캐시가 적용됩니다.

  3. 캐시의 종류를 선택합니다.

  4. 서비스 버전을 설정하면 Static 상태에서 파일을 다시 내려받을 수 있습니다.

nexacro.getEnvironment().services["Base"].set_cachelevel("none" )