buildrisk-radar

ADR-006 규칙 = Java 코드 + DB 파라미터

결정 규칙의 조건 로직은 RuleEvaluator 구현 클래스(R-C01…R-R02)로, 임계값·심각도·사용 여부는 risk.rule 에 버전으로 둔다. PUT /rules/{code} 는 validate() 를 통과해야 새 버전(version + 1)을 만들고, 값이 같으면 버전을 올리지 않는다.

이유 로직을 DB 문자열(표현식)로 두면 테스트할 수 없다. 반대로 임계값을 코드에 두면 조정할 때마다 배포해야 한다. 이 조합은 로직을 단위 테스트하면서 운영 중 튜닝을 허용한다.

대안 SpEL·MVEL 같은 표현식 엔진 — 표현력은 높지만 근거(evidence) 조립·연속 분기 판정 같은 로직을 표현식으로 쓰기 어렵고 검증이 약하다.