규칙을 읽을 때는 자연스러워 보이는데, 실제로 적용하면 아무 결과도 없는 경우나 두 결과가 동시에 나오는 경우가 생깁니다. 조지 불(George Boole)은 부류를 기호로 나타내고, 조건의 모든 조합을 서로 겹치지 않는 부분으로 전개했습니다. 이번에는 그 계산을 현대의 결정표 점검에 적용해 규칙의 빈틈과 겹침을 찾아봅니다.
01 · 불이 풀려던 문제
복잡한 부류 관계에서 빠진 부분을 어떻게 보일까요?
불이 다룬 부류는 서로 겹칠 수 있습니다. x가 ‘예약 확인’, y가 ‘안전교육 이수’를 뜻한다면 xy는 둘 다 해당하는 부류이고, x(1−y)는 예약은 확인됐지만 교육은 이수하지 않은 부류입니다. 말로만 규칙을 적으면 이 중 어떤 부류를 놓쳤는지 알아보기 어렵습니다.
1854년 『Laws of Thought』 제2장에서 불은 1을 논의 중인 전체 부류로, 1−x를 x에 속하지 않는 나머지로 다룹니다. 제5장에서는 함수를 x=1일 때와 x=0일 때로 나누는 전개 원리를 제시합니다. 두 조건이면 전체를 xy, x(1−y), (1−x)y, (1−x)(1−y)의 네 부분으로 펼칠 수 있습니다.
불의 부류 계산은 모든 조합을 드러내어 어느 부분이 포함되고 제외되는지 확인하게 합니다. ‘결정표’와 완전성 검사는 후대의 실무 형식이며, 불이 오늘의 DMN 표를 직접 만든 것은 아닙니다.
02 · 불의 제안에서 검사식으로
전체를 네 부분으로 나누면 빈틈과 겹침이 계산됩니다
가상의 시설 이용 규칙을 만들겠습니다. 결과 A는 ‘즉시 이용’, 결과 B는 ‘안내 데스크 확인’입니다. 각 입력 행에서 A와 B가 정확히 하나만 1이면 처리 경로가 분명합니다. 둘 다 0이면 어느 결과도 정하지 않은 빈틈이고, 둘 다 1이면 서로 다른 두 처리가 동시에 선택된 겹침입니다.
불 논리를 불 대수 식으로 쓰면 빈틈을 (1−A)(1−B), 겹침을 AB로 표시할 수 있습니다. 두 식이 어느 행에서 1인지 보면 문제가 있는 부류가 드러납니다. A+B를 보통 덧셈처럼 계산해 2라고 말하는 대신, 이 활동에서는 A와 B의 소속 여부를 각각 유지해 겹침을 확인합니다.
겹침이 언제나 오류인 것은 아닙니다. 두 결과를 함께 모으는 규칙이라면 의도된 동작일 수 있습니다. 하지만 결과가 하나여야 하는 표에서는 충돌입니다. 현대 DMN 표는 여러 규칙이 동시에 맞을 때 결과를 고르는 방식을 ‘히트 정책’으로 명시합니다. 따라서 먼저 업무가 한 결과를 요구하는지 여러 결과를 허용하는지 정해야 합니다.
03 · 불의 부류를 결정표로
각 행의 결과를 눌러 규칙을 고쳐보세요
| 입력 부류 | x | y | A 즉시 이용 | B 추가 확인 | 검토 |
|---|
처음 표에서는 11행만 A이고 나머지는 B라서 모든 행에 결과가 정확히 하나 있습니다. ‘빈틈 만들기’는 01과 10을 둘 다 0으로 만듭니다. ‘빈틈·겹침 보기’는 00이 비고 11이 겹칩니다. 표의 A·B 버튼을 직접 눌러 문제 행을 없애보세요.
04 · 표에서 얻은 발견
완전함과 충돌 없음은 서로 다른 질문입니다
모든 행에 적어도 하나의 결과가 있으면 표는 이 입력 범위에서 완전합니다. 그러나 한 행에 두 결과가 있으면 단일 결과 규칙으로서는 여전히 충돌합니다. 반대로 겹침이 하나도 없어도 0·0인 행이 있다면 규칙은 완전하지 않습니다. 두 수치를 따로 세어야 합니다.
네 행은 x와 y가 만드는 서로 배타적인 부류입니다. 어느 대상도 같은 순간 같은 의미에서 x=0과 x=1에 함께 놓이지 않는다고 정했기 때문입니다. 그래서 네 부류를 모두 검사하면 이 두 값 모형의 전체를 덮습니다. 실제 자료에서 미확인 상태가 있다면 네 행 밖에 별도 상태를 두어야 합니다.
“규칙에 문제가 있다”로 끝내지 않고, “예약 미확인·교육 이수인 01행에 결과가 없다” 또는 “예약 확인·교육 이수인 11행에서 A와 B가 함께 선택된다”처럼 입력과 결과를 함께 기록합니다.
05 · 오늘의 실제 적용
접수·권한·요금 규칙을 배포하기 전에 표로 감사할 수 있습니다
고객 접수 규칙에서 ‘긴급 여부’와 ‘계약 여부’를 입력으로, 담당 팀을 결과로 둘 수 있습니다. 네 조합을 모두 채우면 어느 요청도 담당자가 없는 빈틈을 찾을 수 있고, 한 요청이 서로 다른 팀에 동시에 배정되는 겹침도 발견할 수 있습니다. 권한 정책이라면 결과를 ‘허용’과 ‘수동 검토’로 바꾸어 같은 검사를 할 수 있습니다.
① 입력의 뜻과 0·1 기준을 고정합니다. ② 가능한 조합을 빠짐없이 만듭니다. ③ 각 규칙이 선택하는 결과를 계산합니다. ④ 결과 0개와 2개 이상인 행을 각각 모읍니다. ⑤ 의도된 예외인지 결함인지 책임자와 확인하고 테스트 사례로 남깁니다.
Object Management Group의 DMN 표준은 결정표에서 규칙이 겹칠 수 있을 때 결과를 어떻게 다룰지 히트 정책으로 명시하게 합니다. 이는 불의 1854년 저술보다 훨씬 뒤의 표준입니다. 다만 입력 공간을 부분으로 나누고 각 부분이 어떤 결과 부류에 속하는지 계산한다는 점에서 불의 부류 계산이 제공한 언어를 이어받아 설명할 수 있습니다.
06 · 바르게 쓰는 기준
두 값으로 줄인 전제와 업무의 의도를 함께 밝힙니다
0은 확인된 비해당입니다. 예약 기록을 조회하지 못한 상태를 x=0으로 넣으면 ‘예약 없음’과 ‘확인 못함’이 섞입니다. 미확인은 별도 값이나 보류 결과로 처리하고, 실제 규칙이 그 상태를 어떻게 다룰지 정해야 합니다.
‘겹침 0개’는 네 입력 조합에서 A와 B가 동시에 1인 행이 없다는 뜻입니다. 사람 수가 0명이라는 뜻도, 충돌 확률이 0이라는 뜻도 아닙니다. 빈틈·겹침 행 수와 실제 사건 빈도는 서로 다른 수치입니다.
규칙이 여러 결과를 허용한다면 AB=1은 오류가 아닐 수 있습니다. 이때는 우선순위, 모두 수집, 첫 번째 규칙 등 처리 방식을 적어야 합니다. 반대로 정확히 한 결과가 필요한 업무라면 모든 행에서 A+B의 소속 개수가 1인지 확인합니다.
불의 문제: 겹치는 부류 관계를 빠짐없는 기호 계산으로 나타내기. 불의 제안: 전체를 x와 1−x의 서로 다른 부분으로 전개하기. 오늘의 쓰임: 결정표에서 결과가 없는 행과 동시에 여러 결과가 나오는 행을 찾아 규칙을 고치기.
07 · 자료와 출처
불의 원전과 현대 결정표 자료
- 조지 불, 『An Investigation of the Laws of Thought』(1854), 제2장 — 기호, 전체 1, 여집합 1−x, 부류 연산의 법칙.
- 같은 책, 제5장 — 논리 함수를 구성 부분으로 전개하는 원리.
- Project Gutenberg, 『Laws of Thought』 서지 페이지 — 1854년 원전의 판본과 내려받기 자료.
- Object Management Group, Decision Model and Notation 1.5 — 결정표와 규칙 겹침을 처리하는 히트 정책의 공식 표준.
- OMG, DMN 1.5 공식 명세 페이지 — 명세 버전과 발행 자료.
- 조지 불 초상 판화 · Wikimedia Commons — 1865년 1월 21일 게재, 공개 영역.
