11.20
주요뉴스
뉴스홈 > 기고
[기술강좌] BRE에서의 추론처리와 비추론처리코리아엑스퍼트 허종원 부사장
Business Rule Engine(BRE)이 보편화되면서, 많은 사람들이 혼란을 겪고 있는 부분 중의 하나가 추론기능이라고 할 수 있다. 추론이란 것이 무엇을 의미하며, 추론기능은 어떤 역할을 하는 것인가, 또한 어떻게 사용하는 것인가, 등등의 의문에 대하여 논리적인 설명을 제시하는 경우도 그리 많지는 않으며, 이것에 대한 설명을 들어도 잘 이해되지 않는 경우가 많다. 그렇다면, 추론이 과연 BRE를 사용함에 있어서 필수조건인가? 만약 필수조건이라면 이것을 이해하지 않고는 BRE를 사용할 수 없다는 이야기가 된다.

먼저 이에 대한 답은'아니오'이다. BRE를 사용함에 있어서, 추론이 필수기능이라고 할 수는 없다. 추론기능을 사용하지 않고도 Business Rule을 처리할 수도 있다. 그렇다면, 왜 골치 아프게 추론이란 기능을 제공하는 것인가? 더욱이, 세계시장에서 경쟁을 하는 주요 BRE 제품들은 대부분 추론기능을 제공하고 있다. BRE 제품을 제공한 역사가 오랜 제품이건, 새로이 출시된 유망벤처의 제품이건, 모두 추론기능을 제공하고 있다. 필수기능도 아니면서 왜 다들 추론기능을 제공하는 것일까?

과거 보험업계를 중심으로 널리 사용되었던 Rule DB는 이러한 추론기능을 포함하고 있지는 않다. 그러나 그 나름의 목적에 충실히 적용되어 많은 효과를 입증하였다. 시스템을 운영하면서 여러 문제점들이 도출되었으며, 이에 대한 대안으로 제시된 것이 BRE이다. 기존의 Rule DB가 Rule을 변수 값 중심으로 정의하고, 실질적인 Rule 처리는 프로그램에 의존함으로써, 발생되었던 처리 로직의 유지보수에는 한계를 보였으며, DB 사용에 따른 Rule 증가시의 속도저하, Rule 표현의 제한, 자체 개발된 Rule Engine의 개선 어려움, 등으로 겪는 어려움을 BRE는 해소해주기 때문이다.

그러나 이것만이 BRE가 제공하는 장점만은 아니다. BRE의 가장 큰 장점이자 혜택은 사실 추론기능에서 나온다. 이미 Rule 기능을 부분적으로 보유하고 있는 BPM 솔루션 업체들이 BRE 업체들과 공동전선을 구축하는 이유도 여기에 있다. 과거 인공지능에 뿌리를 두고 있는 추론기능은 인간에 의존하는 많은 업무들을 자동화시켜 주는 역할을 수행한다. 이를 통하여 BPM이 추구하는 효율성 극대화를 이룰 수 있는 것이다.

과거의 BRE들은 대개 추론중심의 BRE와 일반 업무를 위한 DB기반의 BRE로 나뉘어 있었으며, 현장에서 널리 사용되던 BRE는 DB기반의 BRE이다. 그러나 추론중심의 BRE가 DB기반의 BRE가 제공하는 기능을 흡수함으로써, 최근 시장에서 사용되는 BRE들은 대부분 추론과 일반 업무용, 즉 순차실행을 모두 지원한다. 또한, BPM에서 보는 바와 같이, 민첩성(Agility) 부여를 위해서는 추론기능의 역할이 중요하다.

RTE(Real-Time Enterprise)를 지향하며, 시스템을 구축하고 있는 현 상황에서 BRE는 단순 Rule 처리만으로 그 요구를 충족시킬 수 없다. 따라서 BRE가 제공하는 Rule 처리기능을 최대한으로 활용함으로써 그 요구를 충족시켜야 한다. 이를 위해서는 BRE의 Rule 처리방식에 대한 이해는 필수적이라고 할 것이다.

BRE의 Rule 처리
현재 널리 사용되는 BRE 제품들은 일반적으로 순차방식의 Rule 처리와 추론방식의 Rule 처리라는 두 가지 Rule 처리방식을 제공한다. BRE 애플리케이션 개발자는 필요에 따라, 이들 방식을 선택적으로 사용한다. 이들 두 가지 방식은 처리방식이 다르며, 이에 따라 사용하는 용도도 다르다.

순차처리 방식은 Rule들을 순서에 따라 하나씩 처리해 나아가는 방식이다. 대개 처리 순서는 Rule을 입력하고 정의할 때 결정된다. Rule Engine은 Rule Base에 있는 첫 번째 Rule에서 마지막 Rule까지 하나씩 순서대로 처리를 하고, 종료를 한다. 따라서 한번 처리된 Rule을 다시 실행하지는 않는다. 만약 한번 처리된 Rule을 다시 실행하고자 한다면, 이를 위한 조치를 하여야 한다. 이는 프로그램을 작성하는 것과 유사하다. 즉, 프로그램의 한 줄, 한 줄을 처리해 나아가는 것과 같은 방식이다.

반면에, 추론방식은 주어진 정보와 관련 정보를 대상으로 적용할 Rule을 Rule Engine이 선택한다. 그 Rule은 37번 Rule일 수 있으며, 필요에 따라서는 99번 Rule일 수도 있다. 일단 선택된 Rule이 실행되고 나면, Rule Engine은 그 다음 실행할 Rule을 선택한다. 처음에 37번 Rule을 선택한 경우, 순차처리 방식이라면, 반드시 그 이후의 Rule이 처리되게 될 것이다.

그러나 추론방식에서는 Rule Engine이 스스로 선택하므로, Rule의 순서는 중요하지 않다. 37번 Rule을 선택한 후, 21번 Rule이 선택될 수도 있다. 즉, 추론방식에서의 Rule은 개별 Rule이 독립된 Rule이며, 이들 중 어느 Rule을 선택할 것인가 하는 것은 Rule Engine이 결정할 문제인 것이다.

일반적으로 가장 널리 사용되는 방식은 순차처리 방식이다. 여기에는 여러 가지 이유가 있다. 가장 큰 이유는 대부분의 간단한 Rule 적용업무들은 복잡한 추론을 요구하지 않는 단순 Rule 처리인 경우가 많다. 그렇다면, 이런 단순한 Rule 처리를 위하여 고가의 BRE 솔루션을 사용할 필요가 있는 것일까? 물론, 유지보수 측면에서의 편의성과 비용절감을 들어, BRE 적용의 타당성을 설명할 수도 있다.

그러나 현재 BRE 솔루션들의 가격과 이를 이용하여 시스템을 구축하는 비용을 생각한다면, 단순 Rule로 이루어진 단순 작업들에 그렇게 많은 비용을 투자할 이유는 줄어들게 될 것이다. 아마도, 순차처리 방식을 사용하는 보다 더 큰 이유는 BRE에 대한 이해부족과, 추론에 대한 이해 부족으로 인하여 이를 자유롭게 사용할 수 없는 개발자들이 기존의 개발방식을 고수하는 데에 있다고 할 수 있다.

즉, 프로그램 개발에서와 같이, 흐름을 제어하고 이를 통하여 시스템을 구축하는 개발방식에 익숙한 개발자들이, 추론에 대한 이해와 활용에 앞서, 자신들이 하던 방식을 그대로 고수하고자 함으로 인하여, 순차처리 방식을 선호하는 경향이 많다.

순차처리 방식은 Rule 처리 순서를 Rule 입력하는 개발자나 관리자가 결정하게 되지만, 추론에서는 Rule Engine이 결정하게 된다. Rule Engine이 어떤 결정을 내릴지 확신이 서지 않는 개발자 입장에서는 이러한 두려움을 피하고자, 자신의 과거방식을 고수하는 것이다.

추론방식은 사실 순차처리 방식보다 훨씬 쉬운 방식이다. 순차처리 방식에서는 업무의 성격을 분석하여, 경우의 수를 고려하고, 이에 따라 순서를 결정하는 작업이 필요하지만, 추론방식에서는 이러한 복잡한 생각 없이, 그냥 Rule을 입력하기만 하면 된다. 이러한 이유로, 추론방식의 시스템 개발은 되레 개발경험이 없는 일반 사용자가 더 잘 적응하는 경우가 많다.

일단 관련된 Rule들을 입력해주면, Rule Base에 저장된 Rule의 범위 내에서 Rule Engine이 자동으로 결과를 도출해주기 때문에, 순서와 흐름과 같은 IT적인 사고를 하지 않아도 되기 때문이다. 이러한 추론은 사실 인간이 사고하는 방식을 모방한 것이다. 인간의 두뇌에 저장되어 있는 각종 지식(Rule)은 순서에 맞게 쌓여져 있는 것이 아니다. 인간은 어떤 상황이 발생했을 때, 자신이 지니고 있는 지식들 중에서 해당되는 지식을 생각해내서(검색해서) 이를 적용함으로써 문제를 해결해 나아간다.

만약 지식이 부족하다면, 충분한 결과 값을 얻지 못할 것이다. 추론도 마찬가지로, Rule이 충분히 입력되어 있지 않다면, 충분한 결과 값을 출력하지 못한다. 그러나 순차방식에서 Rule이 부족하다면 어떤 결과 값을 얻게 될 것인가? 프로그램 방식의 영향을 받겠지만, 원칙적으로 생각하면, 순차방식에서의 Rule의 부족은 처리과정의 생략을 의미하며, 오류가 발생하게 될 것이다.

일반적 프로그램 코딩방식의 순차처리 방식과 인간의 사고행태를 모방한 추론방식의 차이는 Rule Engine의 구조는 물론, 적용되는 영역에서도 차이를 나타낸다. 일반적으로 순차처리 방식은 일반 프로그래밍과 유사한 성격의 업무에 사용되며, Rule의 특성과 BRE가 제공하는 유지보수 용이성을 이용한 고급 정보서비스 업무에 주로 사용된다.

반면에, 추론방식은 인간의 사고행태를 모방하고 있어, 인간의 사고와 같은 지식기반의 처리가 필요한 업무에 주로 사용된다. 이러한 업무들은 대개 고부가가치를 지닌 업무들이며, 이들 업무를 자동화하여 줌으로써, BRE는 그 가치를 더욱 인정받게 되는 것이다. 이러한 BRE의 활용은 최근 BPM에서의 적용이 그러한 단적인 예이다. 단순한 Routing Rule의 처리는 이미 BPM 솔루션들이 제공하고 있다.

그러나 그러한 수준의 Rule을 이용하여 업무 프로세스를 개선함에는 한계를 지니고 있다. Routing Rule도 단순 Rule이 아닌 추론을 요구하는 경우가 있으며, 프로세스상의 업무도 BRE를 적용하여 자동화함으로써, 프로세스 전반의 효율을 개선하도록 하는 것이다.

그렇다면, 추론은 반드시 추론을 필요로 하는 업무에만 적용되는 것일까? 반드시 그렇지만은 않다. 현장에서 사용할 때에는 간혹, 순차처리 Rule을 처리하면서, 이를 일부러 추론 모드로 실행시키기도 한다. 일반적으로, 추론은 하나의 Rule을 적용할 때마다, Rule Engine이 다음 Rule을 찾아야 하므로, 다음 Rule이 미리 정해져 있는 순차처리 방식에 비하여 Rule처리 속도가 느린 것으로 알려져 있다. 이는 대부분의 BRE 업체들이 제시하는 Rule Engine의 성능 수치에도 잘 나타나 있다.

Blaze Advisor의 경우, PC환경에서 추론모드를 실행시키면 초당 약 1만여 개의 Rule을 처리한다. 반면에 순차처리 모드에서는 3만개 이상의 Rule을 처리하며, 순차처리 모드를 최적화한 컴파일드 모드에서는 약 30만개까지 처리한다. 이러한 수치를 보면, 당연히 순차처리 방식이 추론방식에 비하여 훨씬 빠르다.

이를 근거로, 어떤 BRE 담당자는 속도개선을 위하여 추론모드를 순차처리 모드로 변경하여 속도를 개선시킬 수 있다고 설명하기도 한다. 이는 순차처리와 추론에 대한 이해 부족에 기인한다. 이 수치는 단순하게 초당 처리되는 Rule의 수를 의미할 뿐, 최종 결과에 도달하는 시간을 의미하는 것은 아니다.

더군다나, 앞서 설명한 바와 같이, 순차실행 방식과 추론방식은 서로 작동되는 행태가 다르므로, 동일한 Rule을 대상으로 순차실행에서 추론으로 실행모드를 변환하는 경우에는 전혀 다른 결과를 얻을 수도 있다.

<그림 1>의 예에서 생각해보면, 우측의 추론방식으로 개발된 Rule에서는 2번째 Rule이 3번째로 실행된다. 만약 이러한 Rule Base에 순차실행 방식을 적용한다면, 순차실행 상태에서 마지막 Rule이 실행된 후, 그 이전의 Rule을 실행하지는 않으므로, 2번째 Rule은 실행되지 않고 끝나게 될 것이다. 따라서 결과 값은 전혀 다르게 나오게 된다.

역으로, 추론모드를 일부러 순차처리 모드에 적용하는 경우가 있을 수도 있다. <그림 1>과 같이 추론모드로 실행을 하여도 순서가 변경되지 않도록 Rule이 설정되어 있고, 모든 Rule이 중복 실행되는 일이 없다면, 순차처리 결과와 추론처리 결과가 같을 것이기 때문이다.

이 경우, 만약 Rule의 수가 매우 많지만, 실제로 조건이 참이 되어 실행될 Rule은 적은 경우, 예를 들어, 10,000개의 Rule이 있지만, 실행단계에서는 항상 5개 내외의 Rule만이 실행된다면, 1번부터 10,000번까지의 모든 Rule을 검사하고 실행하는 순차모드에 비하여, 단지 5개 내외의 Rule만 선택하여 실행하는 추론모드가 훨씬 더 빠르다. 따라서 추론목적이 아닌 경우에도, 속도 개선을 위하여 추론방식을 선택하기도 한다.(단, 이 경우는 오류방지를 위한 검증과 확인이 필수적이다.)

결론적으로, 순차방식과 추론방식은 일반적으로 다른 용도로 사용되며, BRE는 추론방식을 제공함으로써, 그 가치를 더욱 인정받는 것이다. 물론, 모든 업무가 추론방식을 적용할 업무는 아니다. 그러나 대부분의 추론적용 업무는 투자대비 효과가 매우 높은 고부가가치가 기대되는 업무이다. 따라서 BRE의 도입을 통하여 단순한 유지보수 효율화 이상의 높은 기대효과를 거두기 위해서는 추론기능의 효과적 활용이 필수적이다.

필자 ; 허종원
코리아엑스퍼트 부사장


여백
컴퓨터월드 추천기업 솔루션
인기기사 순위
IT Daily 추천기업 솔루션
(우)08503 서울특별시 금천구 가산디지털1로 181 (가산 W CENTER) 1713~1715호
TEL: 02-2039-6160  FAX: 02-2039-6163   사업자등록번호:106-86-40304
개인정보/청소년보호책임자:김선오  등록번호:서울 아 00418  등록일자:2007.08  발행인:김용석  편집인:김선오