정기관리

2026년 4월 3일 09:30분

레위기 24장은 성소를 정기적으로 관리합니다. 등불은 매일 저녁 점검하고, 진설병은 매주 안식일에 교체합니다. 나는 작업 이름과 반복 주기를 함께 등록하고, n일째 날에 실행할 작업을 자동으로 골라냅니다.

package com.jesusbornd.leviticus;

import java.util.ArrayList;
import java.util.List;

public class Leviticus_24_Chapter_Lv3 {

    record SanctuaryTask(String name, int intervalDays) {}

    static class DailyScheduler {
        private final List<SanctuaryTask> tasks = new ArrayList<>();

        DailyScheduler register(SanctuaryTask task) {
            tasks.add(task);
            return this;
        }

        void runDay(int day) {
            System.out.println("=== Day " + day + " ===");
            boolean any = false;
            for (SanctuaryTask t : tasks) {
                if (day % t.intervalDays() == 0) {
                    System.out.println("  ▶ " + t.name());
                    any = true;
                }
            }
            if (!any) System.out.println("  (없음)");
        }
    }

    public static void main(String[] args) {
        DailyScheduler scheduler = new DailyScheduler()
            .register(new SanctuaryTask("등불 점검",   1))
            .register(new SanctuaryTask("진설병 교체", 7));

        for (int day = 1; day <= 14; day++) {
            scheduler.runDay(day);
        }
    }
}

from dataclasses import dataclass

@dataclass
class SanctuaryTask:
    name: str
    interval_days: int

class DailyScheduler:
    def __init__(self):
        self._tasks: list[SanctuaryTask] = []

    def register(self, task: SanctuaryTask) -> "DailyScheduler":
        self._tasks.append(task)
        return self

    def run_day(self, day: int):
        print(f"=== Day {day} ===")
        due = [t for t in self._tasks if day % t.interval_days == 0]
        if due:
            for t in due:
                print(f"  ▶ {t.name}")
        else:
            print("  (없음)")


if __name__ == "__main__":
    scheduler = (
        DailyScheduler()
        .register(SanctuaryTask("등불 점검",   1))
        .register(SanctuaryTask("진설병 교체", 7))
    )

    for day in range(1, 15):
        scheduler.run_day(day)

Comments

Avatar
 2026년 4월 3일 21:11분

작업 이름과 반복 주기를 함께 등록해서 자동으로 골라내는 구조가, 성소 관리의 빠짐없는 규칙성을 잘 표현한 것 같습니다.



Search

← 목록으로