Notice
Recent Posts
Recent Comments
Link
투케이2K
170. (TWOK/LOGIC) [Web] 자바스크립트 setInterval 사용해 주기적 반복 타이머 동작 및 a 태그 파일 다운로드 (blob download) 백업 로직 본문
투케이2K 로직정리
170. (TWOK/LOGIC) [Web] 자바스크립트 setInterval 사용해 주기적 반복 타이머 동작 및 a 태그 파일 다운로드 (blob download) 백업 로직
투케이2K 2026. 1. 26. 19:13728x90
[로직 정리]
정리 로직 : Web / JavaScript / a tag
상태 : [Web] 자바스크립트 setInterval 사용해 주기적 반복 타이머 동작 및 a 태그 파일 다운로드 (blob download) 백업 로직

[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
1. 제 목 : [Web] 자바스크립트 setInterval 사용해 주기적 반복 타이머 동작 및 a 태그 파일 다운로드 (blob download) 백업 로직
2. 테스트 환경 : Web / JavaScript / Chrome
3 사전) a 태그 download 속성 설명 정리 :
>> <a> 태그 download 속성은 링크를 페이지로 이동 (navigate) 하지 않고 파일로 다운로드하도록 브라우저에 요청합니다
>> 파일 다운로드 관련 우선 순위 :
- 서버 응답 헤더 : Content-Disposition: attachment; filename="..." 포함
- download 속성의 값 : <a download="원하는이름.ext"> 포함
- URL에서 추정한 이름 : 예) .../file.pdf → file.pdf 사용
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------
1. 자바스크립트에서 window.prompt 창을 활성화 한 후 주기적으로 백업할 단위를 사용자로부터 입력 받습니다.
var input = window.prompt('\n' + '로그를 자동으로 저장할 주기 (분 단위) 를 입력해주세요. [로그 백업 파일은 PC 다운로드 폴더에 저장 됩니다]' + '\n\n' + 'ex : value = 30 은 30 분 마다 자동 구독 로그 저장' + '\n\n' + 'ex : value = 120 은 2시간 마다 자동 구독 로그 저장' + '\n');
2. 입력 된 값이 null 이 아닌 지 체크 수행 후 Number 타입으로 변환 합니다
if (input != null && input != undefined && input != ""){
const number = Number.parseInt(input);
// ... 코드 계속 ...
}
3. 변환 된 number 값을 사용해 setInterval 주기적 동작 타이머를 생성합니다
// 주기적 동작 타이머 생성 코드
var logTimer = setInterval(() => {
// ... 코드 계속 ...
}, (number * 60000) ); // ✅ 지정 시간 마다 체크 (분 단위 기준)
// [참고] : 주기적 반복 타이머 동작 정지 코드
if (logTimer) {
clearInterval(logTimer);
logTimer = null;
}
4. setInterval 주기적 동작 타이머 내에 a 태그를 사용해 지정된 시간 마다 현재 날짜 기준으로 log.txt 파일을 생성하도록 로직을 구현합니다
var timeStamp = String(Date.now()); // 현재 날짜 및 시간 타임스탬프
var date = dayjs(Number(timeStamp));
var nowDate = date.format("YYYYMMDDHHmmss");
const logContent = subscribeInput.value; // ✅ 로그 textarea 읽어온다
if (logContent != null && logContent != undefined && logContent != ""){
const blob = new Blob([logContent], { type: 'text/plain;charset=utf-8' }); // Blob 객체 생성
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'TWOK' + '_' + nowDate + '_' + 'Log_AutoSave.txt'; // 파일명
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
console.warn("백업 파일 저장 : ✅ : Success");
} else {
console.error("백업 파일 저장 : ❌ : 저장할 로그 파일이 없음");
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[new Blob 사용해 json 파일 , text 텍스트 파일 생성 실시]
https://kkh0977.tistory.com/980
https://blog.naver.com/kkh0977/222429667145?trackingCode=blog_bloghome_searchlist
[a 태그 download 사용해 캔버스 canvas 이미지 파일 저장 실시]
https://blog.naver.com/kkh0977/222506422490?trackingCode=blog_bloghome_searchlist
[Web/JavaScript] 자바스크립트 AWS STS 사용 Long 형식 S3 파일 다운 GetPreSignedUrl 프리사인 URL 주소 생성
https://blog.naver.com/kkh0977/224123067236?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
728x90
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments
