From 9ab298e52dab88a44df6c97118855ccda2785401 Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Tue, 17 Mar 2026 10:40:25 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20CronPreview=20step=3D0=20=EB=AC=B4?= =?UTF-8?q?=ED=95=9C=EB=A3=A8=ED=94=84=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit parseField에서 cron step 값이 0일 때 for 루프가 종료되지 않는 버그 수정. step <= 0이면 전체 범위를 반환하도록 방어 코드 추가. Co-Authored-By: Claude Opus 4.6 --- frontend/src/utils/cronPreview.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/utils/cronPreview.ts b/frontend/src/utils/cronPreview.ts index 3fa99ae..7ed0e84 100644 --- a/frontend/src/utils/cronPreview.ts +++ b/frontend/src/utils/cronPreview.ts @@ -89,6 +89,7 @@ function parseField(field: string, min: number, max: number): number[] | null { if (stepMatch) { const [, base, stepStr] = stepMatch; const step = parseInt(stepStr, 10); + if (step <= 0) return range(min, max); let start = min; let end = max; From 44174ef56bbba3c538ed154877ef1a24cefdbeaf Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Tue, 17 Mar 2026 10:43:58 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20=EB=A6=B4=EB=A6=AC=EC=A6=88=20?= =?UTF-8?q?=EB=85=B8=ED=8A=B8=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/RELEASE-NOTES.md b/docs/RELEASE-NOTES.md index 1777475..1046ef0 100644 --- a/docs/RELEASE-NOTES.md +++ b/docs/RELEASE-NOTES.md @@ -49,6 +49,7 @@ - 타임라인 상세 화면 이동 오류 수정 및 실행 중 작업 상세 버튼 추가 (#34) - RECOLLECT 모드에서 Tasklet 자체 스킵으로 last_success_date 복원 로직 제거 (#50) - Quartz PostgreSQLDelegate BYTEA 컬럼 읽기 오류 수정 (#12) +- CronPreview step=0 무한루프 방지 ### 변경 - 실패 레코드 Upsert 패턴 적용 (동일 키 중복 방지)