1.연구배경
일반적으로 글로벌 3자 물류(Third Party Logistics, 3PL) 는 제조공장이 위치하고 있는 한국, 중국, 베트남 등에서 제조된 제품들을 북미 등에 위치한 물류센터에서의 보관 이나 경유를 통해 미주지역이나 남미지역의 수하인에게 운송되는 일련의 통합물류 네트워크로 정의될 수 있다[1]. 3PL 업체는 다양한 업종의 화주와 창고보관, 수송, 포 워딩 업무 등 물류관련 업무에 대한 계약을 체결한 후 물류대행서비스를 제공한다[5]. 최적 물류운영을 위해서 는 혼합정수계획법 등의 수리모델을 이용해서 입고와 출 고시의 Lot 크기 및 운송수단에 대한 정책이 제시될 수 있다[10].
화주들의 물류 프로세스는 일반적으로 유사하지만 화 주의 업종과 화물의 특성에 따라 처리 로직이 다를 수 있는데 계약 시 수행범위와 함께 물류프로세스를 수립하 여 운영한다. 때로는 운영 중에도 추가로 요구사항이 발 생할 수 있기 때문에 프로세스가 변경되어야 할 필요성 이 있다. 예를 들면, 창고입고 프로세스에서는 화물하차 후 창고입고 검수를 실시한 후 검수완료한 수량을 적치 하고 입고완료 처리한다. 이때 화물의 종류 및 화주의 요 구에 따라 1차 입고검수만 수행하는 경우도 있지만 1차, 2차 입고검수를 수행하도록 요구되는 경우도 있다. 이러 한 요구는 화주와의 계약시점에서 알려질 수도 있지만 이미 운영 중인 화주에 대해서도 발생할 수 있다. 이러한 변동요인이 발생했을 때 즉각적인 대응을 해주지 못할 경우 화주로부터의 불만, 영업 손실 및 추가비용 발생 등 이 초래될 수 있다[6, 13].
3PL 업체에서는 위에서 언급된 일련의 업무를 지원하 기 위한 물류관리 정보시스템을 사용하고 있는데 다양한 업종의 화주들의 요구사항에 효율적으로 대응하기 위해 서는 필요시 솔루션 개발업체를 통해 시스템을 수정해야 한다. 즉, 새로운 업종의 화주가 추가되거나 기존 화주의 요구사항이 바뀔 때 마다 물류관리시스템을 수정하도록 요구함으로써 많은 시간과 비용이 소요되고 있다. 따라서 화주의 요구사항 및 화물의 종류에 따라 변동될 수 있는 물류프로세스 규칙을 물류관리시스템에 효과적으로 반영 하여 통합적으로 관리할 수 있는 방안이 필요해 진다[1, 3, 4, 6, 14].
비즈니스 프로세스 상에서 발생되는 업무규칙의 식별 및 적용방안에 대한 연구들이 많이 있어 왔지만 글로벌 3자 물류 프로세스에 적용한 사례에 대해서는 많은 연구 가 이루어지지 못해왔다[8, 9, 11, 12, 15]. 규칙관리를 위 해 일반적으로 가장 많이 제안되는 ECA(Event Condition Action) 기반의 규칙관리를 통해 기업의 정보시스템 과 규칙관리시스템을 독립적으로 운영하면서 연동하는 아키텍처에 대한 많은 연구가 수행되어 왔다[1, 2, 6, 7, 12]. ECA 기반으로 3자 물류 통합관리 시스템에서 규칙 관리를 하는 경우 많은 연구가 웹서비스 기반의 룰 관리 에 집중되어 있다. 따라서 중소규모의 기업에서 Legacy 3자 물류 관리시스템을 사용하고 있는 경우 현실적으로 적용하기가 쉽지 않다. 따라서 본 연구에서 제안하는 규 칙관리 모듈을 기존의 Legacy 시스템과 통합하여 화주 변경, 화물타입 변경 등 변동 상황에 대처하는 것이 적절 할 것으로 판단된다.
본 연구에서는 글로벌 3자 물류 관리 프로세스에서 발 생할 수 있는 다양한 규칙들에 대한 관리를 통해 3자 물 류 프로세스 운영을 효율적으로 지원할 수 있는 방안을 제시하고자 한다. 첫째, 글로벌 3자 물류관리에 대한 비 즈니스 규칙을 찾아내었다. 둘째. 도출된 규칙들을 내용 에 따라 객체, 관계, 비즈니스 프로세스, 정책, 표현, 의 존, 실행 및 자원 등의 카테고리로 분류했다. 이들은 체 크시점에 따라 다시 사전조건, 사후조건 및 상시조건으 로 구분하였다. 셋째, 사용자와 정보시스템이 모두 이해 할 수 있는 스크립트 형태로 비즈니스 규칙을 표현할 수 있는 문법을 제시하였다. 마지막으로 제안된 방법론의 실행가능성을 보여주기 위해 프로토타입 시스템을 구축 하였고 예제를 통해 검증하였다.
본 논문은 다음과 같이 구성되어 있다. 먼저 제 2장에 서는 글로벌 3자 물류에 관련된 규칙을 도출하였고 이 를 내용 및 체크시점에 따라 분류하였다. 제 3장에서는 규칙을 표현할 수 있는 문법을 제시하고 있으며 이를 이 용하여 도출된 규칙을 표현하는 방안에 대해 기술하고 있다. 제 4장에서는 사례연구를 통해 개발된 프로토타입 시스템의 검증 및 활용가능성을 보여주고 있으며 마지막 으로 제 5장에서는 결론 및 추후연구주제에 대해 언급하 고 있다.
2.글로벌 3자 물류관리 및 프로세스 규칙
2.1.글로벌 3자 물류관리 프로세스
본 연구에서는 국내외의 생산시설에서 제조된 화물을 국내외의 거점 물류센터에서 보관 또는 경유를 통해 수 하인에게 운송하는 3자 물류(3PL)관리 프로세스를 연구 대상으로 한다. 기준 대상지역은 미국 LA의 물류센터이 며 다른 국가에 대해서도 유사한 형태의 프로세스가 수 행된다.
<Figure 1>은 글로벌 3자 물류 관리 프로세스를 보여주 고 있는데 업무수행 주체는 포워더(Forwarder), 물류센터, 운송사, 운전자로 구성된다. 포워더는 화물이 수출지역에 서 선적되기 전부터 화물운송정보를 관리하며 화물이 수 하인에게 최종적으로 인도될 때까지 전체 물류진행을 담당 한다. 포워더는 입고프로세스에 따라 화물이 수입지역에 도착하면 보세운송을 요청하는데 이때 화물 컨테이너 또 는 차량을 수배하여 물류센터로 보내도록 지시한다. 물류 센터에서는 화물 컨테이너 또는 차량이 도착하면 화물을 검수하여 적치하고 입고완료 처리를 수행한다. 포워더는 출고 프로세스를 이용해서 화물의 출고예정일 전에 환적 계획을 작성하고 물류센터에 출고지시, 운송사에 배차지 시를 내리고 출고 관련 서류를 준비한다. 운송사에서는 배차지시에 따라 차량을 배차하고, 물류센터에서는 출고 예정정보를 확인하여 피킹(Order-picking)처리, 출고검수 를 수행한 후 배차된 빈 차량이 도착하면 상차(Loading) 를 수행한다. 운전자는 상차된 화물을 확인해서 수하인에 게 화물을 배송한다.
2.2.프로세스 규칙 식별
3자 물류(3PL) 관리업체는 다양한 업종의 화주와 창 고관리, 운송관리, 포워딩 업무 등 물류업무에 관련된 대행계약을 체결하고 계약기간 동안 물류대행서비스를 제공한다. 일반적으로 화주들의 물류 프로세스는 유사한 흐름으로 진행되지만 화주의 업종과 화물의 종류, 특성 에 따라 물류 프로세스에 적용되어야 할 업무규칙이 상 이하거나 종종 변경 될 수 있어 이에 대한 관리가 필요 하다.
<Table 1>에는 글로벌 물류관리 프로세스에서 화주의 업종과 화물의 특성에 따라 다르게 적용되어야 할 물류 프로세스 규칙의 예가 수록되어 있다. 본 연구에서는 입 고 및 출고 프로세스만을 대상으로 하였다.
2.3.프로세스 규칙의 분류
프로세스 규칙들은 객체, 관계, 비즈니스 프로세스, 정 책, 표현, 의존관계, 실행, 관리 등의 카테고리로 분류 하 였다. 객체(Object)에는 물류 프로세스 상에 존재하는 데 이터의 형식이나 정의 등에 대한 규칙들을 포함하고 있 다. 관계(Relation)에는 단위업무(Activity) 내 또는 단위 업무간의 두 데이터 값 사이의 관계에 대한 규칙을 포함 하고 있다. 비즈니스 프로세스(Business Process)는 객체 값에 따라 프로세스가 변경되어야 하는 규칙들을 포함하 고 있다. 정책(Policy)은 물류 프로세스 상에서 의 규정이 나 법령 등을 포함하고 있다. 표현(Representation)은 데 이터의 표현형식에 대한 규칙들을 포함한다. 의존관계 (Dependancy)는 단위업무 간의 수행조건에 대한 규칙들 을 포함하고 있다. 실행(Execution)은 프로세스에서 단위 업무 실행에 대한 규칙들을 포함한다. 관리(Management) 는 비즈니스 프로세스에서 원활한 수행을 위해 관리되어 야 할 관리요소들에 대한 규칙을 포함한다.
위의 규칙들은 이들이 적용되는 시점에 따라 다시 사 전조건(Precondition), 사후조건(Postcondition) 및 상시조 건(Invariant)으로 분류하였다. 사전조건은 단위업무가 시 작되기 전, 사후조건은 단위업무가 완료된 후, 상시조건 은 단위업무가 수행 중일 때 체크되어야 할 규칙들을 의 미한다. 이들 규칙은 사용자와 응용프로그램이 모두 이 해할 수 있는 스크립트 문장으로 변환되어 글로벌 물류 관리 시스템의 단위업무 수행 시 적용된다.
3.프로세스 규칙관리 방안
3.1.규칙 정의 문법
글로벌 3자 물류관리 시스템에 적용되어야 할 비즈니 스 규칙 관리를 위해 ECA(Event-Condition-Action) 규칙 모델을 확장하여 트리거 형태의 RuleTrigger를 제안하였다. 즉, RuleTrigger는 Park[11]에서 제안된 BPTrigger를 3자 물류 프로세스에 적용할 수 있도록 확장하여 정의하였다.
RuleTrigger는 글로벌 물류관리 시스템에서 물류프로 세스 상의 단위업무가 실행될 때 <Table 1>에 표시된 것 과 같은 3PL 규칙을 식별하여 정의한 후 단위업무 수행시 규칙존재 여부를 체크한 후 관련 규칙을 적용하도록 설계 하였다. ECA 모델에서 이벤트(Event)에는 단위업무에 규 칙을 적용하는 시점이나 사건을 명시한다. 조건(Condition) 에는 규칙의 실행여부를 평가하기 위한 조건식을 명시한 다. 액션(Action)에는 조건식이 참일 때 수행할 함수나 명 령문을 명시한다. 조건을 평가한 후 참이면 트리거에 명 시된 액션이 실행되고 거짓이면 마찬가지로 명시된 대체 액션이 존재하면 실행된다. 예외처리(Exception)에는 조 건을 검사하는 중에 오류가 발생하면 처리해야 할 명령문이 표현된다. <Figure 2>는 BNF 표기법을 이용하여 RuleTrigger 를 정의한 문법을 보여주고 있다. RuleTrigger는 다음과 같이 구성된다.
-
규칙 이름(<rule-name>) : 규칙을 식별할 수 있는 고유 명칭
-
테이블 명(Table Name) : DB 테이블의 명칭
-
필드 명(Field Name) : 테이블의 필드 명칭
-
변수(Variable) : 조건식에서 사용될 변수 명
-
데이터 소스(Data Source) : 데이터 질의어(SQL)
-
인스턴스(Instance) : 프로세스에서 규칙을 적용할 대상 이 되는 객체
-
규칙적용 시점(Precondition | Postcondition | Invariant) : 규칙의 체크시점(사전|사후|상시)을 명시
-
단위업무 명(Activity Name) : 규칙이 적용될 프로세스 상의 단위업무 이름
-
조건(Condition) : 실행여부를 평가하기 위한 조건
-
액션(Action) : 조건문의 판단결과에 따라 수행되어야 할 동작
-
예외처리(Exception) : 오류가 발생하면 처리할 내용
3.2.글로벌 3자 물류관리 프로세스 규칙의 표현
3.2.1.사전조건을 표현한 예
사전조건(Precondition)이 단위업무에 지정된 경우, 해 당업무가 시작되기 전에 규칙을 체크 한다. <Figure 3>은 <Table 1>의 입고완료처리 규칙 PCR1을 RuleTrigger로 표현한 예이다. 입고 프로세스에서는 입고완료처리를 하 기 전에 신규제품인 경우 실측(CBM : Cubic Meter) 정보 등록을 먼저 완료해야 한다. 따라서 입고완료처리를 수 행하기 전에 실측정보 등록이 되어있는지 확인되어야 하 고 조건을 판단해서 등록이 되어 있지 않은 경우 먼저 CBM 등록을 완료한 후 입고완료 처리를 한다.
3.2.2.사후조건을 표현한 예
사후조건(Postcondition)이 단위업무에 지정된 경우, 해당 업무가 완료된 후 규칙을 체크 한다. <Figure 4>는 <Table 1>의 운송출발처리 규칙 TSR1을 RuleTrigger로 표현한 예이다. 화주가 요청에 따라 도착지에 냉동시설 등 사전 준비가 필요한 경우, 운송출발처리 완료시 도착지에 사전 통지가 완료되어야 한다. 따라서 도착지 사전통지여부를 확인하는 사후조건 규칙이 적용되고 조건에 따라 도착지 사전통지 여부를 결정한다.
3.3.규칙관리 방안 및 프로토타입 시스템
프로세스 규칙 관리를 통합한 글로벌 물류관리 시스 템에서는 WMS/TMS 업무를 위한 부분과 규칙 관리 부 분이 상호연동이 필요한데 <Figure 5>에 표현된 것과 같 이 WMS/TMS 모듈과 규칙 모듈(Rule Module)로 구성되 어 있다. WMS/TMS 모듈은 클라이언트 인터페이스 서브 모듈과 비즈니스 로직 서브모듈로 구성되어 있고, 규칙 모듈(Rule Module)은 규칙 관리자와 설정 관리자로 구성 되어 있다. 프로토타입 시스템은 Microsoft Visual C# 2010 과 Oracle Database 환경에서 개발되었으며 <Figure 7>은 프로토타입 시스템의 규칙관리자를 실행한 화면이다.
3.3.1.클라이언트 인터페이스(Client Interface)
사용자가 글로벌 물류관리 업무를 수행할 때 작업처 리를 수행하는 사용자 인터페이스이다. 주문관리, 창고 관리, 운송관리로 구성되며 <Figure 1>의 글로벌 물류관 리에 표현된 단위업무(Activity)들이 포함된다.
3.3.2.비즈니스 로직 모듈(Business Logic Module)
주문관리, 창고관리, 운송관리 업무의 비즈니스 로직 모듈로 구성되어 있다. 데이터 변환이나 각종 연산을 위 한 공통 기능이 비즈니스 로직모듈에 포함되어 있으며 클라이언트 인터페이스를 통해 비즈니스 로직 모듈을 호 출하여 필요한 작업처리를 수행할 수 있다.
3.3.3.규칙 관리자(Rule Manager)
규칙 관리자는 규칙을 생성하고 생성된 규칙에 대한 검색 기능을 포함하고 있다. 프로세스 상의 단위업무 수 행시 규칙 체크시점에서 규칙관리자에게 규칙존재 여부 확인을 요청하면 규칙관리자는 규칙 DB에서 검색하여 구문분석(Parsing)을 수행한 후 수행결과를 반환한다. 규 칙의 조건을 평가해서 만족하면 결과를 반환받은 규칙실 행자가 규칙에 명시된 동작을 수행한다. <Figure 6>은 규 칙 질의 함수의 예를 보여주고 있다.
3.3.4.설정 관리자(Configuration Manager)
설정 관리자는 시스템 운영에 필요한 파라미터 변수 들을 관리한다. 시스템 전반에 설정되어야 할 변수 값이 나 화주별로 설정되어야 할 파라미터 값들이 지정되며 이들은 규칙관리에서 사용된다.
3.3.5.규칙 데이터베이스(Rule DB)
프로세스 규칙들은 규칙 테이블, 화주테이블 및 규칙 &화주 테이블로 구성되어 규칙 DB에 저장된다. 규칙& 화주 테이블에는 규칙 테이블과 화주 테이블간의 다대다 관계 매핑이 저장된다.
4.사례연구
4.1.시나리오 및 프로세스 규칙
일반적으로 물류관리 시스템의 출고 프로세스에서는 물류센터 담당자가 화물을 상차하고 출고처리를 완료한 후 운송차량에 대한 출발처리를 완료한 시점에서는 화물 도착지에도 화물출발에 대한 사전통지가 되어 있어야 한 다. 포워더는 물류센터로부터 운송차량에 대한 출발정보 를 통보받아 도착지에 사전통지를 보내야 한다. 도착지 에 사전통지가 되어있지 않으면 도착지 사전통지가 완료 되어야 운송차량이 출발할 수 있는 프로세스 규칙이 깨 지게 된다.
한편, 특정 화주가 도착지에 사전통지를 보통과 다 르게 좀 더 일찍 보내달라는 요청을 추가해서, 즉, 운송 출발처리 업무가 아닌 운송지시서(DO : Delivery Order) 출력을 완료한 후 도착지의 사전통지완료 여부를 확인해 야 하는 돌발 상황이 발생한 경우를 살펴보자. 즉, 운송 출발처리 업무 대신에 DO 출력 업무의 사후조건으로 사 전통지완료 규칙의 체크시점을 변경해야 하는 경우가 발 생된다. 본 논문에서는 시스템의 소스코드를 수정하지 않고 규칙(Rule)을 적용하여 이 문제가 해결되는 것을 보 여주고자 한다.<Figure 7>
4.2.규칙의 적용 및 실행 결과
<Figure 8>의 트리거(RuleTrigger)는 DO출력이 완료될 때 도착지에 사전통지가 되어있지 않으면 도착지 사전통 지를 완료하는 규칙으로 A화주(LGEKR)에 적용되도록 설 정하였다. <Figure 8>의 규칙을 프로토타입 시스템의 규 칙관리자에 등록한 후 단위업무에 지정된 규칙이 정상적 으로 처리되는지 확인하였다. DO 출력 단위업무에 대한 규칙이 정상적으로 처리되는지 확인하기 위해 배차오더 를 선택해서 DO 출력을 실행한다. <Figure 9>는 DO 출력 단위업무를 수행한 결과이다. 화주별로 체크시점의 규칙 호출 부분과 조건을 평가한 후 동작(Action)이 실행되는 화면을 볼 수 있다. <Figure 8>의 트리거를 적용받는 A화 주(LGEKR)의 경우, 규칙호출 후 도착지 사전통지가 완 료되지 않은 상태이므로 트리거 조건을 만족하게 되어 트 리거 액션으로 도착지 사전통지를 실행한다. 다른 화주의 경우, 트리거를 적용받지 않으므로 추가로 실행되는 액션 이 없다. 따라서 규칙관리자를 글로벌 물류시스템에 통합 하여 실행한 결과, 소스코드를 수정하지 않고 화주별 상 이한 규칙의 적용이 가능함을 확인할 수 있다.
5.결론 및 추후연구
본 연구에서는 글로벌 3자 물류 관리에서 시스템 도입 초기 또는 운영 중 화주의 업종, 화물의 특성에 따라 발 생 또는 변경되는 규칙을 상황에 맞게 적용하여 물류프 로세스를 효율적으로 운용하는 것을 지원할 수 있는 방 안을 제시하였고 이에 대한 실현가능성을 보여주기 위해 프로토타입 시스템을 구현하였다. 제안된 방안을 통해 3PL 업체는 화주의 요구사항에 신속하고 유연하게 대처할 수 있고 신규 화주고객 유치에도 긍정적으로 기여할 것으로 기대된다.
먼저, 글로벌 3자 물류 관리 프로세스와 단위업무(Activity) 를 조사하여 빈번하게 변경될 수 있는 규칙을 식별 하였다. 식별된 규칙을 객체, 관계, 비즈니스 프로세스, 정 책, 표현, 의존관계, 실행, 관리 등의 카테고리로 정리하 였고 규칙 체크시점에 따라 다시 사전조건(Precondition), 사후조건(Postcondition), 상시조건(Invariant)으로 분류하 였다.
다음으로, 사용자와 컴퓨터가 모두 해석할 수 있는 스 크립트 형태로 규칙을 표현하기 위해 RuleTrigger 문법을 제안하였다. RuleTrigger는 규칙을 식별하고 조건을 확인 하여 필요시 액션을 수행하도록 설계하였다.
마지막으로, 제안한 규칙관리 방안의 실현 가능성을 검 증하기 위하여 글로벌 물류관리 프로토타입 시스템을 개 발하고 사례에 적용하여 검증하였다. 사례에서는 글로벌 3자 물류관리 시스템에 규칙관리를 적용하여 규칙을 관 리하는 것이 가능하며 특정 규칙을 적용받는 화주를 지정 하여 유연하게 대처할 수 있음을 확인하였다. 추후 연구 과제로는 기존의 다양한 물류정보시스템과 제안된 규칙 관리자를 연동할 수 있는 방안이 필요 하다. 또한 본 논문 에서 제안된 규칙관리 방법론과 유사한 기법들의 성능평 가 및 비교에 대한 추가연구가 필요하다.