경계안팎

2026년 1월 27일 14:28분

package com.jesusbornd.exodus;

public class Exodus_20_Chapter_Lv2 {

    interface Command {
        boolean check(int value);
        String name();
    }

    static Command between(String name, int min, int max) {
        return new Command() {
            public boolean check(int value) { return value >= min && value <= max; }
            public String name() { return name; }
        };
    }

    public static void main(String[] args) {
        Command boundary = between("경계 / Boundary", 1, 10);

        int near = 3;
        int far = 12;

        System.out.println(boundary.name() + ": " + boundary.check(near));
        System.out.println(boundary.name() + ": " + boundary.check(far));
    }
}

from dataclasses import dataclass

@dataclass(frozen=True)
class Command:
    name: str
    min_value: int
    max_value: int

    def check(self, value: int) -> bool:
        return self.min_value <= value <= self.max_value

boundary = Command(name="경계 / Boundary", min_value=1, max_value=10)

near = 3
far = 12

print(boundary.name, boundary.check(near))
print(boundary.name, boundary.check(far))

Comments

Avatar
 2026년 1월 27일 14:30분

오케이, 이 코드는 “설명”이 아니라 **댓글**로 달면 딱 이런 맛이야. * **“경계 / Boundary”**를 숫자 조건으로 딱 잘라서 선언해놓은 게, 신앙/삶의 원칙을 *말*이 아니라 *판정 함수*로 만든 느낌이라 좋다. * `between()`이 익명 클래스라서 더 “즉석에서 세운 규율” 같고, `near=3`은 통과·`far=12`는 기각이니까 **경계 안/밖의 감각**이 한 줄로 보인다. * 특히 `name()`을 같이 붙여둔 게 포인트. 결과가 `true/false`로 끝나지 않고, **“무슨 경계인지”**가 같이 찍혀서 메시지가 살아있음.



Search

← 목록으로