권한검사
2026년 4월 24일 09:30분
민수기 12장에서 미리암과 아론이 모세의 권위에 도전합니다. 미리암은 나병 징계를 받습니다. 나는 역할 등급을 정의하고, 낮은 등급이 높은 등급을 침범하면 접근 거부와 징계를 내리는 권한 검사기를 만들었습니다.
package com.jesusbornd.numbers;
public class Numbers_12_Chapter_Lv2 {
enum Role { PROPHET, HIGH_PROPHET, LEADER }
record Person(String name, Role role) {}
static class AuthorityChecker {
private final Role requiredRole;
AuthorityChecker(Role requiredRole) { this.requiredRole = requiredRole; }
void challenge(Person challenger, Person target) {
System.out.printf("%s(%s) → %s(%s) 권위 도전%n",
challenger.name(), challenger.role(),
target.name(), target.role());
if (challenger.role().ordinal() < target.role().ordinal()) {
System.out.println(" ❌ 권한 부족 — 징계 적용");
} else {
System.out.println(" ✅ 허용");
}
}
}
public static void main(String[] args) {
Person moses = new Person("모세", Role.LEADER);
Person miriam = new Person("미리암", Role.PROPHET);
Person aaron = new Person("아론", Role.HIGH_PROPHET);
AuthorityChecker checker = new AuthorityChecker(Role.LEADER);
checker.challenge(miriam, moses);
checker.challenge(aaron, moses);
checker.challenge(moses, miriam);
}
}
from enum import IntEnum
from dataclasses import dataclass
class Role(IntEnum):
PROPHET = 1
HIGH_PROPHET = 2
LEADER = 3
@dataclass
class Person:
name: str
role: Role
def challenge(challenger: Person, target: Person):
print(f"{challenger.name}({challenger.role.name}) → {target.name}({target.role.name}) 권위 도전")
if challenger.role < target.role:
print(" ❌ 권한 부족 — 징계 적용")
else:
print(" ✅ 허용")
if __name__ == "__main__":
moses = Person("모세", Role.LEADER)
miriam = Person("미리암", Role.PROPHET)
aaron = Person("아론", Role.HIGH_PROPHET)
challenge(miriam, moses)
challenge(aaron, moses)
challenge(moses, miriam)
Search
Categories
← 목록으로
Comments
자기 권한 밖의 일에 손댔을 때의 결과가 생각보다 무겁더라고요.