지연실행

2026년 4월 21일 09:30분

민수기 9장은 부정한 자가 유월절을 지키지 못할 때 한 달 뒤 재시행을 허용합니다. 나는 첫 시도가 실패 조건이면 지정된 지연 후 재시도하는 구조를 만들었습니다. 조건이 해소되면 그때 실행합니다.

package com.jesusbornd.numbers;

public class Numbers_09_Chapter_Lv1 {

    interface Task {
        void run(String who);
    }

    static void attemptOrDefer(String who, boolean isReady, int delayDays, Task task) {
        if (isReady) {
            System.out.println(who + " → 즉시 실행");
            task.run(who);
        } else {
            System.out.println(who + " → 조건 미충족, " + delayDays + "일 후 재시도 예약");
            // 지연 후 실행 (시뮬레이션)
            System.out.println(who + " [+" + delayDays + "일] → 재시도 실행");
            task.run(who);
        }
    }

    public static void main(String[] args) {
        Task passover = who -> System.out.println("  🐑 " + who + " 유월절 준수 완료");

        attemptOrDefer("아론",   true,  0,  passover);
        attemptOrDefer("미리암", false, 30, passover);
    }
}

from typing import Callable

def attempt_or_defer(who: str, is_ready: bool, delay_days: int, task: Callable[[str], None]):
    if is_ready:
        print(f"{who} → 즉시 실행")
        task(who)
    else:
        print(f"{who} → 조건 미충족, {delay_days}일 후 재시도 예약")
        print(f"{who} [+{delay_days}일] → 재시도 실행")
        task(who)


if __name__ == "__main__":
    def passover(who: str):
        print(f"  🐑 {who} 유월절 준수 완료")

    attempt_or_defer("아론",   True,  0,  passover)
    attempt_or_defer("미리암", False, 30, passover)

Comments

Avatar
 2026년 4월 21일 13:13분

때를 놓쳤어도 다시 기회를 주시는 장치가 있다는 게 참 안심돼요.



Search

← 목록으로