서원계약

2026년 5월 22일 09:30분

민수기 30장에서 서원은 반드시 지켜야 하며 특정 조건에서만 파기할 수 있습니다. 계약은 체결 순간부터 유효하고 규칙에 따라서만 취소됩니다. 나는 서원을 계약으로 모델링하고 취소 가능 여부를 검증하는 계약기를 만들었습니다.

package com.jesusbornd.numbers;

public class Numbers_30_Chapter_Lv1 {
    enum Status { ACTIVE, CANCELLED, ENFORCED }

    record Vow(String person, String content, boolean guardianOverrode, boolean isAdult) {
        Status evaluate() {
            if (isAdult) return Status.ENFORCED;
            return guardianOverrode ? Status.CANCELLED : Status.ENFORCED;
        }
    }

    public static void main(String[] args) {
        var vows = java.util.List.of(
            new Vow("성인_르우벤",  "금식 서원",   false, true),
            new Vow("미성년_딸",   "헌물 서원",   true,  false),
            new Vow("미성년_아들", "금식 서원",   false, false)
        );
        vows.forEach(v -> System.out.printf("%s → %s%n", v.person(), v.evaluate()));
    }
}

def evaluate_vow(person, guardian_overrode, is_adult):
    if is_adult:           status = "ENFORCED"
    elif guardian_overrode: status = "CANCELLED"
    else:                  status = "ENFORCED"
    print(f"{person}{status}")

if __name__ == "__main__":
    evaluate_vow("성인_르우벤",  False, True)
    evaluate_vow("미성년_딸",   True,  False)
    evaluate_vow("미성년_아들", False, False)

Comments

Avatar
 2026년 5월 22일 22:01분

한번 맺은 계약이 어떤 조건에서 유효한지 명확히 정의하는 게 중요하네요.



Search

← 목록으로