- 개발 의도 : 제품 업데이트 시 캐시로 인하여 jsp/js 파일에 업데이트가 적용이 안된 경우 사용자에게 업데이트(캐시 삭제) 알림을 주기 위함
- 간략한 흐름
- 빌드 시 버전 코드 생성
- AUD폴더 내 버전 코드가 입력된 js 파일과 텍스트 파일 생성
Image Added - jsp파일에서 두 버전 코드를 비교하여 업데이트(캐시 삭제)알림 출력 여부 결정
사용 방법 : 전제조건 - 캐시 사용 - /AUD/main.jsp 접속
- 제품 업데이트 하기 전의 경우
→ 버전코드 값이 같아서 Alert창 출력 x
- 캐시가 쌓여 있고, 제품 업데이트 한 경우
AUD.LIB_BUILD_VERSION : min.js 파일(bimatrix.module.audframework.js)빌드된 js파일에서 유래한 버전 코드 / 캐시를 사용한다면 이전 버전 코드일 것 AUD_LIB_SERVER_VERSION : 텍스트 파일 (aud-lib-version.txt)에서 파일에서 유래한 버전 코드 / 항상 최신 코드 적용됨
→ 버전코드 값이 달라서 Alert창 출력 o
소스 설명- 개발의도 : 제품 업데이트 시, 텍스트 파일과 min.js 파일(bimatrix.module.audframework.js)에 같은 버전 코드(임의로 정한 값)를 부여하여 min.js 파일을 cached된 것을 사용하고 있다면 텍스트 파일에 적힌 코드와 다른 것을 이용하여 사용자에게 업데이트(캐시 삭제)를 유도하는 메세지를 출력하기 위함
간략한 흐름
- npm run all으로 빌드하면서 버전코드 생성 ( 타임스탬프 이용하여 생성 : "LIB_VERSION_yyyyMMddHHmm")
- 버전 코드만 입력된 aud-lib-version.txt 생성 : 빌드 할 때마다 새롭게 바뀜
- AUD.js에서 치환을 통해 버전코드 입력 : 서버에 올라갈 bimatrix.module.audframework.js 내 코드로 존재 (캐시)
jsp파일에서 aud-lib-version.txt와 bimatrix.module.audframework.js 내 버전 코드 값 비교하여 Alert 메세지 출력 여부 결정
AUD.ts(기존과 비교) : LIB_BUILD_VERSION 추가 코드 블럭 |
---|
language | java |
---|
theme | FadeToGrey |
---|
firstline | 141 |
---|
title | AUD.ts |
---|
linenumbers | true |
---|
collapse | true |
---|
| .
.
.
public static META_TEMPLATE_NAME = "TEMPLATE_SD_META_VIEW";
// JSP CACHE 작업 -- 추가된 코드
public static LIB_BUILD_VERSION = "__LIB__BUILD__VERSION__OF__AUD__";
// PropertyGrid 객체
private static mPropertyGrid: PropertyGrid;
public static get PropertyGrid(): PropertyGrid {
return this.mPropertyGrid;
}
.
.
. |
** __LIB__BUILD__VERSION__OF__AUD : 빌드 시 생성될 버전 코드와 치환될 문자열 buildversion.bat(신규 파일) : 버전 코드를 생성하여 텍스트 파일을 만들고 AUD.js에서 대상 문자열 치환 작업 수행하는 배치파일 코드 블럭 |
---|
language | bash |
---|
theme | FadeToGrey |
---|
firstline | 1 |
---|
title | buildversion.bat |
---|
linenumbers | true |
---|
collapse | true |
---|
| @echo off
REM Timestamp 설정
FOR /F %%a IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET DTS=%%a
SET TIMESTAMP=LIB_VERSION_%DTS:~0,8%%DTS:~8,4%
REM 라이브러리버전 파일 생성
ECHO %TIMESTAMP% > ..\3.ExternalFiles\reports\aud-lib-version.txt
REM AUD 문자열 replace
SET file_path=.\out\model\AUD.js
SET OLD_STRING="__LIB__BUILD__VERSION__OF__AUD__"
powershell -Command "(Get-Content '%file_path%') -replace '%OLD_STRING%', '%TIMESTAMP%' | Set-Content '%file_path%'" |
위치 : 소스 (aud-web-framework 폴더) 내 위치 package.json(기존과 비교) : "buildver" 이라는 key 추가 ( value는 buildversion.bat의 상대경로 ) 및 "all"의 value에 "buildver" 추가
코드 블럭 |
---|
language | actionscript3 |
---|
theme | FadeToGrey |
---|
firstline | 1 |
---|
title | package.json |
---|
linenumbers | true |
---|
collapse | true |
---|
| "scripts": {
.
.
.
"buildver": "..\\buildversion.bat",
"all": "tsc && npm run del_all && npm run buildver && npm run webpack_release && npm run webpack_debug && npm run webpack_comprelease && npm run webpack_compdebug"
}, |
** "all" 내 "buildver" 순서 배치 의도 : min.js 파일로 빌드 하기 전에 AUD.js 파일에 미리 치환하여 release와 debug에 모두 코드를 포함시키기 위함 main.jsp(기존과 비교) : 텍스트 파일을 읽어와서 jsp 내 전역변수로 사용 및 텍스트 파일 유래 버전 코드와 min.js 유래 버전코드 비교 작업 추가 코드 블럭 |
---|
language | xml |
---|
theme | FadeToGrey |
---|
firstline | 1 |
---|
title | main.jsp |
---|
linenumbers | true |
---|
collapse | true |
---|
| .
.
.
<%@ page import="com.matrix.Data.io.TextFileHelper" %>
<%
.
.
.
String aud_lib_server_version = TextFileHelper.ReadAllText("aud-lib-version.txt").trim();
%>
.
.
.
<script type="text/javascript">
var AUD_LIB_SERVER_VERSION = "<%=aud_lib_server_version%>"; // 텍스트 파일에서 유래한 버전코드
.
.
.
var ShowAlertOfUpdate = function () {
if(typeof AUD.LIB_BUILD_VERSION === "undefined"){
alert(AUD.Trans("EXE0051"));
return;
}else if(AUD.LIB_BUILD_VERSION !== AUD_LIB_SERVER_VERSION){ // AUD_LIB_SERVER_VERSION = min.js 파일(bimatrix.module.audframework.js)에서 유래한 버전코드 ( 캐시를 사용하고 있다면 코드가 이전 코드일 것 )
alert(AUD.Trans("EXE0051"));
}
}
.
.
. |
iStudio-ko(및 다른 Locale 코드).json (기존과 비교) 코드 블럭 |
---|
language | yml |
---|
theme | FadeToGrey |
---|
firstline | 1 |
---|
title | iStudio-ko.json |
---|
linenumbers | true |
---|
collapse | true |
---|
| .
.
.
"EXE0050": "Format을 사용하려면 [연결]항목을 설정해야 합니다.",
"EXE0051": "제품 업데이트가 필요합니다.\n브라우저 캐시를 삭제해주세요.", <- 코드에 출력 될 메세지 작성
.
.
. |
aud-lib-version.txt(신규 파일) : 버전 코드가 입력된 텍스트 파일 Image Removed 위치 : reports 폴더 내 존재
|