제시문
업무 프로세스를 시각적으로 표현하는 모델링 언어 표준인 BPMN을 제정한 표준화 단체에서, 의사결정을 명시적으로 모델링하는 표준인 DMN을 발표하였다. BPMN으로 전체 업무 처리 과정을 모델링하고, DMN으로는 의사결정과 관련한 사항을 모델링할 수 있다. BPMN으로 복잡한 의사결정을 관리하는 데 한계가 있어, 별도 표준인 DMN을 개발하였다. BPMN 모델의 비즈니스 규칙 태스크에서 DMN 모델의 의사결정 테이블을 호출하는 방식으로 두 표준이 연동되어 활용된다. 그런데 전략적 의사결정은 의사결정 규칙이 불명확하고, 다양한 분석이 요구되므로 모델링하여 자동화하기는 매우 어렵다. 예를 들어 조직의 성패를 결정할 신제품 개발이나 기업의 인수합병과 같이 불확실성이 크고 위험을 수반하는 의사결정에 DMN을 적용하는 것은 부적절하다. DMN은 은행의 대출 승인 결정이나 보험회사의 보상금 결정과 같이 정해진 절차와 규칙에 따라 수행되는 일상적인 운영 의사결정을 자동화하는 데 효과적이다.
기존에는 개발자가 의사결정과 관련한 로직을 프로그래밍 언어로 코딩하여 애플리케이션으로 구현하였다. 이 방식에서는 애플리케이션 코드에 의사결정 로직을 구성하는 여러 규칙이 혼재해 의사결정 로직의 가시성이 낮으며, 로직이 복잡할수록 구현의 난도가 높아진다. 또한 경영 환경이 변하면 의사결정 로직도 신속하게 변경해야 하지만, 개발자가 코드를 수정해야 하므로 즉각적인 반영이 어렵다. 이 문제는 DMN을 사용하면 그래픽 다이어그램과 테이블 형태로 의사결정을 명시적으로 모델링하여 해결할 수 있다. 이처럼 의사결정 로직을 애플리케이션에서 분리하여 모델링하면, 개발자에게 의존하지 않고 업무 담당자가 자신이 주관하는 업무 규칙을 빠르고 유연하게 변경할 수 있다.
㉠++DMN 모델링++을 통해서는 의사결정 요구 다이어그램(DRD)과 의사결정 로직을 작성한다. DRD는 의사결정 모델링의 시작점으로 불리는데, 〈그림 1〉과 같이 맨 하위에 ⬭로 표시된 입력 데이터와 그 상위에 ▭로 표시된 의사결정 노드 간 연결선으로 의사결정의 전체 구조를 표현한다. 입력 데이터는 의사결정 노드의 입력으로 제공되며, 하위 의사결정 노드의 결과로 생성된 데이터는 상위 노드의 입력으로 전달된다. 각 노드의 의사결정 로직은 의사결정 테이블로 세부 규칙을 작성하는데, 이를 위해 간단하고 직관적인 문법을 제공하여 업무 담당자와 개발자가 모두 쉽게 활용할 수 있는 언어인 FEEL을 사용한다. 의사결정 테이블에서는 각 규칙을 행으로 나열하고 규칙의 조건과 결과를 구분하여 열로 정의한다. 규칙의 조건 열에는 의사결정의 입력을 표기하며, 조건 열이 여럿인 경우 각 조건을 AND로 해서 논릿값을 계산한다. 각 규칙은 자신의 조건이 참일 경우 테이블에 규정된 출력을 결과 열에 산출한다.
〈그림 2〉의 의사결정 테이블은 이자율과 신청 금액에 따라 수익성을 결정하는 의사결정 로직을 보여 준다. 입력 셀에는 FEEL로 조건식을 기술하는데, 문자열 값의 단순 비교부터 숫자의 크기 비교, 숫자 구간 등의 다양한 조건식이 사용된다. 이 예에서는 이자율과 신청 금액이라는 숫자형 변수가 조건 열에 사용되는데, '<'와 '>='는 값의 크기를 비교하는 연산자이며, '[p..q]'는 경곗값을 포함하는 숫자 구간을 나타낸다. 예를 들어 [2..5]는 2 이상 5 이하, ]2..5[는 2 초과 5 미만의 구간을 의미한다. 입력 셀에 '−'라고 표기된 경우 해당 조건은 항상 참으로 간주한다. 의사결정 테이블의 상단에는 여러 규칙이 동시에 만족될 때 이를 어떻게 처리할지를 설정하기 위한 적중 정책을 표기한다. 오버랩을 허용하지 않고 동시에 하나의 규칙만 만족되도록 규칙을 관리하는 방식인 '유일' 정책이 기본값이다. 한 번에 여러 규칙이 적용 가능한 경우에는 처음으로 만족되는 규칙을 적용하는 '최초' 정책과 규칙의 우선순위 값에 따라 적용 규칙을 선정하는 방식인 '우선순위' 정책 등 상황에 따라 적절한 적중 정책을 지정한다.
6. 〈보기〉의 사례에서 DMN을 활용할 때 적절하지 않은 것은?
〈보 기〉
P사는 자동차 보험료 산정을 위한 위험도 결정 업무를 자동화하기 위해 다음의 세 단계로 의사결정 모델링을 수행한다.
단계 1: DRD 작성
Ⓐ 입력 데이터로 운전 경력, 자동차 가격, 자동차 출력(HP)을 제공함.
Ⓑ 자동차 가격과 출력을 기준으로 자동차 유형을 결정함.
Ⓒ 운전 경력과 자동차 유형을 기준으로 위험도를 결정함.
단계 2: 자동차 유형 의사결정 로직 정의
Ⓐ 2억 원 초과의 자동차는 럭셔리카로 분류함.
Ⓑ 5백만 원 미만의 자동차는 스크랩카로 분류함.
Ⓒ 5백만 원 이상 2억 원 이하면 자동차 출력을 기준으로 분류함.
∙120 HP 초과: 스포츠카
∙120 HP 이하: 패밀리카
단계 3: 위험도 의사결정 로직 정의
Ⓐ 3년 이하의 운전 경력이거나 럭셔리카: 위험도 5
Ⓑ 패밀리카이고, 3년 초과의 운전 경력: 위험도 2
Ⓒ 스포츠카이면 운전 경력에 따라 다음과 같이 결정함.
∙5년 초과: 위험도 2
∙3년 초과 5년 이하: 위험도 3
Ⓓ 스크랩카: 운전 경력과 무관하게 위험도 1
- 단계 1에서 작성한 DRD에 포함된 2개의 의사결정 노드는 단계 2와 단계 3을 통해 구체화된다.
- 단계 2와 단계 3에서 작성하는 각 의사결정 테이블은 입력으로 2개의 열을, 결과로 1개의 열을 포함한다.
- 단계 2의 결과가 스포츠카로 결정되는 경우 단계 3의 Ⓒ가 요구하는 규칙을 작성하려면, 의사결정 테이블에 2개의 행이 요구된다.
- 단계 2의 Ⓒ가 요구하는 자동차 출력 조건식과 단계 3의 Ⓑ가 요구하는 운전 경력 조건식에서 모두 숫자 구간이 사용된다.
- 적중 정책이 '유일'일 때 단계 3에서 Ⓓ를 고려하여 Ⓐ가 요구하는 규칙을 완성하려면, 운전 경력 조건식과 자동차 유형 조건식이 포함된 규칙을 작성해야 한다.