openjdk version "21.0.12" 2026-07-21 code=483920, recipient=Recipient[email=alice@example.com, code=483920] 를 넣고 렌더한다. * 표시가 프로덕션이 부르는 오버로드다. [실패한 자리에 변수가 놓인 식] [[${code.substring(99)}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [[${code.noSuchMethod()}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [[${recipient.noSuchMethod()}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [[${recipient.email.substring(99)}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [[${#numbers.formatDecimal(code, 1, 2)}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [[${code[recipient]}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [[${recipient * 2}]] 호출자 모드없음 없음 · 모드있음* 있음 · 로그 있음 · 마스킹 뒤 있음 [실패한 자리에 변수가 없는 식] [[${#strings.substring(code, 99, 200)}]] 호출자 모드없음 없음 · 모드있음* 없음 · 로그 없음 · 마스킹 뒤 없음 [[${code.noSuchProperty}]] 호출자 모드없음 없음 · 모드있음* 없음 · 로그 없음 · 마스킹 뒤 없음 [[${code.length() / 0}]] 호출자 모드없음 없음 · 모드있음* 없음 · 로그 없음 · 마스킹 뒤 없음 [[${code}]] (이 줄만 변수를 하나도 주지 않는다) 호출자 모드없음 없음 · 모드있음* 없음 · 로그 없음 · 마스킹 뒤 없음 [OGNL 이나 JDK 가 만든 절] [[${code.substring(99)}]] MethodFailedException: Method "substring" failed for object 483920 [[${code.noSuchMethod()}]] MethodFailedException: Method "noSuchMethod" failed for object 483920 [[${recipient.noSuchMethod()}]] MethodFailedException: Method "noSuchMethod" failed for object Recipient[email=alice@example.com, code=483920] [[${recipient.email.substring(99)}]] MethodFailedException: Method "substring" failed for object alice@example.com [[${#numbers.formatDecimal(code, 1, 2)}]] IllegalArgumentException: Unable to convert type java.lang.String of 483920 to type of java.lang.Number [[${code[recipient]}]] NoSuchPropertyException: java.lang.String.Recipient[email=alice@example.com, code=483920] [[${recipient * 2}]] NumberFormatException: For input string: "Recipient[email=alice@example.com, code=483920]" [[${#strings.substring(code, 99, 200)}]] MethodFailedException: Method "substring" failed for object org.thymeleaf.expression.Strings@<주소> [[${code.noSuchProperty}]] NoSuchPropertyException: java.lang.String.noSuchProperty [[${code.length() / 0}]] ArithmeticException: / by zero