접근거부
2026년 4월 30일 09:30분
민수기 16장에서 고라와 250명이 제사장 직분을 침범하려 합니다. 허가받지 않은 접근은 거부되고 심판이 뒤따릅니다. 나는 허용 역할 목록을 관리하고 미허가 접근 시 즉시 거부하는 접근 제어기를 만들었습니다.
package com.jesusbornd.numbers;
import java.util.Set;
public class Numbers_16_Chapter_Lv2 {
enum Role { LEVITE, PRIEST, HIGH_PRIEST }
record AccessRequest(String name, Role role, String resource) {}
static class AccessControl {
private final Set<Role> allowed;
AccessControl(Role... roles) { this.allowed = Set.of(roles); }
void check(AccessRequest req) {
if (allowed.contains(req.role())) {
System.out.printf("✅ %s(%s) → '%s' 접근 허가%n",
req.name(), req.role(), req.resource());
} else {
System.out.printf("❌ %s(%s) → '%s' 접근 거부 — 권한 없음%n",
req.name(), req.role(), req.resource());
}
}
}
public static void main(String[] args) {
AccessControl altar = new AccessControl(Role.PRIEST, Role.HIGH_PRIEST);
altar.check(new AccessRequest("아론", Role.HIGH_PRIEST, "번제단"));
altar.check(new AccessRequest("엘르아살",Role.PRIEST, "번제단"));
altar.check(new AccessRequest("고라", Role.LEVITE, "번제단"));
altar.check(new AccessRequest("다단", Role.LEVITE, "번제단"));
}
}
from dataclasses import dataclass
from enum import Enum
class Role(Enum):
LEVITE = "레위인"
PRIEST = "제사장"
HIGH_PRIEST = "대제사장"
@dataclass
class AccessRequest:
name: str
role: Role
resource: str
class AccessControl:
def __init__(self, *allowed_roles: Role):
self._allowed = set(allowed_roles)
def check(self, req: AccessRequest):
if req.role in self._allowed:
print(f"✅ {req.name}({req.role.value}) → '{req.resource}' 접근 허가")
else:
print(f"❌ {req.name}({req.role.value}) → '{req.resource}' 접근 거부 — 권한 없음")
if __name__ == "__main__":
altar = AccessControl(Role.PRIEST, Role.HIGH_PRIEST)
altar.check(AccessRequest("아론", Role.HIGH_PRIEST, "번제단"))
altar.check(AccessRequest("엘르아살", Role.PRIEST, "번제단"))
altar.check(AccessRequest("고라", Role.LEVITE, "번제단"))
altar.check(AccessRequest("다단", Role.LEVITE, "번제단"))
Search
Categories
← 목록으로
Comments
정해진 경계를 넘으려 했을 때 어떤 일이 생기는지 똑똑히 보여주네요.