KR102276230B1 - Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same - Google Patents

Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same Download PDF

Info

Publication number
KR102276230B1
KR102276230B1 KR1020190148702A KR20190148702A KR102276230B1 KR 102276230 B1 KR102276230 B1 KR 102276230B1 KR 1020190148702 A KR1020190148702 A KR 1020190148702A KR 20190148702 A KR20190148702 A KR 20190148702A KR 102276230 B1 KR102276230 B1 KR 102276230B1
Authority
KR
South Korea
Prior art keywords
state
event
machine
state machine
finite state
Prior art date
Application number
KR1020190148702A
Other languages
Korean (ko)
Other versions
KR20210060998A (en
Inventor
김현승
조규태
Original Assignee
주식회사 카카오뱅크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 카카오뱅크 filed Critical 주식회사 카카오뱅크
Priority to KR1020190148702A priority Critical patent/KR102276230B1/en
Publication of KR20210060998A publication Critical patent/KR20210060998A/en
Application granted granted Critical
Publication of KR102276230B1 publication Critical patent/KR102276230B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0212Chance discounts or incentives
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0235Discounts or incentives, e.g. coupons or rebates constrained by time limit or expiration date

Abstract

유한 상태기계 생성 방법이 개시된다. 본 방법은 유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보와 해당 상태에서 실행되어야 할 액션 정보를 할당하는 단계, 복수의 상태 각각에 대하여 해당 상태에서 이후 상태로의 전이를 위한 이벤트 정보를 할당하는 단계 및 할당된 상태 정보, 액션 정보 및 이벤트 정보를 이용하여 유한 상태기계를 생성하는 단계를 포함한다. 여기서, 생성된 유한 상태기계는 서비스 페이지를 통한 고객의 입력에 대응되는 사용자 이벤트를 발생시키거나 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 이벤트 로직을 포함할 수 있다. A method for generating a finite state machine is disclosed. The method includes allocating state information and action information to be executed in each of a plurality of states constituting a finite state machine, and providing event information for transition from the corresponding state to a subsequent state for each of the plurality of states. and generating a finite state machine using the assigned state information, action information, and event information. Here, the generated finite state machine may include event logic for generating a user event corresponding to a customer input through a service page or generating a machine event internally generated by the finite state machine.

Figure R1020190148702
Figure R1020190148702

Description

유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램{METHOD FOR GENERATING FINITE STATE MACHINE, METHOD FOR OPERATING FINITE STATE MACHINE, SERVER AND COMPUTER PROGRAM FOR PERFORMING THE SAME}METHOD FOR GENERATING FINITE STATE MACHINE, METHOD FOR OPERATING FINITE STATE MACHINE, SERVER AND COMPUTER PROGRAM FOR PERFORMING THE SAME

본 발명은 유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램에 관한 것으로, 보다 상세하게는 무어 기계(Moore machine) 기반의 유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램에 관한 것이다. The present invention relates to a method for generating a finite state machine, a method for operating a finite state machine, a server and a computer program for performing the same, and more particularly, to a method for generating a finite state machine based on a Moore machine, a method for operating a finite state machine, It relates to servers and computer programs that do this.

유무선 통신 기술의 발달에 힘입어 인터넷 사용자가 급격하게 증가하고 있고, 인터넷은 세계 각지의 수많은 컴퓨터 네트워크가 연계된 거대하고 효율적인 정보 축적매체 및 정보 제공 매체로서, 기업과 개인, 개인과 개인 간의 상호 커뮤니케이션을 실시간으로 가능하게 해주고 있다. The number of Internet users is rapidly increasing thanks to the development of wired and wireless communication technology, and the Internet is a huge and efficient information storage and information provision medium connected with numerous computer networks around the world. is made possible in real time.

이러한 인터넷의 대중적인 활용에 의해 수많은 업체들은 자신들의 사이트를 개설하여 각종 유의미한 정보, 특히 자신들의 홍보를 위한 마케팅 정보들을 고객에게 제공하고 있다. Due to the popular use of the Internet, many companies open their own sites and provide customers with various meaningful information, especially marketing information for their promotion.

이러한 마케팅 방법 중 하나로 최적화된 랜딩 페이지가 많이 활용되고 있다. 여기서, 랜딩 페이지는 검색엔진, 광고 등을 경유하여 접속하는 고객이 최초로 보게 되는 웹 페이지를 의미한다.As one of these marketing methods, an optimized landing page is being used a lot. Here, the landing page refers to a web page first viewed by a customer accessing via a search engine, advertisement, or the like.

일반적으로 랜딩 페이지에서 고객이 원하는 웹 페이지를 찾을 때 메뉴나 사이트 검색 기능 등이 충실하지 않을 경우, 유저는 원하는 웹 페이지를 찾는 것을 단념하고 해당 사이트를 떠나버리는 경우가 많이 있다. 이렇게 이탈하는 고객을 잡고 동시에 고객이 랜딩 페이지에서 목적 페이지로 간단히 이동할 수 있도록, 랜딩 페이지에는 불필요하거나 혼란을 주는 내용을 최대한 피하고 고객이 방문 목적을 쉽고 빠르게 달성할 수 있도록 안내해주기 위한 정보만을 담아 최적화 하고 있다. In general, when a customer finds a desired web page on a landing page, if the menu or site search function is not faithful, the user gives up on finding the desired web page and leaves the site in many cases. In order to catch these churning customers and at the same time make it easy for them to move from the landing page to the destination page, the landing page is optimized with information to avoid unnecessary or confusing content as much as possible and guide the customer to achieve the purpose of their visit easily and quickly are doing

예를 들어, 랜딩 페이지는 고객의 이탈을 최소화시키기 위하여 기업연혁, 인사말 등과 같은 불필요한 내용을 제거하고 고객이 필요로 할 것 같은 정보만 한 개의 페이지로 만들고 있다. For example, in order to minimize customer churn, the landing page removes unnecessary content such as company history and greetings, and makes only one page with information that the customer may need.

한편, 기업에서 홍보하고자 하는 고객 대상 프로모션, 온라인 행사 등의 컨텐츠를 담고 있는 응모 행사 페이지도 검색엔진, 광고 등을 경유하여 접속하는 고객이 최초로 보게 되는 특성상 랜딩 페이지와 속성이 유사하다. On the other hand, the application event page, which contains contents such as promotions for customers and online events that the company wants to promote, has similar properties to the landing page in the nature that customers who access it through a search engine or advertisement see it for the first time.

이러한 응모 행사 페이지는 그 형태에 큰 변형이 없으나, 잦은 추가, 변경이 필요한 속성을 갖는다. 일 예로, 방문자에게 이모티콘을 지급하기 위한 응모 행사 페이지는 방문자가 해당 페이지를 방문만 하면 이모티콘이 지급되도록 구성될 수 있다. 다른 예로, 방문자에게 이모티콘을 지급하기 위한 응모 행사 페이지는 방문자가 해당 페이지를 방문하고 응모해서 당첨되어야만 이모티콘이 지급되도록 구성될 수 있다. 또 다른 예로, 방문자에게 이모티콘을 지급하기 위한 응모 행사 페이지는 방문자가 어떤 작품을 감상하여야만 이모티콘이 지급되도록 구성될 수 있다. Although there is no major change in the form of this application event page, it has properties that require frequent additions and changes. As an example, the application event page for providing the emoticon to the visitor may be configured such that the emoticon is paid only when the visitor visits the corresponding page. As another example, the application event page for providing the emoticon to the visitor may be configured so that the emoticon is paid only when the visitor visits the page and applies to win. As another example, the application event page for providing an emoticon to the visitor may be configured so that the emoticon is paid only when the visitor appreciates a certain work.

이와 같이 응모 행사 페이지는 달성하려는 목적이 동일(예를 들어, 위 예시에서는 이모티콘의 지급)하다면 그 형태에 큰 변형이 없으나, 회사의 정책, 마케팅 방식, 소비자들의 반응 등에 따라 응모 행사 페이지의 추가, 응모 행사 페이지의 형식, 구조 등의 변경은 빈번하게 발생할 수 있다.As such, if the purpose of the application event page is the same (for example, payment of emoticons in the example above), there is no major change in its form, but depending on the company's policy, marketing method, consumer response, etc., addition of the application event page, Changes in the form and structure of the application event page may occur frequently.

특히, 마케팅 환경이 급변하는 상황에서는 응모 행사 페이지의 추가, 변경이 빈번하게 발생할 것으로 예상되는데, 이러한 응모 행사 페이지의 코드가 고객센터, 회사소개 및 앱(애플리케이션) 컨텐츠 등과 같이 게시 기간이 정해지지 않은 일반 페이지의 코드와 함께 배포된다면, 리스크가 클 것으로 예상된다. In particular, in a situation where the marketing environment changes rapidly, it is expected that the application event page will be added or changed frequently. If it is distributed with the code of the page, the risk is expected to be high.

일 예로, 응모 행사 페이지의 개발 관련하여, PC/모바일 프론트엔드 개발 및 운영, 서버 개발 및 운영, 외주 필요 시 해당 외주 일정관리 등의 업무가 필요하다. 그리고, 응모 행사 페이지에 대한 개발 필요 시, 기획, 마케팅, CRM(Customer Relationship Management)과 같은 여러 부서의 업무 협업이 필요하다. 다만, 이 과정에서 응모 행사 페이지의 코드와 일반 페이지의 코드를 함께 배포한다면 각 부서의 협업 과정에서 불편 및 어려움이 예상된다. For example, in relation to the development of the application event page, it is necessary to develop and operate a PC/mobile front-end, develop and operate a server, and manage the outsourcing schedule when outsourcing is necessary. And, when it is necessary to develop the application event page, it is necessary to collaborate with various departments such as planning, marketing, and CRM (Customer Relationship Management). However, if the code of the application event page and the code of the general page are distributed together in this process, inconvenience and difficulties are expected in the collaboration process of each department.

따라서, 이러한 리스크를 줄이기 위하여, 응모 행사 페이지와 일반 페이지를 분리시켜 응모 행사 페이지만을 따로 작업할 수 있는 환경을 제공하고, 응모 행사 페이지의 추가, 변경에 유연하게 대응하기 위한 방안이 필요하다. Therefore, in order to reduce this risk, it is necessary to provide an environment in which only the application event page can be separately worked by separating the application event page and the general page, and a plan for flexibly responding to addition and change of the application event page is required.

본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 서비스 페이지의 추가, 변경 등 서비스 페이지의 운영에 유연하게 대응 가능하도록 하는 유한 상태기계 생성 방법, 이를 수행하는 서버 및 컴퓨터 프로그램을 제공함에 있다.The present invention has been devised to solve the above problems, and an object of the present invention is to provide a method for generating a finite state machine that can flexibly respond to the operation of a service page, such as addition and change of a service page, and a server and computer program for performing the same is to provide.

또한, 본 발명의 목적은 유한 상태기계에서 고객의 현재 상태를 판단하고, 고객의 현재 상태에 맞는 액션을 수행하며, 고객의 현재 상태에 맞는 서비스 페이지를 제공하는 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램을 제공함에 있다.In addition, an object of the present invention is a finite state machine operating method for determining the current state of a customer in a finite state machine, performing an action suitable for the customer's current state, and providing a service page suitable for the customer's current state To provide server and computer programs.

상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 유한 상태기계(finite state machine) 운영 서버에 의한 유한 상태기계 생성 방법은, 유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보와 해당 상태에서 실행되어야 할 액션 정보를 할당하는 단계, 상기 복수의 상태 각각에 대하여 해당 상태에서 이후 상태로의 전이를 위한 이벤트 정보를 할당하는 단계 및 상기 할당된 상태 정보, 액션 정보 및 이벤트 정보를 이용하여 유한 상태기계를 생성하는 단계를 포함하고, 상기 생성된 유한 상태기계는 서비스 페이지를 통한 고객의 입력에 대응되는 사용자 이벤트를 발생시키거나 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 이벤트 로직을 포함할 수 있다.In order to achieve the above object, a method for generating a finite state machine by a finite state machine operating server according to an embodiment of the present invention is provided with state information and corresponding information for each of a plurality of states constituting the finite state machine. Allocating action information to be executed in a state, allocating event information for transition from the corresponding state to a subsequent state for each of the plurality of states, and using the allocated state information, action information and event information generating a finite state machine, wherein the generated finite state machine generates an event logic that generates a user event corresponding to a customer input through a service page or generates a machine event that occurs internally in the finite state machine. may include

그리고, 상기 할당된 상태 정보 및 액션 정보를 이용하여 상기 복수의 상태 각각에 대응되는 상태 블록을 생성하는 단계 및 상기 할당된 이벤트 정보를 이용하여 상기 생성된 복수의 상태 블록 간의 연결 관계를 형성한 유한 상태기계 다이어그램을 생성하는 단계 및 상기 생성된 유한 상태기계 다이어그램을 포함하는 관리자 인터페이스를 관리자의 단말 장치에 제공하는 단계를 더 포함할 수 있다.In addition, generating a state block corresponding to each of the plurality of states using the allocated state information and action information, and forming a connection relationship between the plurality of created state blocks using the allocated event information The method may further include generating a state machine diagram and providing a manager interface including the generated finite state machine diagram to a terminal device of the manager.

또한, 고객의 단말 장치에 표시할 서비스 페이지를 해당 상태에 매칭시켜 저장하는 단계를 더 포함할 수 있다.In addition, the method may further include storing the service page to be displayed on the customer's terminal device by matching the corresponding state.

그리고, 상기 유한 상태기계를 생성하는 단계는, 상태에 이전 상태에서 해당 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 종료 상태로 자동으로 설정하는 단계 및 상태에 해당 상태로부터 이후 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 시작 상태로 자동으로 설정하는 단계를 더 포함할 수 있다.And, generating the finite state machine includes automatically setting the state to the end state when only event information for transition from the previous state to the state is assigned to the state, and the state from the state to the next state. When only event information for transition to a state is allocated, the method may further include automatically setting the corresponding state as the starting state.

또한, 상기 생성된 유한 상태기계를 검증하는 단계를 더 포함하고, 상기 검증하는 단계는, 상태에 할당된 액션이 기 등록된 액션인지 여부, 상태에 할당된 액션을 실행하기 위한 API의 인자(ARGUMENT) 체크를 통과하였는지 여부, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결했는지 여부 및 상태에 지정된 필수 항목이 저장부에 정의되었는지 여부 중 적어도 하나를 검증할 수 있다.In addition, the method further includes verifying the generated finite state machine, wherein the verifying includes whether the action assigned to the state is a previously registered action, and an argument of an API for executing the action assigned to the state. ) check, whether an event generated as a result of execution of an action assigned to a state is connected to a subsequent state, and whether essential items specified in the state are defined in the storage unit can be verified.

그리고, 상기 검증에 따라 에러로 판단된 상태 상태 블록은 에러가 없는 상태 블록과 구별되도록 상기 유한 상태기계 다이어그램에 표시하는 단계를 더 포함할 수 있다.The method may further include displaying a state state block determined to be an error according to the verification on the finite state machine diagram to be distinguished from a state block having no error.

또한, 상기 유한 상태기계를 생성하는 단계는, 복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 연속된 상태들을 검출하는 단계 및 상기 검출된 상태들의 각 액션이 발생시키는 이벤트를 가능한 모든 경우의 수를 조합하여 새로운 이벤트로 매핑시켜 액션을 합성하는 단계를 더 포함할 수 있다.Also, the step of generating the finite state machine includes: detecting consecutive states, among a plurality of states, consisting of actions whose order does not affect each other, and generating events generated by each action of the detected states in all possible ways. The method may further include combining the number of cases and mapping an action to a new event.

그리고, 상기 서비스 페이지에 접속한 복수의 고객들이 복수의 상태들 중 어느 상태에 해당하는지 상기 유한 상태기계 다이어그램에 표시하는 단계를 더 포함할 수 있다.The method may further include displaying, on the finite state machine diagram, which states among a plurality of states of a plurality of customers accessing the service page.

또한, 상기 사용자 이벤트를 나타내는 연결선과 상기 기계 이벤트를 나타내는 연결선을 구별하여 상기 유한 상태기계 다이어그램에 표시하는 단계를 더 포함할 수 있다.The method may further include distinguishing a connecting line representing the user event from a connecting line representing the machine event, and displaying the distinguishing line on the finite state machine diagram.

한편, 상술한 목적을 달성하기 위한 본 발명의 일 실시 에에 따른 유한 상태기계 운영 서버는, 유한 상태기계의 생성을 위한 인터페이스를 제공하는 관리자 인터페이스, 상기 관리자 인터페이스를 통한 관리자 입력을 기초로 상기 유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보, 해당 상태에서 실행되어야 할 액션 정보를 할당하고, 상기 복수의 상태 각각에 대하여 해당 상태에서 이후 상태로의 전이를 위한 이벤트 정보를 할당하며, 상기 할당된 상태 정보, 액션 정보 및 이벤트 정보를 이용하여 유한 상태기계를 생성하는 생성부를 포함하고, 상기 생성된 유한 상태기계는 서비스 페이지를 통한 고객의 입력에 대응되는 사용자 이벤트를 발생시키거나 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 이벤트 로직을 포함할 수 있다.On the other hand, the finite state machine operation server according to an embodiment of the present invention for achieving the above object is a manager interface that provides an interface for creating a finite state machine, and the finite state based on a manager input through the manager interface. Allocating state information and action information to be executed in each of a plurality of states constituting the machine, and allocating event information for transition from the corresponding state to a subsequent state to each of the plurality of states, and the allocation and a generator for generating a finite state machine by using the state information, action information, and event information, wherein the generated finite state machine generates a user event corresponding to a customer input through a service page or generates the finite state machine It can contain event logic that triggers internally occurring machine events.

그리고, 상기 생성부는, 상기 할당된 상태 정보 및 액션 정보를 이용하여 상기 복수의 상태 각각에 대응되는 상태 블록을 생성하고, 상기 할당된 이벤트 정보를 이용하여 상기 생성된 복수의 상태 블록 간의 연결 관계를 형성한 유한 상태기계 다이어그램을 생성하는 다이어그램 생성부를 포함하고, 상기 관리자 인터페이스는 상기 생성된 유한 상태기계 다이어그램을 포함하는 관리자 인터페이스를 관리자의 단말 장치에 제공할 수 있다.The generation unit generates a state block corresponding to each of the plurality of states by using the allocated state information and the action information, and establishes a connection relationship between the generated state blocks by using the allocated event information. and a diagram generator for generating the formed finite state machine diagram, wherein the manager interface may provide a manager interface including the generated finite state machine diagram to a terminal device of a manager.

또한, 상기 복수의 상태들 중 상기 서비스 페이지의 노출이 필요한 상태에는 상기 고객의 단말 장치에 표시할 서비스 페이지를 해당 상태에 매칭시켜 저장하는 저장부를 더 포함할 수 있다.In addition, the state in which the service page needs to be exposed among the plurality of states may further include a storage unit for matching and storing the service page to be displayed on the customer's terminal device to the corresponding state.

그리고, 상기 생성부는, 상태에 이전 상태에서 해당 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 종료 상태로 자동으로 설정하고, 상태에 해당 상태로부터 이후 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 시작 상태로 자동으로 설정할 수 있다.And, when only event information for transition from the previous state to the corresponding state is allocated to the state, the generating unit automatically sets the corresponding state to the end state, and provides an event for transition from the corresponding state to the subsequent state in the state. If only information is allocated, the corresponding state can be automatically set as the starting state.

또한, 상기 생성된 유한 상태기계를 검증하는 검증부를 더 포함하고, 상기 검증부는, 상태에 할당된 액션이 기 등록된 액션인지 여부, 상태에 할당된 액션을 실행하기 위한 API의 인자(ARGUMENT) 체크를 통과하였는지 여부, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결했는지 여부 및 상태에 지정된 필수 항목이 저장부에 정의되었는지 여부 중 적어도 하나를 검증할 수 있다.The method further includes a verification unit that verifies the generated finite state machine, wherein the verification unit checks whether the action assigned to the state is a previously registered action, and an argument of an API for executing the action assigned to the state. It is possible to verify at least one of whether or not it has passed, whether an event generated as a result of execution of an action assigned to a state is connected to a subsequent state, and whether essential items specified in the state are defined in the storage unit.

그리고, 상기 다이어그램 생성부는, 상기 검증에 따라 에러로 판단된 상태 상태 블록은 에러가 없는 상태 블록과 구별되도록 상기 유한 상태기계 다이어그램에 표시할 수 있다.The diagram generator may display the state state block determined to be an error according to the verification on the finite state machine diagram to be distinguished from the state block having no error.

또한, 상기 생성부는, 복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 연속된 상태들을 검출하고, 상기 검출된 상태들의 각 액션이 발생시키는 이벤트를 가능한 모든 경우의 수를 조합하여 새로운 이벤트로 매핑시켜 액션을 합성하는 합성부를 더 포함할 수 있다.In addition, the generating unit detects consecutive states composed of actions whose order does not affect each other among a plurality of states, and combines the number of all possible cases of an event generated by each action of the detected states to create a new It may further include a compounding unit for synthesizing an action by mapping to an event.

그리고, 상기 다이어그램 생성부는, 상기 서비스 페이지에 접속한 복수의 고객들이 복수의 상태들 중 어느 상태에 해당하는지 상기 유한 상태기계 다이어그램에 표시할 수 있다.In addition, the diagram generating unit may display on the finite state machine diagram which state among a plurality of states a plurality of customers accessing the service page corresponds to.

또한, 상기 다이어그램 생성부는, 상기 사용자 이벤트를 나타내는 연결선과 상기 기계 이벤트를 나타내는 연결선을 구별하여 상기 유한 상태기계 다이어그램에 표시할 수 있다.Also, the diagram generating unit may distinguish between a connection line indicating the user event and a connection line indicating the machine event and display it on the finite state machine diagram.

한편, 상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 유한 상태기계 운영 서버에 의한 유한 상태기계 운영 방법은, 고객 단말 장치로부터 요청 데이터를 수신하는 단계, 상기 수신된 요청 데이터에 대응되는 사용자 이벤트를 발생시키고, 상기 유한 상태기계를 구성하는 복수의 상태들 중 고객의 현재 상태인 제1 상태에서 상기 발생된 사용자 이벤트에 일치하는 전이를 갖는 이후의 상태인 제2 상태로 고객의 상태를 전이시키는 단계, 상기 제2 상태에 할당된 액션 정보를 검출하고, 검출된 액션 정보를 기초로 상기 제2 상태에 할당된 액션을 실행하는 단계 및 상기 실행된 액션에 연계된 기계 이벤트의 발생 여부를 판단하고, 상기 기계 이벤트의 발생 여부에 따라 상기 고객의 최종 상태를 결정하는 단계를 포함한다.Meanwhile, in a finite state machine operation method by a finite state machine operation server according to an embodiment of the present invention for achieving the above object, receiving request data from a customer terminal device; generating a user event, and changing the state of the customer from a first state that is the current state of the customer among a plurality of states constituting the finite state machine to a second state that is a subsequent state having a transition corresponding to the generated user event transitioning, detecting action information assigned to the second state, executing the action assigned to the second state based on the detected action information, and determining whether a machine event associated with the executed action occurs and determining the final state of the customer according to whether the machine event has occurred.

그리고, 상기 실행된 액션에 연계되어 기계 이벤트가 발생하면, 상기 제2 상태에서 상기 발생된 기계 이벤트에 일치하는 전이를 갖는 이후의 상태인 제3 상태로 상기 고객의 상태를 전이시키는 단계를 더 포함할 수 있다.and when a machine event occurs in association with the executed action, transitioning the state of the customer from the second state to a third state, which is a subsequent state having a transition consistent with the generated machine event. can do.

또한, 상기 실행된 액션에 연계되어 기계 이벤트가 발생하지 않으면, 상기 고객의 최종 상태를 상기 제2 상태로 결정하는 단계, 상기 제2 상태에 매칭되는 서비스 페이지를 검출하는 단계 및 상기 검출된 서비스 페이지를 상기 고객의 단말 장치에 전송하는 단계를 더 포함할 수 있다.In addition, if a machine event does not occur in connection with the executed action, determining the final state of the customer as the second state, detecting a service page matching the second state, and the detected service page It may further include the step of transmitting to the terminal device of the customer.

그리고, 상기 유한 상태기계는 상기 서비스 페이지를 통한 고객 입력에 대응되는 사용자 이벤트를 발생시키는 사용자 발생 이벤트 API와 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 기계 발생 이벤트 API를 포함할 수 있다.The finite state machine may include a user-generated event API that generates a user event corresponding to a customer input through the service page and a machine-generated event API that generates a machine event that occurs internally in the finite state machine.

또한, 상기 실행하는 단계는, 상기 제2 상태에 할당된 액션을 실행하기 위한 API(Application Program Interface)의 인자(argument)를 검출하는 단계, 상기 검출된 인자를 기초로 상기 제2 상태에 대응되는 API를 실행하는 단계 및 상기 제2 상태에 대응되는 API의 실행 후 인자들을 변경하는 단계를 포함할 수 있다.In addition, the executing may include detecting an argument of an application program interface (API) for executing the action assigned to the second state, and corresponding to the second state based on the detected argument. It may include executing the API and changing parameters after the execution of the API corresponding to the second state.

한편, 상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 유한 상태기계 운영 서버는, 고객 단말 장치로부터 요청 데이터를 수신하는 요청 수신부, 상기 수신된 요청 데이터에 대응되는 사용자 이벤트를 발생시키고, 유한 상태기계를 구성하는 복수의 상태들 중 제1 상태에서 상기 발생된 사용자 이벤트에 일치하는 전이를 갖는 이후의 상태인 제2 상태로 고객의 상태를 전이시키며, 상기 제2 상태에 할당된 액션 정보를 검출하고 검출된 액션 정보를 기초로 상기 제2 상태에 할당된 액션을 실행하는 실행부를 포함하고, 상기 실행부는 상기 실행된 액션에 연계된 기계 이벤트의 발생 여부를 판단하고, 상기 기계 이벤트의 발생 여부에 따라 상기 고객의 최종 상태를 결정할 수 있다.On the other hand, the finite state machine operation server according to an embodiment of the present invention for achieving the above object, a request receiving unit for receiving request data from a customer terminal device, generates a user event corresponding to the received request data, Transitions the state of the customer from a first state among a plurality of states constituting the finite state machine to a second state that is a subsequent state having a transition consistent with the generated user event, and action information assigned to the second state and an execution unit that detects and executes an action assigned to the second state based on the detected action information, wherein the execution unit determines whether a machine event related to the executed action occurs, and the occurrence of the machine event Depending on whether or not it can determine the final status of the customer.

그리고, 상기 실행부는, 상기 실행된 액션에 연계되어 기계 이벤트가 발생하면, 상기 제2 상태에서 상기 발생된 기계 이벤트에 일치하는 전이를 갖는 이후의 상태인 제3 상태로 상기 고객의 상태를 전이시킬 수 있다.And, when a machine event occurs in connection with the executed action, the execution unit is configured to transition the state of the customer from the second state to a third state that is a subsequent state having a transition corresponding to the generated machine event. can

또한, 상기 실행부는, 상기 실행된 액션에 연계되어 기계 이벤트가 발생하지 않으면, 상기 고객의 최종 상태를 상기 제2 상태로 결정하고, 상기 제2 상태에 매칭되는 서비스 페이지를 검출하며, 상기 검출된 서비스 페이지를 상기 고객의 단말 장치에 전송하는 인터페이스 제공부를 더 포함할 수 있다.In addition, if the machine event does not occur in connection with the executed action, the execution unit determines the final state of the customer as the second state, detects a service page matching the second state, and the detected It may further include an interface providing unit for transmitting the service page to the terminal device of the customer.

그리고, 상기 유한 상태기계는 상기 서비스 페이지를 통한 고객 입력에 대응되는 사용자 이벤트를 발생시키는 사용자 발생 이벤트 API와 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 기계 발생 이벤트 API를 포함할 수 있다.The finite state machine may include a user-generated event API that generates a user event corresponding to a customer input through the service page and a machine-generated event API that generates a machine event that occurs internally in the finite state machine.

또한, 상기 실행부는, 상기 제2 상태에 할당된 액션을 실행하기 위한 API(Application Program Interface)의 인자(argument)를 검출하고, 상기 검출된 인자를 기초로 상기 제2 상태에 대응되는 API를 실행하며, 상기 제2 상태에 대응되는 API의 실행 후 인자들을 변경할 수 있다.In addition, the execution unit detects an argument of an API (Application Program Interface) for executing the action assigned to the second state, and executes the API corresponding to the second state based on the detected argument and change the parameters after the execution of the API corresponding to the second state.

한편, 상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 프로그램은 컴퓨터 판독 가능한 기록 매체에 저장되어 유한 상태기계 생성 방법을 실행시킬 수 있다.Meanwhile, a program according to an embodiment of the present invention for achieving the above object may be stored in a computer-readable recording medium to execute the method for generating a finite state machine.

또한, 상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 프로그램은 컴퓨터 판독 가능한 기록 매체에 저장되어 유한 상태기계 운영 방법을 실행시킬 수 있다. In addition, the program according to an embodiment of the present invention for achieving the above object may be stored in a computer-readable recording medium to execute the finite state machine operating method.

상술한 본 발명의 다양한 실시 예에 따르면, 고객센터, 회사소개 등과 같은 일반 페이지와 응모 행사 페이지와 같은 서비스 페이지를 별도로 개발 및 배포할 수 있기에, 서로 간의 서비스 영향을 최소화할 수 있다. According to various embodiments of the present invention described above, since a general page such as a customer center and a company introduction and a service page such as an application event page can be separately developed and distributed, the influence of services between each other can be minimized.

또한, 본 발명의 다양한 실시 예에 따르면, 서비스 페이지를 유한 상태기계 기반의 툴로 운영 가능하게 하고, 필요 시 서비스 페이지의 템플릿 및 게시 관리를 관리자가 직접 수정할 수 있도록 함으로써, 개발 리소스 및 일정을 감소시킬 수 있다. In addition, according to various embodiments of the present invention, by enabling the service page to be operated as a finite state machine-based tool, and by allowing the administrator to directly modify the template and publication management of the service page when necessary, development resources and schedules can be reduced. can

또한, 본 발명의 다양한 실시 예에 따르면, 서비스 페이지에 대한 처리를 별도 서버로 운영함으로써, 트래픽으로 인하여 증명서, 약관 페이지 등의 타 서비스에 영향을 미치는 것을 서로 분리시킬 수 있다.In addition, according to various embodiments of the present disclosure, by operating the processing of the service page as a separate server, it is possible to separate things that affect other services, such as a certificate and a contract page due to traffic, from each other.

또한, 본 발명의 다양한 실시 예에 따르면, 서비스 페이지의 운영에 적합한 유한 상태기계 기반의 툴을 제공함으로써, 단발적으로 발생할 수 있는 에러에 대한 대응 속도를 향상시킬 수 있다. In addition, according to various embodiments of the present disclosure, by providing a finite state machine-based tool suitable for operation of a service page, it is possible to improve the response speed for a single error.

또한, 본 발명의 다양한 실시 예에 따르면, 서비스 페이지의 운영에 적합한 유한 상태기계 기반의 툴을 제공함으로써, 개발자 편의성, 유지보수 용이성을 높일 수 있다. In addition, according to various embodiments of the present invention, by providing a finite state machine-based tool suitable for operation of a service page, developer convenience and maintenance ease can be improved.

도 1은 본 발명의 일 실시 예에 따른 서비스 시스템을 나타내는 블록도 이다.
도 2a는 본 발명의 일 실시 예에 따른 유한 상태기계 운영 서버의 구성을 나타내는 블록도이다.
도 2b는 유한 상태기계에 할당된 데이터 형태를 나타내는 도면이다.
도 3a는 본 발명의 일 실시 예에 따른 유한 상태기계를 도식화한 유한 상태기계 다이어그램을 나타내는 예시도이다.
도 3b는 본 발명의 일 실시 예에 따른 유한 상태기계 생성 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 서비스 시스템의 동작을 나타내는 타이밍도 이다.
도 5는 본 발명의 일 실시 예에 따른 유한 상태기계 운영 서버의 서비스 운영 방법을 나타내는 흐름도 이다.
도 6은 본 발명의 일 실시 예에 따른 이모티콘 지급 응모 행사의 유한 상태기계 다이어그램 이다.
도 7은 본 발명의 일 실시 예에 따른 유한 상태기계 다이어그램을 나타내는 예시도 이다.
도 8은 본 발명의 일 실시 예에 따른 유한 상태기계 검증 방법을 나타내는 흐름도 이다.
도 9a 내지 9b는 본 발명의 일 실시 예에 따른 액션 합성 과정을 나타내는 유한 상태기계 다이어그램을 나타내는 도면이다.
1 is a block diagram illustrating a service system according to an embodiment of the present invention.
2A is a block diagram showing the configuration of a finite state machine operation server according to an embodiment of the present invention.
Fig. 2b is a diagram showing data types allocated to a finite state machine.
3A is an exemplary diagram illustrating a finite state machine diagram schematically illustrating a finite state machine according to an embodiment of the present invention.
3B is a flowchart illustrating a method for generating a finite state machine according to an embodiment of the present invention.
4 is a timing diagram illustrating an operation of a service system according to an embodiment of the present invention.
5 is a flowchart illustrating a service operation method of a finite state machine operation server according to an embodiment of the present invention.
6 is a finite state machine diagram of an emoticon payment application event according to an embodiment of the present invention.
7 is an exemplary diagram illustrating a finite state machine diagram according to an embodiment of the present invention.
8 is a flowchart illustrating a finite state machine verification method according to an embodiment of the present invention.
9A to 9B are diagrams illustrating a finite state machine diagram illustrating an action synthesis process according to an embodiment of the present invention.

이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시 예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시 예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.The following is merely illustrative of the principles of the invention. Therefore, those skilled in the art will be able to devise various devices which, although not explicitly described or shown herein, embody the principles of the present invention and are included within the spirit and scope of the present invention. In addition, it should be understood that all conditional terms and examples listed herein are, in principle, expressly intended only for the purpose of understanding the inventive concept and are not limited to the specifically enumerated embodiments and states as such. do.

또한, 본 발명의 원리, 관점 및 실시 예들뿐만 아니라 특정 실시 예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물, 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.Moreover, it is to be understood that all detailed description reciting specific embodiments, as well as principles, aspects, and embodiments of the present invention, are intended to cover structural and functional equivalents thereof. It is also to be understood that such equivalents include both currently known equivalents as well as equivalents developed in the future, ie, all devices invented to perform the same function, regardless of structure.

따라서, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.Accordingly, it should be understood that all flowcharts, state transition diagrams, pseudo code, etc. may be tangibly embodied on a computer-readable medium and represent various processes performed by a computer or processor, whether or not a computer or processor is explicitly shown. .

프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.The functions of the various elements shown in the figures including a processor or functional blocks represented by similar concepts may be provided by the use of dedicated hardware as well as hardware having the ability to execute software in association with appropriate software. When provided by a processor, the functionality may be provided by a single dedicated processor, a single shared processor, or a plurality of separate processors, some of which may be shared.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. The above-described objects, features and advantages will become more apparent through the following detailed description in relation to the accompanying drawings, and accordingly, those of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in the description of the present invention, if it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시 예를 상세히 설명하기로 한다. Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 서비스 시스템을 나타내는 블록도 이다. 도 1을 참조하면, 서비스 시스템(1000)은 사용자가 이용하는 복수의 단말 장치(100-1,..100-N : 100), 및 유한 상태기계 운영 서버(200)를 포함할 수 있다.1 is a block diagram illustrating a service system according to an embodiment of the present invention. Referring to FIG. 1 , a service system 1000 may include a plurality of terminal devices 100-1, ..100-N: 100 used by a user, and a finite state machine operation server 200 .

단말 장치(100)는 사용자들이 구비한 단말 장치로, 유무선 통신 기능을 구비한 스마트 폰, 태블릿 컴퓨터, 노트북 컴퓨터, PC(Personal computer), PDA(personal digital assistant), PMP(portable multimedia player), 웨어러블 디바이스(wearable device)로 구현되거나, 사용자의 몸에 착용 가능한 스마트 글래스, 스마트 워치 등의 웨어러블 디바이스로 구현될 수 있다.The terminal device 100 is a terminal device provided by users, and includes a smart phone, a tablet computer, a notebook computer, a personal computer (PC), a personal digital assistant (PDA), a portable multimedia player (PMP), and a wearable having a wired/wireless communication function. It may be implemented as a wearable device, or may be implemented as a wearable device such as smart glasses or a smart watch that can be worn on a user's body.

여기서, 단말 장치(100)의 사용자는 응모 행사 페이지의 운영을 위한 유한 상태기계의 생성, 변경, 조작, 갱신, 에러 처리 등과 같은 관리 업무를 수행하기 위한 권한을 가진 관리자를 포함한다. 일 예로, 응모 행사 페이지에 대한 개발 필요 시, 기획, 마케팅, CRM(Customer Relationship Management)과 같은 여러 부서의 업무 협업이 필요하기에, 기획팀, 마케팅팀, CRM 팀 등의 멤버에게 유한 상태기계의 관리를 위한 권한이 부여될 필요가 있고, 그 외의 일반 사용자에게는 해당 권한을 부여되지 않는 것이 바람직하다. 본 발명에서는 유한 상태기계 운영 서버(200)에 접속하여 유한 상태기계를 관리하는 사용자를 "관리자"로 지칭하기로 한다.Here, the user of the terminal device 100 includes an administrator who has the authority to perform management tasks such as creation, change, manipulation, update, error handling, and the like, of a finite state machine for the operation of the application event page. For example, when development of the application event page is required, collaboration of various departments such as planning, marketing, and CRM (Customer Relationship Management) is required, so members of the planning team, marketing team, CRM team, etc. can manage the finite state machine. It is necessary to be given the authority for, and it is desirable that the authority is not granted to other general users. In the present invention, a user who accesses the finite state machine operation server 200 and manages the finite state machine will be referred to as an "administrator".

또한, 단말 장치(100)의 사용자는 단말 장치(100)의 인터넷 기능을 이용하여 응모 행사 페이지에 접속하여 각종 응모 행사에 참여하는 일반 사용자를 포함할 수 있다. 일 예로, 사용자는 단말 장치(100)를 이용하여 검색엔진, 광고 등을 경유하여 특정 회사의 고객 대상 프로모션 컨텐츠를 담고 있는 응모 행사 페이지에 접속할 수 있고, 사용자는 단말 장치(100)에 표시된 응모 행사 페이지를 확인하며 응모 행사 페이지에서 제공하는 응모 행사에 참여할 수 있다. 본 발명에서는 유한 상태기계 운영 서버(200)에 접속하여 응모 행사 페이지에서 제공하는 응모 행사에 참여하는 외부 사용자를 "고객"으로 지칭하기로 한다. 일 실시예로서, 고객이 유한 상태기계 진입 시, 유한 상태기계는 사용자 정보에 개인 식별자와 현재 상태 정보를 매핑하여 식별하고, 고객의 현재 상태에 해당하는 화면 정보를 고객 단말장치에 응답으로 전송할 수 있다.In addition, the user of the terminal device 100 may include a general user who accesses the application event page using the Internet function of the terminal device 100 and participates in various application events. For example, a user may access an application event page containing promotional content for customers of a specific company through a search engine, advertisement, etc. using the terminal device 100 , and the user may access the application event displayed on the terminal device 100 . By checking the page, you can participate in the application event provided on the application event page. In the present invention, an external user who accesses the finite state machine operation server 200 and participates in the application event provided on the application event page will be referred to as a “customer”. As an embodiment, when the customer enters the finite state machine, the finite state machine may identify the user information by mapping the personal identifier and the current state information, and transmit screen information corresponding to the customer's current state as a response to the customer terminal device. have.

한편, 본 발명에서 사용되는 용어들은 다음과 같이 정의될 수 있다.Meanwhile, terms used in the present invention may be defined as follows.

구체적으로, 본 발명에서 유한 상태기계(finite state machine)는 유한개의 상태(state)들과 이런 상태들 간의 전이(변화)로 구성된 계산 모형을 의미한다. 하나의 유한 상태기계는 복수의 사용자들, 상태들, 전이들로 구성된다. 이러한 유한 상태기계는 이벤트 발생에 의하여 상태 간의 전이를 일으킬 수 있다. 또한, 유한 상태기계는 소정의 도식화 툴을 이용하여 유한 상태기계를 시각화하여 표시할 수 있고, 복수의 상태 블록들의 연결 관계를 도시한 도면을 "유한 상태기계 다이어그램"이라고 한다.Specifically, in the present invention, a finite state machine means a computational model composed of a finite number of states and transitions (changes) between these states. A finite state machine consists of multiple users, states, and transitions. Such a finite state machine can cause transitions between states by event occurrence. In addition, the finite state machine can visualize and display the finite state machine using a predetermined schematic tool, and a diagram showing the connection relationship of a plurality of state blocks is called a "finite state machine diagram".

본 발명에서 상태(state)는 유한 상태기계를 구성하는 복수의 상태들을 지칭할 수 있고, 유한 상태기계를 구성하는 각각의 상태는 전이를 시작하기 위해 대기하고 있는 시스템의 노드와 같다. 본 발명에 의한 유한 상태기계에 진입한 사용자는 오직 하나의 상태와 매핑되어, 매핑된 상태명을 나타내는 "현재 상태명" 정보를 갖는다. 사용자의 현재 상태는, 전이에 따라 계속 바뀔 수 있다.In the present invention, a state may refer to a plurality of states constituting a finite state machine, and each state constituting the finite state machine is like a node of a system waiting to initiate a transition. A user entering the finite state machine according to the present invention is mapped with only one state, and has "current state name" information indicating the mapped state name. The current state of the user may be continuously changed according to the transition.

그리고, 본 발명에서 상태 정보는 상태명 정보, 상태에 할당된 액션 정보를 포함하고, 상태에 할당된 이벤트 정보 등 관련 정보를 더 포함할 수 있다. Further, in the present invention, the state information includes state name information, action information assigned to a state, and may further include related information such as event information assigned to a state.

그리고, 본 발명에서 액션(action)은 유한 상태기계를 구성하는 복수의 상태들 각각에 대하여 해당 상태에서 수행해야 할 동작을 실행하는 것을 의미한다.And, in the present invention, an action means executing an operation to be performed in a corresponding state with respect to each of a plurality of states constituting a finite state machine.

그리고, 본 발명에서 액션 정보는 해당 상태에서 실행되어야 할 액션(실행 데이터)을 나타내는 정보로서, 상태별로 하나씩 지정된다. 여기서, 액션 정보는 해당 상태에서 실행되어야 할 액션에 관련된 API(Application Programming Interface)의 실행정보를 포함할 수 있다.And, in the present invention, the action information is information indicating an action (execution data) to be executed in a corresponding state, and is designated one by one for each state. Here, the action information may include execution information of an API (Application Programming Interface) related to an action to be executed in the corresponding state.

그리고, 본 발명에서 이벤트(event)는 유한 상태기계를 구성하는 복수의 상태들 간에 전이(변화)되도록 하는 사건으로서, 외부 시스템 또는 액션의 실행 결과로 발생된다. 이벤트는 응모 행사 페이지를 통한 고객 입력을 통하여 발생하는 "사용자 이벤트"와 머신 내부적으로 자동으로 발생하는 "기계 이벤트"를 포함할 수 있다. 일 실시예로서, 사용자 이벤트는 고객들의 행위에 의해 발생되는 고객용 이벤트(외부 사용자 이벤트)와, 이벤트 관리자의 행위에 의해 발생되는 관리자용 이벤트(내부 사용자 이벤트)로도 구분할 수 있다.And, in the present invention, an event is an event that transitions (changes) between a plurality of states constituting a finite state machine, and is generated as a result of execution of an external system or action. The event may include a “user event” that occurs through customer input through the application event page and a “machine event” that occurs automatically inside the machine. As an embodiment, the user event may be divided into a customer event (external user event) generated by actions of customers and an event for administrators (internal user event) generated by an event manager's action.

그리고, 본 발명에서 이벤트 정보는 복수의 상태들 간의 전이를 구성하는 이벤트의 명칭 정보, 사용자 이벤트 또는 기계 이벤트와 같은 이벤트 타입 정보, 전이 방향 정보 등을 포함할 수 있다.And, in the present invention, the event information may include name information of an event constituting a transition between a plurality of states, event type information such as a user event or a machine event, transition direction information, and the like.

여기서, 상태 정보, 액션 정보, 이벤트 정보는 유한 상태기계의 생성, 갱신 등의 관리를 수행하는 관리자 단말장치(100)에서 입력 데이터(또는 코딩 데이터)를 기초로 생성될 수 있다. 일 실시 예로서, 관리자는 관리자 단말장치(100)를 이용하여 유한 상태기계 운영 서버(200)에 접속할 수 있고, 서버(200)가 제공하는 관리자 인터페이스를 통해 유한 상태기계를 생성할 수 있다. 일 실시예로서, 관리자는 텍스트 형태의 프로그래밍 언어를 통해 유한 상태기계의 생성, 갱신 등의 관리를 위한 상태 정보, 액션 정보, 이벤트 정보를 입력할 수 있다.Here, the state information, action information, and event information may be generated based on input data (or coding data) in the manager terminal device 100 that manages the creation and update of a finite state machine. As an embodiment, the manager may access the finite state machine operation server 200 using the manager terminal device 100 and may create a finite state machine through a manager interface provided by the server 200 . As an embodiment, the administrator may input state information, action information, and event information for management of creation and update of a finite state machine through a text-type programming language.

그리고, 본 발명에서 전이(transition)는 각 상태 간에 정의된 이벤트가 발생하였을 때 수행되는 일련의 동작을 의미한다. 전이 데이터는 제1 상태명, 이벤트명, 제2 상태명을 포함하고, 이 때, 제1 상태명은 전이 전(前) 사용자의 현재 상태명에 해당하고, 제2 상태명은 전이 후(後) 사용자의 다음 상태명을 가리킨다. 액션의 결과에 따라 이벤트가 발생하여 연속적으로 전이를 일으킬 수 있고, 더 이상의 이벤트가 발생하지 않아 전이가 중단되면 응답처리를 하게 된다.And, in the present invention, a transition refers to a series of operations performed when an event defined between each state occurs. The transition data includes a first state name, an event name, and a second state name, wherein the first state name corresponds to the current state name of the user before the transition, and the second state name is the user after the transition It points to the next state name of Depending on the result of the action, an event can occur and transition can occur continuously. When the transition is stopped because no more events occur, response processing is performed.

일반적인 유한 상태기계와 달리, 본 발명에 따른 유한 상태 기계는 액션의 실행 결과가 이벤트의 발생이 되도록 구현할 수 있다. 예컨대, 제1 상태에서 제2 상태로의 전이를 구성하는 이벤트(E1)가 액션(A1)에 의해 발생되는 것으로만 구현하면, 제1 상태로 진입하는 경우 액션(A1)의 실행에 따라 무조건 S2로 전이되는 이벤트(E1)가 발생하고, 연쇄적으로 전이(S2->S3->…)가 일어나게 된다.Unlike a general finite state machine, the finite state machine according to the present invention can be implemented so that the execution result of an action is the occurrence of an event. For example, if the event E1 constituting the transition from the first state to the second state is implemented only as being generated by the action A1, when the first state is entered, S2 is unconditionally according to the execution of the action A1. An event (E1) that transitions to occurs occurs, and transitions (S2->S3->...) occur in a chain.

전이가 중단되어 사용자의 최종 상태가 결정된 경우에는, 유한 상태기계가 사용자의 최종 상태에 따른 화면을 출력할 수 있다. 예컨대, 액션의 결과가 OK 이벤트 또는 FAIL 이벤트로 구성된 경우, 액션의 출력으로 정의된 이벤트 중 추가 전이가 없는 일부(FAIL)로만 연결되거나, 액션에 정의되지 않은 이벤트(예컨대, YES 또는 NO)로 다른 상태에 연결된 경우에는, 연쇄적인 전이가 멈추고, 해당 상태가 최종 상태가 되어, 마치 사용자가 특정 상태 내에 머무르는(stay)것처럼 보인다.When the transition is stopped and the final state of the user is determined, the finite state machine may output a screen according to the final state of the user. For example, if the result of the action consists of an OK event or a FAIL event, only some of the events defined as the output of the action without additional transition (FAIL), or other events (eg, YES or NO) that are not defined in the action When connected to a state, the chain transition stops and the state becomes the final state, as if the user were staying in a specific state.

즉, 본 발명의 유한 상태기계는 관리자로 하여금 서비스 페이지(예컨대, 응모 행사 페이지)가 필요한 상태를 구분할 수 있도록 한다. 여기서, 서비스 페이지는, 고객 단말장치에 디스플레이되는 웹페이지 또는 모바일 어플리케이션 화면을 말하며, 해당 서비스(예컨대, 응모 행사)와 관련된 적어도 하나의 화면을 가리킨다. 본 발명에서 서비스 페이지는 응모 행사에 관한 서비스 페이지, 응모 행사 페이지, 고객 인터페이스, 또는 고객 단말 장치에 표시되는 화면 정보로 지칭될 수도 있고, 서로 동일한 의미로 사용된다. 이러한 본 발명에 의하면, 응모 행사를 위한 유한 상태기계 설계 시 화면이 누락되는 일이 없도록 하고, 설계 기간을 예측하는 데에도 도움을 줄 수 있다. That is, the finite state machine of the present invention allows an administrator to distinguish a state in which a service page (eg, an application event page) is required. Here, the service page refers to a web page or a mobile application screen displayed on the customer terminal device, and refers to at least one screen related to a corresponding service (eg, an application event). In the present invention, the service page may be referred to as a service page related to an application event, an application event page, a customer interface, or screen information displayed on a customer terminal device, and are used in the same sense. According to the present invention, when designing a finite state machine for an application event, it is possible to prevent a screen from being omitted and to help predict the design period.

예를 들어, 응모 행사에 관한 서비스 페이지는 기업에서 홍보하고자 하는 고객 대상 프로모션, 응모 행사 내용 등의 컨텐츠를 담은 복수의 페이지로 구성될 수 있다. 일 예로, 고객에게 이모티콘을 지급하는 응모 행사의 경우, 서비스 페이지는 고객의 최초 접속 시 "초기 상태"에 대응되는 "응모 페이지" 화면을 출력할 수 있고, 응모 페이지에서 고객의 입력(응모버튼 클릭)에 따라 "이모티콘 지급 완료"에 대응되는 "이모티콘 지급 완료 페이지" 화면을 표시할 수 있다. 또한 응모 페이지에서 고객의 응모에 대해 이모티콘 지급이 실패하면 "지급 실패 상태"에 대응되는 "이모티콘 지급 실패 페이지"를 표시할 수 있다. 이러한 서비스 페이지는 고객의 입력을 수신함으로써, 사용자의 입력에 의한 사용자 이벤트를 발생시킬 수 있고, 사용자 이벤트에 의한 상태 전이가 가능하다. 이 때, 고객의 입력은 응모 행사 페이지에서 제안하는 응모 행사에 참여하기 위한 고객의 모든 행위를 포함하는 개념이므로, 일 예로, 응모 행사 페이지에 방문하는 행위, 응모 행사 페이지의 응모 버튼을 클릭하는 행위, 응모 행사 페이지의 개인 정보란에 개인 정보를 입력하는 행위 등 고객의 모든 행위를 포함할 수 있다.For example, the service page related to the application event may be composed of a plurality of pages containing contents such as promotions for customers and contents of the application event that the company wants to promote. For example, in the case of an application event in which an emoticon is paid to a customer, the service page may output a "application page" screen corresponding to the "initial state" when the customer connects for the first time, and the customer's input (click the application button) on the application page ), it is possible to display the "Emoticon payment completion page" screen corresponding to "Emoticon payment completed". In addition, if the emoticon payment fails for the customer's application on the application page, an "emoticon payment failure page" corresponding to the "payment failure status" may be displayed. Such a service page may generate a user event by the user's input by receiving the customer's input, and state transition by the user's event is possible. At this time, the customer's input is a concept that includes all actions of the customer to participate in the application event suggested on the application event page. For example, an act of visiting the application page or clicking the application button on the application page , inputting personal information in the personal information field of the application event page may include all actions of the customer.

도 2a는 본 발명의 일 실시 예에 따른 유한 상태기계 운영 서버(200)의 구성을 나타내는 블록도이다. 유한 상태기계 운영 서버(200)는 유한 상태기계의 생성과 관리를 위한 생성부(210), 운영부(220), 검증부(230)를 포함하고, 서버의 일반적인 동작과 외부 단말과의 연동을 위한 제어부(250), 저장부(240), 통신부(260) 및 관리자 인터페이스(270)를 포함할 수 있다. 다만, 유한 상태기계 운영 서버(200)의 구성이 이에 한정되는 것은 아니며, 본 발명의 다양한 실시예를 위해 필요한 구성(예컨대, 입출력부)을 더 포함하거나 생략될 수 있고, 둘 이상의 구성이 통합된 형태로 구현될 수 있다. 일 실시예로서, 제어부(250)는 서버를 구동하기 위한 중앙처리장치(CPU)일 수 있고, 저장부(240, 227)는 기억장치 또는 별도의 데이터베이스 형태로 구현될 수 있으며, 그 외 구성들은 프로세서에 의해 구동하고 서버의 기록매체에 기록된 컴퓨터 프로그램 형태로 구현될 수 있다. 2A is a block diagram showing the configuration of a finite state machine operation server 200 according to an embodiment of the present invention. The finite state machine operation server 200 includes a generation unit 210 , an operation unit 220 , and a verification unit 230 for generation and management of the finite state machine, and for general operation of the server and interworking with an external terminal. It may include a control unit 250 , a storage unit 240 , a communication unit 260 , and a manager interface 270 . However, the configuration of the finite state machine operation server 200 is not limited thereto, and a configuration (eg, an input/output unit) necessary for various embodiments of the present invention may be further included or omitted, and two or more configurations are integrated. It can be implemented in the form As an embodiment, the control unit 250 may be a central processing unit (CPU) for driving the server, the storage units 240 and 227 may be implemented in the form of a storage device or a separate database, and other components are It may be implemented in the form of a computer program driven by a processor and recorded on a recording medium of a server.

먼저, 생성부(210)는 설계자 또는 관리자의 입력을 기초로 유한 상태기계를 생성할 수 있다. 구체적으로, 생성부(210)는 최초 설계자나 관리자로부터 입력받은 복수의 상태 각각에 대한 상태 정보, 액션 정보 및 이벤트 정보를 기초로 유한 상태기계를 생성할 수 있다. 이러한 생성부(210)는 할당부(211), 다이어그램 생성부(212), 합성부(213)를 포함한다.First, the generator 210 may generate a finite state machine based on an input of a designer or a manager. Specifically, the generator 210 may generate a finite state machine based on state information, action information, and event information for each of a plurality of states received from the initial designer or manager. The generation unit 210 includes an allocation unit 211 , a diagram generation unit 212 , and a synthesis unit 213 .

할당부(211)는 관리자로부터 입력받은 데이터를 기초로 유한 상태기계를 구성하는 복수의 상태들 각각에 대하여 상태 정보, 해당 상태에서 실행되어야 할 액션을 나타내는 액션 정보를 할당할 수 있다. 이 때, 할당부(211)는 상태에 할당된 액션의 실행 결과가 값의 리턴(Return)이 아닌 해당 상태에서 타 상태로의 전이를 위한 이벤트의 발생과 연계되도록 구성될 수 있다. The allocator 211 may allocate state information and action information indicating an action to be executed in the corresponding state to each of a plurality of states constituting the finite state machine based on data input from the manager. In this case, the allocator 211 may be configured such that the execution result of the action assigned to the state is linked with the occurrence of an event for transition from the corresponding state to the other state, rather than the return of a value.

또한, 할당부(211)는 관리자로부터 입력받은 데이터를 기초로 유한 상태기계를 구성하는 복수의 상태들 각각에 대하여 제1 상태에서 제2 상태로의 전이를 위한 이벤트 정보를 할당할 수 있다. 여기서, 이벤트 정보는 이벤트명을 포함한다. 이하에서는 설명의 편의를 위해, 전이가 일어나기 이전 상태를 나타내는 제1 상태명, 상기 이벤트명에 따라 전이가 일어난 후의 상태를 나타내는 제2 상태명이라 지칭하고, 상기 전이 정보는 제1 상태명, 제2 상태명, 이벤트명을 포함하는 형태로 정의될 수 있다. 본 명세서에서는 설명의 편의상 전이가 일어나기 이전 상태를 제1 상태, 이벤트에 의해 전이가 일어난 이후의 상태를 제2 상태라 지칭한다.Also, the allocator 211 may allocate event information for transition from the first state to the second state for each of a plurality of states constituting the finite state machine based on data input from the manager. Here, the event information includes an event name. Hereinafter, for convenience of description, the first state name indicating the state before the transition occurs and the second state name indicating the state after the transition according to the event name are referred to as the first state name, and the transition information includes the first state name and the second state name. 2 It can be defined in a form including a state name and an event name. In the present specification, for convenience of description, the state before the transition is referred to as a first state, and the state after the transition due to an event is referred to as a second state.

일 실시예로서, 할당부(211)는 유한 상태기계 생성 시 복수의 상태 정보, 전이 정보 등을 정의한 데이터를 생성할 수 있고, 데이터의 형태는 도 2b와 같이 정의될 수 있다. 도 2b에 도시된 것처럼, 요청 데이터는 고객의 개인식별자를 요청 개인식별자 정보로 포함하고, 요청 이벤트명을 포함할 수 있다. 유한 상태기계는 요청 개인식별자에 따른 현재 상태명을 불러오고(예컨대, 최초 진입 시 초기 상태명), 요청 이벤트명은 "신규 이벤트명" 이라는 처리 예정 이벤트 변수에 할당한다. 다음으로, 전이 데이터에서, 현재 상태명과 신규 이벤트명이 각각 제1 이벤트명과 이벤트명에 일치하는 전이를 찾고, 해당하는 전이가 있을 시에 전이를 일으켜 제2 상태명을 사용자의 현재 상태명에 할당한다. 이 때 신규 이벤트명 변수값에는 다시 null값을 할당함으로써, 액션이 반환하는 이벤트가 더이상 없을 때, null값이 유지되어 최종 상태임을 알 수 있도록 한다. As an embodiment, the allocator 211 may generate data defining a plurality of state information and transition information when generating a finite state machine, and the data type may be defined as shown in FIG. 2B . As shown in FIG. 2B , the requested data may include the customer's personal identifier as the requested personal identifier information, and may include the requested event name. The finite state machine fetches the current state name according to the request personal identifier (eg, the initial state name upon initial entry), and assigns the requested event name to a processing schedule event variable called "new event name". Next, in the transition data, the current state name and the new event name match the first event name and the event name, respectively, a transition is found, and when there is a corresponding transition, a transition is made and the second state name is assigned to the user's current state name. . At this time, by assigning a null value to the new event name variable value again, when there are no more events returned by the action, the null value is maintained so that the final state can be known.

유한 상태기계는 제2 상태에 진입한 사용자에 대해 제2 이벤트에 매핑된 진입 액션을 실행하고, 진입액션의 실행 결과로 이벤트명이 반환되면, 그 반환 이벤트명을 신규 이벤트명에 할당한다. 이처럼, 신규 이벤트명이라는 변수에 null값이 아닌 실제 이벤트값이 할당되면, 다시 전이 확인 단계로 돌아가, 사용자의 현재 상태명과 신규 이벤트명이 일치하는 전이 데이터를 찾아내고, 전이를 일으킬지 여부를 판단할 수 있다. 예컨대, 일치하는 전이 데이터가 없어 전이가 중단될 경우에는, 그 시점에 사용자에게 할당된 현재 상태명을 최종 상태로 보고, 해당 상태명에 매핑되어 있던 화면 정보를 응답으로 출력한다. The finite state machine executes the entry action mapped to the second event for the user who enters the second state, and when the event name is returned as a result of the execution of the entry action, the returned event name is assigned to the new event name. In this way, if an actual event value, not a null value, is assigned to the variable named new event name, it goes back to the transition check step, finds transition data that matches the user's current state name and new event name, and determines whether or not a transition occurs. can For example, when the transition is stopped because there is no matching transition data, the current state name assigned to the user at that time is viewed as the final state, and screen information mapped to the corresponding state name is output as a response.

이처럼, 본 발명의 유한 상태기계는 일반적인 유한 상태기계와 달리, 액션의 실행 결과가 이벤트의 발생으로 이어지도록 구현할 수 있다. 현재 상태명에 해당하는 상태를 판별하여, 해당 상태에 할당된 진입 액션을 실행하고, 진입 액션의 실행 결과로 이벤트명이 반환되면, 이 이벤트명을 신규 이벤트명 변수에 할당함으로써 전이를 일으킨다. 이러한 메커니즘을 통해 연쇄적인 전이를 일으킬 수 있고, 전이가 중단되어 최종 상태가 결정되면 해당 상태에 매핑된 화면 정보를 응답으로 송신할 수 있어, 응모 행사와 같은 서비스 구현에 용이하다.As such, the finite state machine of the present invention can be implemented so that the execution result of an action leads to the occurrence of an event, unlike a general finite state machine. The state corresponding to the current state name is determined, the entry action assigned to the corresponding state is executed, and when an event name is returned as a result of the execution of the entry action, a transition is caused by assigning the event name to a new event name variable. Through this mechanism, a chain transition can occur, and when the final state is determined by stopping the transition, screen information mapped to the corresponding state can be transmitted as a response, making it easy to implement services such as application events.

한편, 액션은 해당 상태에서 수행되어야 할 동작에 대해 API의 실행정보를 실행하는 것으로, 각각의 상태별로 하나씩 지정될 수 있다. 이 때, 유한 상태기계는 액션 실행을 위해 저장부(227)로부터 참조할 값(ARGUMENT)을 받아 액션 수행 시 해당 값들을 액션 알고리즘에 채워주고, 액션은 참조 값에 따른 액션을 수행하게 된다. 즉, 액션은 API의 인자(ARGUMENT)와 함께 호출되고, 액션 완료 후에는 저장부(227)의 변경(CHANGE)을 요청하여 반영하도록 한다. 이처럼 액션은 저장부(227)에 직접 접근하거나 내부적으로 연관되지 않도록 구현되고, 유한 상태기계를 통해서만 저장부(227)의 값을 조회 및 수정하도록 하여, State-less(무상태)의 특성을 갖는다.On the other hand, an action is to execute execution information of the API for an operation to be performed in a corresponding state, and one action may be designated for each state. At this time, the finite state machine receives a reference value (ARGUMENT) from the storage unit 227 to execute the action, fills the corresponding values in the action algorithm when performing the action, and the action performs the action according to the reference value. That is, the action is called together with an argument (ARGUMENT) of the API, and after the action is completed, the change (CHANGE) of the storage unit 227 is requested and reflected. As such, the action is implemented so as not to directly access or internally relate to the storage unit 227, and has a state-less characteristic by inquiring and modifying the value of the storage unit 227 only through a finite state machine. .

여기서, State-less라 함은 입력된 인자로만 출력이 결정되는 특성을 말하며, 다음번 작동을 위해 필요로 하는 값들을 함수가 저장하지 않고 리턴하는 것을 말한다. 본 발명의 실시예에 따라, 액션이 인자 값을 저장하지 않고 유한 상태기계를 통해 호출한 인자 값으로만 작동하도록 구현하면, 같은 프로그램이 여러 개 실행되더라도 각자 할당된 메모리 공간에서 작동하는 것과 유사한 효과를 내고, 원격에 있는 액션을 수행시키기에 용이하며, 액션 전후로 참조되거나 변경되는 저장부의 값에 대한 식별도 용이하다는 이점이 있다.Here, state-less refers to a characteristic in which output is determined only by input parameters, and the function returns the values required for the next operation without storing it. According to an embodiment of the present invention, if the action is implemented to operate only with the argument values called through the finite state machine without storing the argument values, the effect similar to that of operating in the allocated memory space even when the same program is executed multiple times , and it is easy to perform a remote action, and there is an advantage in that it is easy to identify the value of the storage unit that is referenced or changed before and after the action.

이와 같이, 할당부(211)는 유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보와 액션 정보를 할당하고, 표 1과 같이, 상태 정보와 액션 정보가 매핑된 데이터를 저장할 수 있다.As such, the allocator 211 may allocate state information and action information to each of a plurality of states constituting the finite state machine, and store data to which the state information and the action information are mapped as shown in Table 1.

상태 정보status information S0 S 0 S1 S 1 액션 정보action information A0 A 0 A1 A 1

또한, 이벤트는 제1 상태에서 제2 상태로의 전이를 구성할 수 있다. 일 예로, 이모티콘 지급 응모 행사의 경우, 유한 상태기계는 "응모 이벤트"의 발생에 따라 고객의 현재 상태를 "방문 상태"에서 다음 상태인 "이모티콘 지급 중 상태"로 전이시킬 수 있다. 이와 같이, 할당부(211)는 유한 상태기계를 구성하는 복수의 상태 간의 전이를 구성하는 이벤트 정보를 할당하고, 표 2와 같이, 상태 정보와 이벤트 정보가 매핑된 데이터를 저장할 수 있다.Additionally, the event may constitute a transition from the first state to the second state. As an example, in the case of an emoticon payment application event, the finite state machine may transition the customer's current state from a "visit state" to a next state, "emoticon payment state", according to the occurrence of an "application event". In this way, the allocator 211 may allocate event information constituting a transition between a plurality of states constituting the finite state machine, and store data to which the state information and the event information are mapped as shown in Table 2.

상태 정보status information S0-> S1 S 0 -> S 1 S1 ->S2 S 1 -> S 2 이벤트 정보event information E0 E 0 E1 E 1

이벤트 타입은 서비스 페이지를 통한 사용자 입력에 따라 발생되는 "사용자 이벤트" 와 상태에 할당된 액션의 실행에 따라 머신에서 자동적으로 발생시키는 "기계 이벤트" 를 포함한다. 상술한 것처럼, 사용자는 고객뿐만 아니라 관리자를 포함한다. 이러한 사용자 이벤트와 기계 이벤트는 이벤트 API로 표현될 수 있다.Event types include “user events” that are generated according to user input through the service page and “machine events” that are automatically generated by the machine according to the execution of actions assigned to states. As described above, users include administrators as well as customers. These user events and machine events can be expressed as an event API.

만약, 상태에 할당된 액션의 실행 결과 이벤트의 발생이 요청되지 않으면, 유한 상태기계는 해당 상태에 매칭된 서비스 페이지를 고객의 단말 장치(100)에 표시하도록 제어한다. 이후에, 고객의 단말 장치(100)에 표시된 서비스 페이지를 통하여 고객의 입력이 수신되면, 유한 상태기계의 사용자 발생 이벤트 API는 고객 입력에 부합하는 사용자 이벤트를 발생시킬 수 있다. If generation of an event as a result of execution of an action assigned to a state is not requested, the finite state machine controls to display a service page matching the corresponding state on the terminal device 100 of the customer. Thereafter, when a customer input is received through the service page displayed on the customer terminal device 100 , the user-generated event API of the finite state machine may generate a user event corresponding to the customer input.

이렇게, 사용자 발생 이벤트 API와 기계 발생 이벤트 API 를 분리시켜 이벤트를 발생시킴으로써, 악용(abusing)의 문제를 해결할 수 있다. 예를 들어, "NAME_INPUT(이름 입력) 이벤트"와 "GIVE_MONEY(돈 지급) 이벤트"를 예로 설명하면, 응모 행사 페이지를 통한 고객 입력에 따라 "GIVE_MONEY(돈 지급) 이벤트"를 발생시킬 수 있다면, 이는 악용의 문제를 발생할 수 있다.In this way, by separating the user-generated event API and the machine-generated event API to generate an event, the problem of abuse can be solved. For example, if "NAME_INPUT (name input) event" and "GIVE_MONEY (money payment) event" are described as examples, if "GIVE_MONEY (money payment) event" can be generated according to customer input through the application event page, this Misuse can cause problems.

이러한 문제점을 해결하기 위하여, 본 발명에 따른 유한 상태기계는 사용자 발생 이벤트 API와 기계 발생 이벤트 API의 분리를 통해 양 이벤트를 구분할 수 있다. 유한 상태기계는 사용자가 접근하는 사용자 발생 이벤트 API에서는 첫문자가 대문자인 이벤트만을 호출 가능하게 하여, 고객은 특정 이벤트만 발생시키도록 권한을 제한할 수 있다. 예컨대, 악용의 소지가 있는 일반사용자에 대해서는 대문자 외의 이벤트는 무시(또는 제외)하고, 사용자 이벤트만 인식, 처리하도록 필터링된 API 실행정보를 제공할 수 있다. 반면, 유한 상태기계 내부 서비스들은 모든 이벤트 이름을 허용하여 기계 발생 이벤트 API를 호출 가능하게 할 수 있다.In order to solve this problem, the finite state machine according to the present invention can distinguish both events through the separation of the user-generated event API and the machine-generated event API. The finite state machine makes it possible to call only events with an uppercase letter in the user-generated event API accessed by the user, so the customer can restrict the authority to only generate specific events. For example, it is possible to provide API execution information filtered to recognize and process only user events while ignoring (or excluding) events other than capital letters for general users with potential for abuse. On the other hand, finite state machine internal services can accept any event name, making it possible to call the machine-generated event API.

다이어그램 생성부(212)는 텍스트 형태의 프로그래밍 언어로 구성된 유한 상태기계를 도식화하는 것으로, 관리자 인터페이스(270)와 연계되어 동작하거나 전문 툴(tool)을 이용할 수 있다. 유한 상태기계의 다이어그램 생성부(212)는 할당부(211)에서 할당된 상태 정보 및 액션 정보를 이용하여 상기 복수의 상태 각각에 대응되는 상태 블록을 생성하고 할당된 액션을 표시할 수 있다. 그리고, 다이어그램 생성부(212)는 이벤트 정보를 이용하여 생성된 복수의 상태 블록 간의 전이 데이터를 판별하고, 복수의 상태 블록 간의 연결 관계를 형성할 수 있다. 이에 따라, 다이어그램 생성부(212)는 복수의 상태 블록 각각을 연결하되, 연결선의 화살표 방향을 전이 데이터에 따라 표시한 그래프를 생성할 수 있다. The diagram generator 212 schematizes a finite state machine composed of a text-type programming language, and may operate in conjunction with the manager interface 270 or use a specialized tool. The diagram generating unit 212 of the finite state machine may generate a state block corresponding to each of the plurality of states by using the state information and the action information allocated by the allocator 211 , and display the allocated action. In addition, the diagram generator 212 may determine transition data between a plurality of state blocks generated by using the event information, and form a connection relationship between the plurality of state blocks. Accordingly, the diagram generating unit 212 may generate a graph in which each of the plurality of state blocks is connected, but the arrow direction of the connecting line is displayed according to the transition data.

일 실시예로서, 관리자는 관리자 단말장치(100)를 이용하여 유한 상태기계 생성을 위한 유저 인터페이스(User Interface: UI)(예컨대, 관리자 인터페이스(270))를 제공하고, 관리자는 자신의 단말장치(100)에 표시된 관리자 인터페이스(270)를 통하여 유한 상태기계를 구성하는 복수의 상태 각각에 대한 상태 정보, 액션 정보, 이벤트 정보를 입력할 수 있다.As an embodiment, the manager provides a user interface (UI) (eg, the manager interface 270 ) for creating a finite state machine using the manager terminal device 100 , and the manager uses his/her terminal device ( State information, action information, and event information for each of a plurality of states constituting the finite state machine may be input through the manager interface 270 displayed in 100 ).

다이어그램 생성부(212)는 관리자 인터페이스(270)를 통해 유한 상태기계를 도식화하여 제공함으로써, 관리자가 생성, 수정 작업을 용이하게 수행할 수 있다. 즉, 관리자는 다이어그램의 작성과 수정을 통해 서비스 페이지의 운영을 위한 유한 상태기계를 용이하게 생성하고 관리할 수 있다. 이는 유한 상태기계 설계 시 수천, 수만 줄(line) 이상의 텍스트로 된 프로그래밍 언어로 작성하는 것보다 시간과 노력이 적게 들고, 도식화된 유한 상태기계를 직관적으로 볼 수 있어 효율적인 개발과 관리가 가능하다는 장점이 있다. The diagram generator 212 schematically provides a finite state machine through the manager interface 270 , so that the manager can easily create and modify it. In other words, an administrator can easily create and manage a finite state machine for the operation of a service page by creating and modifying diagrams. It takes less time and effort than writing a programming language with thousands or tens of thousands of lines of text when designing a finite state machine, and it has the advantage of enabling efficient development and management by intuitively viewing the schematic finite state machine. There is this.

나아가, 전문 개발자가 아닌 관리자도 다이어그램을 이해할 수 있어, 최초 개발자 외 다른 운영자(예컨대, 광고, 마케팅 부서)에 의한 관리도 가능하다는 이점이 있다. 이러한 유한 상태기계 다이어그램에 대해서는 도 3 및 7을 참조하여 더 상세히 설명하기로 한다.Furthermore, since an administrator who is not a professional developer can understand the diagram, there is an advantage that management by an operator other than the initial developer (eg, advertising, marketing department) is possible. Such a finite state machine diagram will be described in more detail with reference to FIGS. 3 and 7 .

한편, 상술한 바에 따르면, 유한 상태기계 운영 서버(200)에 유한 상태기계 관리를 위한 관리자 인터페이스(270)로서, 어플리케이션(또는 프로그램)이 설치되는 것을 예로 설명하였으나, 이에 한정되는 것은 아니고 관리자 단말장치(100)에 해당 어플리케이션이 설치되는 것으로 구현될 수도 있다. 이처럼, 관리자가 관리자 단말장치(100)에 설치된 관리자 인터페이스를 이용하거나, 서버(200)에 접속하여 관리자 인터페이스(270)를 이용할 경우, 보안 네트워크를 통하거나 인증을 통해 접속하도록 구현할 수 있다.Meanwhile, according to the above description, it has been described that an application (or program) is installed as the manager interface 270 for managing the finite state machine in the finite state machine operation server 200 as an example, but the present invention is not limited thereto. It may be implemented as the corresponding application is installed in 100 . As such, when the manager uses the manager interface installed in the manager terminal device 100 or accesses the server 200 and uses the manager interface 270 , it can be implemented to access through a secure network or through authentication.

합성부(213)는 복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 상태들을 합성하여 유한 상태기계를 생성할 수 있다. 구체적으로 액션 합성부(213)는 복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 연속된 상태들을 검출하고, 검출된 상태들의 각 액션이 발생시키는 이벤트를 가능한 모든 경우의 수를 조합하여 새로운 이벤트로 매핑시켜 액션을 합성할 수 있다. 이에 대해서는 도 7을 참조하여 후술하기로 한다.The synthesizing unit 213 may generate a finite state machine by synthesizing states including actions whose order does not affect each other among a plurality of states. Specifically, the action synthesizing unit 213 detects consecutive states composed of actions whose order does not affect each other among a plurality of states, and combines the possible number of events generated by each action of the detected states. You can synthesize actions by mapping them to new events. This will be described later with reference to FIG. 7 .

다음으로, 운영부(220)는 본 발명의 일 실시예에 의한 유한 상태기계를 운영, 관리하기 위한 구성으로서, 사용자로부터 요청을 수신하는 요청 수신부(221), 진입한 사용자에 대해 유한 상태기계를 실행시키는 실행부(223), 실행부(223)의 동작에 따라 결정되는 사용자의 상태에 기초하여 사용자 단말장치에 응답을 송신하는 인터페이스 제공부(225)를 포함하고, 저장부(227)를 더 포함할 수 있다. 상기 구성요소들(221 내지 227)은 기능별로 각각이 분리된 것처럼 기재하였으나, 이에 한정되는 것은 아니며, 하나의 프로세서 또는 프로그램에 의해 동작될 수 있고, 하나 이상의 구성요소가 통합된 형태로 구현될 수 있다. Next, the operation unit 220 is a configuration for operating and managing the finite state machine according to an embodiment of the present invention, and the request receiving unit 221 for receiving a request from a user, and executing the finite state machine for the entered user and an interface providing unit 225 for transmitting a response to the user terminal device based on the user's state determined according to the operation of the executing unit 223 and the operation of the executing unit 223 , and further comprising a storage unit 227 . can do. Although the components 221 to 227 have been described as being separate for each function, the present invention is not limited thereto, and may be operated by one processor or program, and may be implemented in an integrated form in which one or more components are integrated. have.

일 실시예로서, 운영부(220)는 실행부(223)에 의해 미리 설계된 유한 상태기계의 동작에 따라 특정 서비스(예컨대, 응모 행사)를 제공하며, 사용자의 요청에 대해 상태를 결정하고, 해당 상태에 매핑된 화면 정보를 응답으로서 송신한다. 저장부(227)는 도 2b와 같이 정의된 데이터들을 저장하여, 유한 상태기계의 실행 시 실행부(223)와 연계하여 사용자의 상태, 전이 등이 결정되도록 할 수 있다.In one embodiment, the operation unit 220 provides a specific service (eg, an application event) according to the operation of a finite state machine designed in advance by the execution unit 223 , determines a state in response to a user's request, and determines the state The screen information mapped to is transmitted as a response. The storage unit 227 may store the data defined as shown in FIG. 2B so that the user's state, transition, etc. can be determined in connection with the execution unit 223 when the finite state machine is executed.

요청 수신부(221)는 사용자 단말장치(100)로부터 요청 데이터를 수신하고, 이를 실행부(223)에 전달하여, 유한 상태기계의 실행을 개시할 수 있다. 일 실시예로서, 요청 수신부(221)는 요청 데이터가 정의된 구성을 포함하고 있지 않거나 서비스 미실행 버튼(예컨대, 팝업창의 닫힘 버튼)을 클릭한 경우 등 일부 경우에 요청 데이터를 실행부(223)에 전달하지 않도록 구현될 수 있다.The request receiving unit 221 may receive request data from the user terminal device 100 , and transmit it to the execution unit 223 to start execution of the finite state machine. As an embodiment, the request receiving unit 221 executes the request data in some cases, such as when the request data does not include a defined configuration or when a service non-execution button (eg, a close button of a pop-up window) is clicked. It can be implemented so that it is not passed to

실행부(223)가 요청 수신부(221)로부터 요청 데이터를 수신하면, 요청 데이터에 포함된 요청 개인 식별자 및 요청 이벤트명을 초기 입력값으로 하여, 해당 사용자에 대한 유한 상태기계의 실행을 개시할 수 있다. 기 설계된 유한 상태기계는 저장부(227)에 저장될 수 있고, 실행부(223)의 호출에 의해 실행부(223)와 저장부(227), 인터페이스 제공부(225)의 연동에 의해 실행될 수 있다. 다만, 이에 한정되는 것은 아니며, 실행부(223)가 유한 상태기계를 동작시키는데 필요한 다른 구성요소들도 연계될 수 있고, 관련 데이터는 저장부(227)뿐만 아니라 저장부(240)에도 저장될 수 있다. When the execution unit 223 receives the request data from the request receiving unit 221 , the execution of the finite state machine for the user can be started by using the request personal identifier and the requested event name included in the request data as initial input values. have. The pre-designed finite state machine may be stored in the storage unit 227, and may be executed by interworking of the execution unit 223, the storage unit 227, and the interface providing unit 225 by calling the execution unit 223. have. However, the present invention is not limited thereto, and other components necessary for the execution unit 223 to operate the finite state machine may be linked, and related data may be stored in the storage unit 240 as well as the storage unit 227 . have.

유한 상태기계는 복수의 상태들 각각에 할당된 상태 정보, 복수의 상태 각각에 할당된 액션 정보 및 상기 복수의 상태 간의 전이를 구성하는 이벤트 정보를 포함하고, 요청 데이터의 개인식별자에 할당되는 상태 정보에 따라 액션과 전이 등의 동작이 수행될 수 있다.The finite state machine includes state information assigned to each of a plurality of states, action information assigned to each of the plurality of states, and event information constituting a transition between the plurality of states, and state information assigned to a personal identifier of the requested data. Actions, transitions, and the like may be performed according to the .

도 2b를 참조하여 설명한 것처럼, 유한 상태기계의 실행부(223)는 요청 데이터를 수신하여, 요청 개인식별자에 따른 현재 상태명을 불러오고(예컨대, 최초 진입 시 초기 상태명), 요청 이벤트명은 "신규 이벤트명" 이라는 처리 예정 이벤트 변수에 할당한다. 다음으로, 전이 데이터에서, 현재 상태명과 신규 이벤트명이 각각 제1 이벤트명에 일치하는 전이를 찾고, 해당하는 전이가 있을 시에 전이를 일으켜 제2 상태명을 사용자의 현재 상태명에 할당한다. 이 때 신규 이벤트명 변수값에는 다시 null값을 할당함으로써, 액션이 반환하는 이벤트가 더 이상 없을 때, null값이 유지되어 최종 상태임을 알 수 있도록 한다.As described with reference to FIG. 2B, the execution unit 223 of the finite state machine receives the requested data, retrieves the current state name according to the request personal identifier (eg, the initial state name at the time of initial entry), and the requested event name is " It is assigned to the event variable to be processed called "New event name". Next, in the transition data, a transition with the current state name and the new event name matching the first event name is found, and when there is a corresponding transition, a transition is made and the second state name is assigned to the user's current state name. At this time, by assigning a null value to the new event name variable value again, when there are no more events returned by the action, the null value is maintained so that the final state can be known.

실행부(223)는 제2 상태에 진입한 사용자에 대해 제2 이벤트에 매핑된 진입 액션을 실행하고, 진입액션의 실행 결과로 이벤트명이 반환되면, 그 반환 이벤트명을 신규 이벤트명에 할당한다. 이처럼, 신규 이벤트명이라는 변수에 null값이 아닌 실제 이벤트값이 할당되면, 다시 전이 확인 단계로 돌아가, 사용자의 현재 상태명과 신규 이벤트명이 일치하는 전이 데이터를 찾아내고, 전이를 일으킬지 여부를 판단할 수 있다. 예컨대, 일치하는 전이 데이터가 없어 전이가 중단될 경우에는, 그 시점에 사용자에게 할당된 현재 상태명을 최종 상태로 보고, 해당 상태명에 매핑되어 있던 화면 정보를 응답으로 출력할 수 있다.The execution unit 223 executes the entry action mapped to the second event for the user who has entered the second state, and when an event name is returned as a result of the execution of the entry action, the returned event name is assigned to a new event name. In this way, if an actual event value, not a null value, is assigned to the variable named new event name, it goes back to the transition check step, finds transition data that matches the user's current state name and new event name, and determines whether or not a transition occurs. can For example, when the transition is stopped because there is no matching transition data, the current state name assigned to the user at that point in time may be viewed as the final state, and screen information mapped to the corresponding state name may be output as a response.

한편, 본 발명의 일 실시예에 따른 실행부(223)는 고객에 의한 이벤트 발생 시에, 해당 고객에 할당된 현재 상태(PC(Program Counter))와 저장소(Memory)를 불러와 컨텍스트를 복원하고, 이벤트에 따라 프로그램의 작동을 진행할 수 있다. 구체적으로, 고객은 유한 상태기계에서 하나의 상태에 머무르는데, 상태 만으로는 의미있는 결과를 만들어낼 수 없고 임의의 값들을 입력받아 저장하고, 복원하여 출력할 필요가 있다. On the other hand, the execution unit 223 according to an embodiment of the present invention restores the context by calling the current state (PC (Program Counter)) and storage (Memory) allocated to the customer when an event occurs by the customer, and , it is possible to proceed with the operation of the program according to the event. Specifically, the customer stays in one state in a finite state machine, and the state alone cannot produce meaningful results, and it is necessary to input, store, restore, and output arbitrary values.

여기서, 한명의 고객의 상태와 해당 고객에 대한 메모리 공간을 묶어서 "컨텍스트" 라고 부르고, 유한 상태기계에서 한명의 고객은 하나의 컨텍스트를 가질 수 있다. 저장부(227)에는 유한 상태기계 운영 서버(200)에 접속하는 복수의 고객 각각에 대한 메모리 공간이 할당될 수 있고, 고객 별 메모리 공간에는 고객 별 프로그램 코드, 메모리 구성과 프로그램 카운터(실행위치)가 저장될 수 있다. 이 경우, 유한 상태기계는 고객 이벤트 발생 시 해당 고객에 할당된 현재 상태(프로그램 카운터)와 메모리 공간에 저장된 데이터를 독출하여 컨텍스트(context)를 복원할 수 있다. Here, the state of one customer and the memory space for that customer are collectively called a “context”, and in a finite state machine, one customer can have one context. A memory space for each of a plurality of customers accessing the finite state machine operation server 200 may be allocated to the storage unit 227 , and the memory space for each customer includes a customer-specific program code, a memory configuration, and a program counter (execution location). can be stored. In this case, when a customer event occurs, the finite state machine can restore the context by reading the current state (program counter) allocated to the customer and data stored in the memory space.

설계된 유한 상태기계에 따라, 상태 전이와 액션 실행 등 일련의 전이과정을 거치고, 이벤트에 대한 응답을 내려줄 때, 다시 현재 상태와 저장소를 기록하여 컨텍스트를 저장할 수 있다.According to the designed finite state machine, it goes through a series of transition processes such as state transition and action execution, and when responding to an event, the context can be saved by recording the current state and storage again.

즉, 본 발명에 따른 저장부(227)에는 접속하는 복수의 고객 각각에 대한 메모리 공간이 할당될 수 있고, 고객 별 메모리 공간에는 고객 별 프로그램 코드, 메모리 구성과 프로그램 카운터가 저장될 수 있다. 이 경우, 실행부(223)는 사용자 이벤트 발생 시 해당 고객에 할당된 메모리 공간에 저장된 데이터를 추출하여 컨텍스트를 복원하고, 프로그램을 실행시키며, 이벤트에 대한 응답을 내려줄 때 다시 현재 상태를 기록하여 컨텍스트를 저장할 수 있다. 이에 따라, 컨텍스트를 복원하고 기록하는 과정을 통해 고객 별로 프로그램을 멈추고 재가동 시킬 수 있다.That is, a memory space for each of a plurality of connected customers may be allocated to the storage unit 227 according to the present invention, and a program code, a memory configuration and a program counter for each customer may be stored in the memory space for each customer. In this case, the execution unit 223 extracts the data stored in the memory space allocated to the customer when a user event occurs, restores the context, executes the program, and records the current state again when giving a response to the event. Context can be saved. Accordingly, the program can be stopped and restarted for each customer through the process of restoring and recording the context.

또한 이벤트와 관련하여, 실행부(223)의 유한 상태기계는 사용자 이벤트 및 기계 이벤트를 자동으로 생성하고 발생시키는 이벤트 로직을 포함할 수 있다. 이벤트 로직은 서비스 페이지를 통한 고객 입력에 대응되는 사용자 이벤트를 발생시키는 사용자 발생 이벤트 API와 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 기계 발생 이벤트 API를 포함할 수 있다. 실행부(223)는 서비스 페이지를 통한 고객 입력을 기초로 사용자 이벤트를 발생시키거나 또는 상태에 할당된 액션의 실행과 연계하여 기계 이벤트를 발생시켜, 고객의 최종 상태에 적합한 서비스 페이지(즉, 화면 정보)를 고객의 단말 장치(100)에 제공할 수 있다.Also with respect to events, the finite state machine of the executor 223 may include event logic for automatically generating and generating user events and machine events. The event logic may include a user-generated event API that generates a user event corresponding to a customer input through a service page, and a machine-generated event API that generates a machine event that occurs internally in a finite state machine. The execution unit 223 generates a user event based on a customer input through the service page or generates a machine event in connection with the execution of an action assigned to a state, thereby generating a service page (ie, screen) suitable for the final state of the customer. information) to the customer's terminal device 100 .

일 실시예로서, 고객의 단말장치(100)로부터 요청 데이터가 수신되면, 실행부(223)는 요청 데이터를 통해 고객의 서비스 페이지 진입을 감지하고, 사용자 이벤트 발생 여부를 판단할 수 있다. 예를 들어, 유한 상태기계의 사용자 발생 이벤트 API는 고객의 응모 행사 페이지의 진입에 따라 사용자 이벤트를 발생시킬 수 있다.As an embodiment, when the request data is received from the customer's terminal device 100 , the execution unit 223 may detect the customer's entry to the service page through the request data and determine whether a user event has occurred. For example, a user-generated event API of a finite state machine may generate a user event upon entry of a customer's entry event page.

사용자 이벤트가 발생하면, 실행부(223)는 고객의 현재 상태에서 해당 사용자 이벤트를 통해 다음 상태로 고객의 상태를 전이시킬 수 있다. 구체적으로, 고객의 단말 장치(100)에 표시된 서비스 페이지를 통하여 고객의 입력(예컨대, 페이지에 표시된 응모 버튼을 클릭하는 입력 행위)이 수신되면, 유한 상태기계는 사용자 발생 이벤트 API 를 실행시켜 고객의 입력에 대응되는 사용자 이벤트를 발생시킬 수 있다. 유한 상태기계는 고객의 현재 상태(제1 상태)에서 상기 사용자 이벤트가 발생됨에 따라 전이 데이터를 확인한 후, 제1 상태명과 이벤트명이 일치하는 전이 데이터 존재 시 고객의 상태를 다음 상태(제2 상태)로 전이시킨다. When a user event occurs, the execution unit 223 may transition the customer's state from the current state of the customer to the next state through the corresponding user event. Specifically, when a customer input (eg, an input action of clicking an application button displayed on the page) is received through the service page displayed on the customer's terminal device 100, the finite state machine executes the user-generated event API to A user event corresponding to the input may be generated. The finite state machine checks the transition data as the user event occurs in the customer's current state (first state), and then sets the customer's state to the next state (second state) when there is transition data that matches the first state name and the event name. transfer to

그리고, 실행부(223)는 전이에 따른 고객의 상태에 할당된 액션 정보를 검출하고, 검출된 액션 정보를 기초로 고객의 상태에 할당된 액션을 실행할 수 있다. 이 때, 실행부(223)는 저장부(227)로부터 고객의 상태에 할당된 액션을 실행하기 위한 API의 인자를 검출하고, 검출된 인자를 기초로 고객의 상태에 대응되는 API를 실행하며, 실행 후 인자들을 변경할 수 있다. Then, the execution unit 223 may detect action information assigned to the state of the customer according to the transition, and execute the action assigned to the state of the customer based on the detected action information. At this time, the execution unit 223 detects an API factor for executing the action assigned to the customer's state from the storage 227, and executes the API corresponding to the customer's state based on the detected factor, After execution, the parameters can be changed.

반면, 기계 이벤트의 경우에는 기계 발생 이벤트 API가 액션의 실행에 연계된 기계 이벤트를 발생시킬 수 있다. 기계 이벤트의 발생은 유한 상태기계에서 고객의 상태 전이를 반복적으로 수행되도록 할 수 있다. 일 예로, 유한 상태기계가 제1 상태부터 제 N 상태까지의 복수의 상태로 구성되고 복수의 상태에 할당된 액션의 실행 결과 기계 이벤트가 지속적으로 발생하는 경우, 유한 상태기계는 고객의 상태를 복수의 상태들 중 하나로 자동으로 전이시킬 수 있다.On the other hand, in the case of a machine event, the machine-generated event API may generate a machine event related to the execution of an action. The occurrence of machine events can cause a customer's state transitions to be performed repeatedly in a finite state machine. For example, if the finite state machine consists of a plurality of states from the first state to the Nth state, and a machine event continuously occurs as a result of execution of an action assigned to the plurality of states, the finite state machine can automatically transition to one of the states of

다른 실시예로서, 더 이상의 기계 이벤트가 발생하지 않을 경우, 실행부(223)는 그 시점에 사용자의 고객의 최종 상태를 결정한다. 즉, 전이가 중단됨으로써, 해당 시점에 사용자 데이터에 할당되어 있던 "현재 상태명"이 최종 상태가 된다. 실행부(223)는 인터페이스 제공부(225)에 고객의 최종 상태를 전달하고, 인터페이스 제공부(225)는 고객의 단말 장치(100)에 고객의 최종 상태에 부합하는 인터페이스 화면을 표시되도록 제어할 수 있다. 즉, 인터페이스 제공부(225)에 저장되어 있던 화면 정보를 응답 데이터로서 고객의 단말장치(100)에 송신할 수 있다.In another embodiment, when no more machine events occur, the execution unit 223 determines the final status of the user's customer at that point. That is, as the transition is stopped, the "current state name" assigned to the user data at that time becomes the final state. The execution unit 223 transmits the final state of the customer to the interface providing unit 225 , and the interface providing unit 225 controls the terminal device 100 of the customer to display an interface screen corresponding to the final state of the customer. can That is, the screen information stored in the interface providing unit 225 may be transmitted to the customer's terminal device 100 as response data.

이러한 실시예에 따르면, 생성부(210) 또는 운영부(220)가 유한 상태기계를 구성하는 각각의 상태에 대해 고객의 단말 장치(100)에서 서비스 페이지의 출력이 필요한 상태인지 여부를 구분할 수 있다. 예를 들어, 제1 상태에서 제2 상태로의 상태 전이를 위하여 사용자 이벤트의 발생이 필요한 경우(즉, 기계 이벤트의 발생에 따른 전이 없이 특정 상태에 머무는(stay) 경우), 유한 상태기계는 특정 상태는 응모 행사 페이지의 표출이 필요한 상태로 판단할 수 있다. 이와 달리, 특정 상태에서 이후 상태로 상태 전이를 위하여 사용자 이벤트의 발생이 불필요한 경우, 즉 기계 이벤트 발생(예컨대, 이모티콘 지급)만으로 특정 상태에서 이후 상태로 상태 전이가 가능한 경우, 유한 상태기계는 특정 상태는 서비스 페이지의 표출이 불필요한 상태로 판단할 수 있다.According to this embodiment, the generating unit 210 or the operating unit 220 may distinguish whether the output of the service page is required in the customer's terminal device 100 for each state constituting the finite state machine. For example, when the occurrence of a user event is required for a state transition from the first state to the second state (that is, if the finite state machine stays in a specific state without a transition according to the occurrence of a machine event), the finite state machine is The state can be determined as a state that requires expression of the application event page. On the other hand, when the occurrence of a user event is unnecessary for state transition from a specific state to a later state, that is, when a state transition is possible from a specific state to a later state only by the occurrence of a machine event (eg, emoticon payment), the finite state machine is can determine that the display of the service page is unnecessary.

상술한 것처럼, 인터페이스 제공부(225)는 기업에서 홍보하고자 하는 고객 대상 프로모션, 온라인 행사 등의 컨텐츠를 담고 있는 서비스 페이지를 저장하고, 실행부(223)에 의해 결정된 상태에 대응한 서비스 페이지를 제공한다. 인터페이스 제공부(225)는 각각의 유한 상태기계를 구성하는 복수의 상태들에 대해 서비스 페이지를 일대일로 매핑하여 저장할 수 있다. 인터페이스 제공부(225)는 실행부(223)로부터 상태 정보를 전달받아, 해당 상태에 대응하는 화면을 표시할 수 있다.As described above, the interface providing unit 225 stores a service page containing contents such as customer promotions and online events that the company wants to promote, and provides a service page corresponding to the state determined by the execution unit 223 . do. The interface providing unit 225 may store a one-to-one mapping of service pages for a plurality of states constituting each finite state machine. The interface providing unit 225 may receive status information from the execution unit 223 and display a screen corresponding to the corresponding status.

이 때, 고객에게 화면(웹 페이지)을 표시하는 방식은, 유한 상태기계 운영 서버(200)의 화면 저장부(410)에 미리 저장된 여러 화면들 중 하나를 불러오는 방식(호출 방식)이나, 개별 상태에 각각에 저장되어 있던 화면을 표시하는 방식(개별 매칭 방식) 중 선택적으로 구현될 수 있다.At this time, the method of displaying the screen (web page) to the customer is a method of calling one of several screens pre-stored in the screen storage unit 410 of the finite state machine operation server 200 (call method), or an individual state It can be selectively implemented among the methods (individual matching method) of displaying the screen stored in each.

검증부(230)는 검증 결과에 따라 에러가 있다고 판단되면, 해당 에러가 무엇인지를 나타내는 에러 상세 정보, 해당 에러의 해결을 위한 솔루션을 나타내는 솔루션 정보를 생성하여 제공할 수 있다. 이에 따라, 관리자는 단말 장치(100)를 통해 생성된 유한 상태기계에서 에러가 발생한 영역, 해당 에러가 무엇인지를 나타내는 에러 상세 정보, 해당 에러의 해결을 위한 솔루션을 나타내는 솔루션을 확인하고, 에러를 용이하게 해결할 수 있다. 검증부(230)의 구체적인 동작에 관해서는 도 8을 참조하여 더 상세히 설명하도록 한다.If it is determined that there is an error according to the verification result, the verification unit 230 may generate and provide detailed error information indicating what the corresponding error is and solution information indicating a solution for solving the corresponding error. Accordingly, the manager checks the region where an error occurs in the finite state machine generated through the terminal device 100 , detailed error information indicating what the corresponding error is, and a solution indicating a solution for solving the corresponding error, and corrects the error. can be easily solved. A detailed operation of the verification unit 230 will be described in more detail with reference to FIG. 8 .

한편, 제어부(250)는 유한 상태기계 운영 서버(200)의 전반적인 동작을 제어한다. 구체적으로, 제어부(250)는 유한 상태기계의 생성과 운영을 관리하기 위하여, 생성부(210), 운영부(220), 검증부(230), 저장부(240), 제어부(250), 통신부(260), 관리자 인터페이스(270)의 전부 또는 일부 기능을 제어할 수 있다. Meanwhile, the controller 250 controls the overall operation of the finite state machine operation server 200 . Specifically, the control unit 250 controls the generation and operation of the finite state machine, the generation unit 210, the operation unit 220, the verification unit 230, the storage unit 240, the control unit 250, the communication unit ( 260), all or some functions of the manager interface 270 may be controlled.

저장부(240)는 유한 상태기계 운영 서버(200)의 동작에 필요한 데이터들을 기록하는 저장 장치로서, 생성부(210)에 의해 생성된 유한 상태기계 데이터를 저장할 수 있고, 다른 구성요소들의 각종 기능을 구현을 위한 데이터들을 저장할 수 있다. 또한 본 도면에서는 서버의 저장부(240)와 운영부(230)의 저장부(227)를 분리하여 도시하였으나, 이에 한정되는 것은 아니며, 통합된 하나의 저장 장치에 의해 구현되거나 다수의 저장 장치(예컨대, 여러 타입의 메모리)로 구현될 수 있다. The storage unit 240 is a storage device for recording data necessary for the operation of the finite state machine operation server 200 , and may store the finite state machine data generated by the generation unit 210 , and various functions of other components. It can store data for implementation. In addition, in this figure, the storage unit 240 of the server and the storage unit 227 of the operation unit 230 are separately illustrated, but the present invention is not limited thereto, and may be implemented by one integrated storage device or a plurality of storage devices (eg, , multiple types of memory).

통신부(260)는 단말 장치(100)와 유한 상태기계 운영 서버 (200) 사이의 통신이 가능하도록 통신 구성(configuration) 등을 설정할 수 있다. 이에 따라, 통신부(260)는 접속한 고객 단말 장치(100)에 데이터를 전송하거나 데이터를 수신할 수 있다. 일 예로, 통신부(260)는 응모 행사 페이지에 대한 고객 입력을 수신하여 요청 수신부(221)에 전달하고, 인터페이스 제공부(225)에서 나온 응답 데이터를 고객 단말장치(100)에 전달할 수 있다.The communication unit 260 may set a communication configuration to enable communication between the terminal device 100 and the finite state machine operation server 200 . Accordingly, the communication unit 260 may transmit data or receive data to the connected customer terminal device 100 . For example, the communication unit 260 may receive a customer input for the application event page, transmit it to the request receiving unit 221 , and transmit response data from the interface providing unit 225 to the customer terminal device 100 .

도 3a는 본 발명의 일 실시 예에 따른 유한 상태기계를 도식화한 유한 상태기계 다이어그램을 나타내는 예시도이다. 도 3a를 참조하면, 예를 들어, 관리자는 관리자 페이지를 통하여 액션으로 "A0"이 할당된 "S0" 상태를 입력하고, 액션으로 "A1"이 할당된 "S1" 상태를 입력하며, 액션으로 "A2"가 할당된 "S2" 상태를 입력할 수 있다. 그리고, 관리자는 관리자 페이지를 통하여 상태 "S0"으로부터 상태 "S1"으로의 전이를 구성하는 이벤트 "E0"를 입력하고, 상태 "S1"으로부터 상태 "S2"로의 전이를 구성하는 이벤트 "E1"을 입력할 수 있다. 일 실시 예로서, 관리자는 텍스트 형태의 프로그래밍 언어를 입력하여 유한 상태기계를 생성할 수 있고, 모델링 툴(예컨대, plantUML)을 통해 입력된 유한 상태기계가 도식화되도록 구현할 수 있다. 이처럼 본 발명은 유한 상태기계를 다이어그램으로 도식화함으로써, 각각의 상태와 액션, 이벤트 정보를 용이하게 파악할 수 있고, 유지보수가 용이하다는 장점이 있다.3A is an exemplary diagram illustrating a finite state machine diagram schematically illustrating a finite state machine according to an embodiment of the present invention. Referring to FIG. 3A , for example, the administrator inputs a "S 0 " state to which "A 0 " is assigned as an action and an "S 1 " state to which "A 1 " is assigned as an action through the administrator page. and "S 2 " to which "A 2 " is assigned as an action can be entered. Then, the administrator inputs the event "E 0 " constituting the transition from the state "S 0 " to the state "S 1 " through the administrator page, and configures the transition from the state "S 1 " to the state "S 2 ". Event "E 1 " can be entered. As an embodiment, the administrator may generate a finite state machine by inputting a programming language in the form of a text, and may implement such that the inputted finite state machine is schematized through a modeling tool (eg, plantUML). As described above, the present invention has the advantage of being able to easily grasp each state, action, and event information by diagramming the finite state machine as a diagram, and easy maintenance.

이 경우, 일 실시 예로서, 유한 상태기계 다이어그램 생성부(212)는, 도 3a와 같이, 각각의 상태를 도식화한 "S0" 상태 블록과 "S1" 상태 블록과 "S2" 상태 블록을 생성할 수 있다.In this case, as an embodiment, the finite state machine diagram generating unit 212, as shown in FIG. 3A , an "S 0 " state block, an "S 1 " state block, and an "S 2 " state block schematically illustrating each state. can create

그리고, 유한 상태기계 다이어그램 생성부(212)는, 도 3a와 같이,"S0" 에서 "S1"을 향하는 화살표선을 "S0" 상태 블록에 "S1" 상태 블록 사이에 연결하고, "S1" 에서 "S2" 를 향하는 화살표선을 "S1" 상태 블록과 "S2" 상태 블록 사이에 연결한 유한 상태기계 다이어그램을 생성할 수 있다.Then, finite state machine diagram generator 212, connected between as shown in Figure 3a, "S 0" in "S 1" to head arrow line to "S 0" state block to "S 1" state block, is an arrow line towards the "S 2" in "S 1" to create a finite state machine diagram, connected between the "S 1" state block and "S 2" block state.

도 3b는 본 발명의 일 실시 예에 따른 유한 상태기계 생성 방법을 나타내는 흐름도이다. 도 3b를 참조하면, 먼저 유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보와 해당 상태에서 실행되어야 할 액션을 나타내는 액션 정보를 할당할 수 있다(S101). 일 실시 예로서, 액션 정보는 하나의 상태 정보에 하나씩 할당되는 것이 원칙이나, 액션의 합성이 필요한 경우 둘 이상의 액션 정보가 할당될 수도 있다.3B is a flowchart illustrating a method for generating a finite state machine according to an embodiment of the present invention. Referring to FIG. 3B , first, to each of a plurality of states constituting the finite state machine, state information and action information indicating an action to be executed in the corresponding state may be allocated ( S101 ). As an embodiment, in principle, action information is allocated one by one to one piece of state information, but two or more action information may be allocated when a combination of actions is required.

그리고, 복수의 상태 각각에 대하여 해당 상태에서 이후 상태로의 전이를 위한 이벤트 정보를 할당할 수 있다(S102).Then, event information for transition from the corresponding state to the subsequent state may be allocated to each of the plurality of states (S102).

그리고, 할당된 상태 정보, 액션 정보 및 이벤트 정보를 이용하여 유한 상태기계를 생성할 수 있다(S103).Then, a finite state machine may be generated using the allocated state information, action information, and event information (S103).

여기서, 생성된 유한 상태기계는 상태에 할당된 액션의 실행 결과가 타 상태로의 전이를 위한 이벤트의 발생이 되도록 구성될 수 있다.Here, the generated finite state machine may be configured such that an execution result of an action assigned to a state is an event for transition to another state.

또한, 유한 상태기계를 생성하는 단계(S103)는 상태에 이전 상태에서 해당 상태로의 전이를 위한 이벤트 정보만이 할당되어 있는 경우, 해당 상태를 종료 상태로 자동으로 설정하는 단계 및 상태에 해당 상태로부터 이후 상태로의 전이를 위한 이벤트 정보만이 할당되어 있는 경우, 해당 상태를 시작 상태로 자동으로 설정하는 단계를 포함할 수 있다.In addition, the step of generating the finite state machine ( S103 ) is a step of automatically setting the corresponding state to the end state when only event information for transition from the previous state to the corresponding state is assigned to the state and the state corresponding to the state When only event information for transition from to a subsequent state is allocated, the method may include automatically setting the corresponding state to the starting state.

또한, 유한 상태기계를 생성하는 단계(S103)는 복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 상태들을 합성하여 유한 상태기계를 생성하는 합성 단계를 더 포함할 수 있다.In addition, the generating of the finite state machine ( S103 ) may further include a synthesizing step of generating the finite state machine by synthesizing states composed of actions whose order does not affect each other among the plurality of states.

한편, 유한 상태기계 생성 방법은 복수의 상태들 중 응모 행사 페이지의 표시가 필수인 상태에는 고객 단말 장치(100)에 표시할 페이지를 해당 상태에 매칭하여 저장하는 단계를 더 포함할 수 있다.Meanwhile, the method for generating a finite state machine may further include matching and storing a page to be displayed on the customer terminal device 100 in a state in which display of the application event page is essential among the plurality of states.

또한, 본 발명의 일 실시 예에 따른 유한 상태기계 생성 방법은 생성된 유한 상태기계에 할당된 상태 정보 및 액션 정보를 이용하여 유한 상태기계를 도식화한 유한 상태기계 다이어그램을 생성하는 단계를 더 포함할 수 있다. 구체적으로, 유한 상태기계 다이어그램을 생성하는 단계는 복수의 상태 각각에 대응되는 상태 블록을 생성하는 단계, 이벤트 정보를 이용하여 생성된 복수의 상태 블록 간의 전이 데이터를 판별하고 복수의 상태 블록 간의 연결 관계를 형성하는 단계를 포함할 수 있다.In addition, the method for generating a finite state machine according to an embodiment of the present invention may further include generating a finite state machine diagram schematically illustrating a finite state machine by using state information and action information allocated to the generated finite state machine. can Specifically, generating a finite state machine diagram includes generating a state block corresponding to each of a plurality of states, determining transition data between a plurality of state blocks generated using event information, and a connection relationship between the plurality of state blocks. It may include the step of forming

본 발명의 일 실시 예에 따른 유한 상태기계 생성 방법은 생성된 유한 상태기계를 검증하는 단계를 더 포함할 수 있다. 여기서, 검증하는 단계는 상태에 할당된 액션이 기 등록된 액션인지 여부, 상태에 할당된 액션을 실행하기 위한 API의 인자 체크를 통과하였는지 여부, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결했는지 여부 및 상태에 지정된 필수 항목이 저장부에 정의되었는지 여부 중 적어도 하나를 검증할 수 있다.The method for generating a finite state machine according to an embodiment of the present invention may further include verifying the generated finite state machine. Here, the verifying step is to determine whether the action assigned to the state is a previously registered action, whether it has passed the argument check of the API for executing the action assigned to the state, and the event generated as a result of the execution of the action assigned to the state to the subsequent state You can verify at least one of whether you have connected to , and whether the required items specified in the state are defined in the storage.

도 4는 본 발명의 일 실시 예에 따른 서비스 시스템의 동작을 나타내는 타이밍도 이다. 도 4를 참조하면, 유한 상태기계는, 일 예로, 제1 상태, 제2 상태 및 제3 상태로 구성되고, 제1 상태에서 제2 상태로의 전이는 "VISIT" 이벤트로 구성되고, 제2 상태에서 제3 상태로의 전이는 "JOIN" 이벤트로 구성될 수 있다. 이러한 유한 상태기계는 미리 생성되어 저장부(240) 또는 저장부(227)에 관련 데이터가 저장되어 있을 수 있다.4 is a timing diagram illustrating an operation of a service system according to an embodiment of the present invention. Referring to FIG. 4 , a finite state machine, for example, consists of a first state, a second state, and a third state, and the transition from the first state to the second state consists of a “VISIT” event, and the second state The transition from state to state 3 may consist of a "JOIN" event. Such a finite state machine may be generated in advance and related data may be stored in the storage unit 240 or the storage unit 227 .

일 실시예로서, 인터페이스 제공부(225)는 상태와 매핑된 서비스 페이지를 저장하는 화면 저장부(410) 및 고객 단말장치(100)에 서비스 페이지(화면 정보)를 출력하는 화면 표시부(420)를 포함한다. 도 4를 참조하면, 인터페이스 제공부(225)의 화면 저장부(410)는 고객의 단말 장치(100)에서 표시될 응모 행사를 위한 서비스 페이지들을 저장할 수 있다. 일 예로, 응모 행사 페이지는 고객 인터페이스(또는 서비스 페이지)로, "NONE 화면", "VISITED 화면", "JOINED 화면", "FAILED 화면", "DONE 화면"을 포함한다. 이러한 복수의 고객 인터페이스 화면은 미리 생성되어 화면 저장부(410)에 저장되고, 각각의 상태와 일대일로 매핑되어 저장된다.As an embodiment, the interface providing unit 225 includes a screen storage unit 410 for storing a service page mapped with a status and a screen display unit 420 for outputting a service page (screen information) to the customer terminal device 100 . include Referring to FIG. 4 , the screen storage unit 410 of the interface providing unit 225 may store service pages for an application event to be displayed on the customer's terminal device 100 . For example, the application event page is a customer interface (or service page), and includes "NONE screen", "VISITED screen", "JOINED screen", "FAILED screen", and "DONE screen". Such a plurality of customer interface screens are generated in advance and stored in the screen storage unit 410, and are stored in a one-to-one mapping with each state.

고객이 응모 행사 페이지에 최초로 진입하면, 화면 표시부(420)는 초기 화면인 응모 행사 시작 화면을 화면 저장부(410)로부터 검출하여 최초 진입한 고객 단말 장치(100)에 표시되도록 할 수 있다(S201). 이 경우, 화면 표시부(420)는 고객이 응모 행사 시작 화면에 진입하였음을 알리는 "VISIT EVENT"를 생성하여 유한 상태기계에 전송할 수 있다(S202).When the customer enters the application event page for the first time, the screen display unit 420 may detect the application event start screen, which is the initial screen, from the screen storage unit 410 and display it on the first entered customer terminal device 100 ( S201 ). ). In this case, the screen display unit 420 may generate "VISIT EVENT" notifying that the customer has entered the application event start screen and transmit it to the finite state machine (S202).

유한 상태기계는 "VISIT EVENT"를 수신하는 등 고객이 응모 행사에 진입한 것으로 판단되면, 고객의 상태를 확인하고 응답을 생성할 수 있다(S203). 구체적으로, S203 단계에서, 유한 상태기계의 사용자 발생 이벤트 API는 고객 입력(페이지 최초 진입)에 따라 사용자 이벤트인 "VISIT EVENT"를 발생시킨다. 그리고 실행부(223)는 제1 상태에서 상기 "VISIT EVENT"를 통해 전이를 일으켜 이후 상태인 제2 상태(VISITED STATE)로 고객의 상태를 전이시킬 수 있다.When it is determined that the customer has entered the application event, such as by receiving "VISIT EVENT", the finite state machine may check the customer's status and generate a response (S203). Specifically, in step S203, the user-generated event API of the finite state machine generates a user event "VISIT EVENT" according to a customer input (page first entry). In addition, the execution unit 223 may make a transition from the first state through the "VISIT EVENT" to transition the customer's state to the second state (VISITED STATE), which is a subsequent state.

실행부(223)에는 상태 전이에 따라 고객의 상태를 제2 상태(VISITED STATE)로 변경하고, 추가적인 전이 이벤트 없이 최종 상태가 VISITED 상태로 결정되면 해당 상태(VISITED STATE)에서 표시할 화면을 인터페이스 제공부(225)에 요청한다(S204).The execution unit 223 changes the customer's state to the second state (VISITED STATE) according to the state transition, and when the final state is determined to be the VISITED state without an additional transition event, a screen to be displayed in the corresponding state (VISITED STATE) is interfaced Request to study (225) (S204).

화면 표시부(420)는 화면 저장부(410)에 "VISITED 화면"을 요청하고(S205), 화면 저장부(410)는 기 저장된 복수의 화면들 중 "VISITED 화면"을 검출하여 화면 표시부(420)에 전송할 수 있다(S206). 이에 따라, 화면 표시부(420)는 고객 단말 장치(100)에 "VISITED 화면"이 표시되도록 할 수 있다 (S207). 즉, 인터페이스 제공부(225)는 유한 상태기계의 요청에 따라 표시될 화면을 제공하여, 사용자의 상태에 따른 화면이 표시되도록 한다.The screen display unit 420 requests a "VISITED screen" from the screen storage unit 410 (S205), and the screen storage unit 410 detects a "VISITED screen" from among a plurality of pre-stored screens and displays the screen display unit 420. can be transmitted to (S206). Accordingly, the screen display unit 420 may display the “VISITED screen” on the customer terminal device 100 ( S207 ). That is, the interface providing unit 225 provides a screen to be displayed according to the request of the finite state machine, so that the screen according to the user's state is displayed.

한편, 고객이 "VISITED 화면"에서 응모 버튼을 클릭하면(S208), 화면 표시부(420)는 고객이 응모 버튼을 클릭하는 행위(사용자 이벤트)가 발생하였음을 실행부(223)에 알린다(S209).On the other hand, when the customer clicks the application button on the "VISITED screen" (S208), the screen display unit 420 notifies the execution unit 223 that the customer clicks the application button (user event) has occurred (S209) .

유한 상태기계는 "JOIN 이벤트 발생" 메시지가 수신되면 고객의 상태를 확인하고 응답을 생성할 수 있다(S210). 구체적으로, S210 단계에서, 실행부(223)의 사용자 발생 이벤트 API는 고객 입력(고객의 응모 버튼 클릭)에 따라 사용자 이벤트인 "JOIN 이벤트"를 발생시키고, 실행부(223)는 제2 상태에서 전이를 구성하는 상기 "JOIN 이벤트"를 통해, 이후 상태인 제3 상태로 고객의 상태를 전이시킬 수 있다.The finite state machine may check the customer's status and generate a response when the "JOIN event occurrence" message is received (S210). Specifically, in step S210, the user-generated event API of the execution unit 223 generates a user event "JOIN event" according to the customer input (customer clicks the application button), and the execution unit 223 is in the second state. Through the "JOIN event" constituting the transition, it is possible to transition the customer's state to the third state, which is the subsequent state.

실행부(223)는 상태 전이에 따라 고객의 상태를 제3 상태(JOINED 상태)로 변경하고, 추가적인 전이 이벤트 없이 최종 상태가 JOINED 상태로 결정되면 해당 상태(JOINED 상태)에서 표시할 화면을 인터페이스 제공부(225)에 요청한다(S211).The execution unit 223 changes the customer's state to the third state (JOINED state) according to the state transition, and when the final state is determined to be the JOINED state without an additional transition event, the screen to be displayed in the corresponding state (JOINED state) is interfaced Request to study (225) (S211).

이 경우, 화면 표시부(420)는 화면 저장부(410)에 "JOINED 화면"을 요청하고(S212), 화면 저장부(410)는 기 저장된 복수의 화면들 중 "JOINED 화면"을 검출하여 화면 표시부(420)에 전송할 수 있다(S213). 이에 따라, 화면 표시부(420)는 고객 단말 장치(100)에 "JOINED 화면"이 표시되도록 할 수 있다 (S214).In this case, the screen display unit 420 requests a "JOINED screen" from the screen storage unit 410 (S212), and the screen storage unit 410 detects a "JOINED screen" among a plurality of pre-stored screens, and the screen display unit It can be transmitted to (420) (S213). Accordingly, the screen display unit 420 may display the "JOINED screen" on the customer terminal device 100 (S214).

이처럼, 실행부(223)는 유한 상태기계에 포함된 복수의 상태 중 화면 표시가 필요한 상태를 구분하여, 인터페이스 제공부(225)에 화면 표시를 요청할 수 있다. 본 실시예에서는, 화면 저장부(410)에 관련 화면 데이터를 미리 저장해두고, 실행부(223)의 요청에 따라 표시할 화면을 출력하는 방식을 위주로 설명하였다. 그러나 이에 한정되는 것은 아니며, 각각의 화면은 유한 상태기계의 개별 상태와 매칭되어 저장되거나 표시될 수도 있다. 또한, 도 4에서 화면 저장부(410)에 저장된 화면의 로딩은 URL(Uniform Resource Locator)을 이용하여 수행될 수 있다.As such, the execution unit 223 may classify a state requiring screen display among a plurality of states included in the finite state machine, and may request the interface providing unit 225 to display the screen. In this embodiment, the description has been focused on a method of pre-stored related screen data in the screen storage unit 410 and outputting a screen to be displayed in response to a request from the execution unit 223 . However, the present invention is not limited thereto, and each screen may be stored or displayed by matching an individual state of the finite state machine. In addition, loading of the screen stored in the screen storage unit 410 in FIG. 4 may be performed using a Uniform Resource Locator (URL).

이와 같이, 본 발명에 따르면, 유한 상태기계는 응모 행사 페이지를 통한 고객 입력을 기초로 사용자 이벤트를 발생시키거나 또는 상태에 할당된 액션의 실행과 연계하여 기계 이벤트를 발생시켜, 고객의 현재 상태에 적합한 응모 행사 페이지를 고객의 단말 장치(100)에 표시하도록 제어할 수 있다.As described above, according to the present invention, the finite state machine generates a user event based on a customer input through the application event page or generates a machine event in connection with the execution of an action assigned to a state, thereby changing the current state of the customer. A suitable application event page may be controlled to be displayed on the customer's terminal device 100 .

도 5는 본 발명의 일 실시 예에 따른 유한 상태기계 운영 서버(200)의 서비스 운영 방법을 나타내는 흐름도 이다. 도 5를 참조하면, 먼저 고객은 자신의 단말 장치(100)를 이용하여 서비스 페이지에 진입할 수 있다(S301). 일 예로, 고객은 자신의 단말 장치(100)에 응모 행사 페이지에 대응되는 URL 입력하여 응모 행사 페이지에 진입할 수 있다.5 is a flowchart illustrating a service operation method of the finite state machine operation server 200 according to an embodiment of the present invention. Referring to FIG. 5 , first, a customer may enter a service page using his/her terminal device 100 ( S301 ). For example, the customer may enter the application event page by inputting a URL corresponding to the application event page in his/her terminal device 100 .

그리고, 유한 상태기계는 실행부(223)에 의해 고객의 진입이 감지되면 사용자 이벤트 발생 여부를 판단할 수 있다(S302). 예컨대, 고객에게 행사 응모 관련 팝업창을 띄우거나, 광고 배너를 노출한 경우, 사용자가 응모 행사 페이지에 진입한 것으로 볼 수 있다. 이 때, 응모 행사 배너나 창(window)을 클릭하여 응모 행사를 위한 상세 페이지로 이동할 경우 유한 상태기계는 사용자 이벤트(방문(VISIT) 이벤트)가 발생한 것으로 판단할 수 있다.Then, the finite state machine may determine whether or not a user event occurs when the entry of the customer is detected by the execution unit 223 ( S302 ). For example, when a pop-up window related to event application is opened to a customer or an advertisement banner is exposed, it may be considered that the user has entered the application event page. At this time, when the user event banner or window is clicked to move to the detailed page for the application event, the finite state machine may determine that a user event (visit event) has occurred.

만약, 사용자 이벤트가 발생하지 않으면(S302 : NO), 예컨대, 팝업창을 닫거나 광고배너를 클릭하지 않으면, 실행부(223)는 진행을 종료할 수 있다(S303).If the user event does not occur (S302: NO), for example, if the pop-up window is not closed or an advertisement banner is not clicked, the execution unit 223 may end the process (S303).

사용자 이벤트가 발생하면(S302 : YES), 유한 상태기계는 고객의 현재 상태에서 전이를 구성하는 이벤트가 발생한 것으로 보고, 고객의 상태를 다음 상태로 전이시킬 수 있다(S304). 구체적으로, 유한 상태기계가 제 1 부터 제 N 까지의 상태로 구성되는 경우, 실행부(223)는 고객의 현재 상태에서 상기 발생된 사용자 이벤트를 통해 이후의 상태로 고객의 상태를 전이시킬 수 있다.When a user event occurs (S302: YES), the finite state machine may consider that an event constituting a transition from the current state of the customer has occurred, and may transition the state of the customer to the next state (S304). Specifically, when the finite state machine consists of states 1 to N, the execution unit 223 may transition the state of the customer from the current state of the customer to the next state through the generated user event. .

그리고, 실행부(223)는 전이에 따른 고객의 상태에 할당된 액션 정보를 검출하고, 검출된 액션 정보를 기초로 고객의 상태에 할당된 액션을 실행할 수 있다(S305). 여기서, 실행하는 단계(S305)는 저장부로부터 고객의 상태에 할당된 액션을 실행하기 위한 API의 인자를 검출하는 단계, 검출된 인자를 기초로 고객의 상태에 대응되는 API를 실행하는 단계 및 실행 후 인자들을 변경하고, 액션의 실행에 연계된 이벤트를 발생시키는 단계를 포함할 수 있다.Then, the execution unit 223 may detect the action information assigned to the state of the customer according to the transition, and execute the action assigned to the state of the customer based on the detected action information ( S305 ). Here, the executing step (S305) is a step of detecting a factor of the API for executing the action assigned to the status of the customer from the storage unit, the steps of executing and executing the API corresponding to the status of the customer based on the detected factor After changing the factors, it may include the step of generating an event related to the execution of the action.

그리고, 실행부(223)는 실행된 액션에 연계된 기계 이벤트의 발생이 있는지 여부를 판단할 수 있다(S306). 구체적으로, S306 단계에서, 실행부(223)의 기계 발생 이벤트 API는 S305 단계에서 실행되는 액션에 기계 이벤트가 매핑되어 있는 경우, 액션의 실행과 함께 해당 기계 이벤트를 발생한다.Then, the execution unit 223 may determine whether or not there is an occurrence of a machine event associated with the executed action (S306). Specifically, in step S306, when the machine event is mapped to the action executed in step S305, the machine-generated event API of the execution unit 223 generates the corresponding machine event along with the execution of the action.

기계 이벤트가 발생하면(S306 : YES), 실행부(223)는 고객의 현재 상태에서 상기 발생된 기계 이벤트를 통해 이후의 상태로 고객의 상태를 전이시킬 수 있다(S304).When a machine event occurs (S306: YES), the execution unit 223 may transition the customer's state from the current state of the customer to a subsequent state through the generated machine event (S304).

이러한 S304, S305 및 S306 단계는 유한 상태기계를 구성하는 제1 부터 제N 까지의 복수의 상태 모두에 대해서 기계 발생 이벤트 API에서 기계 이벤트 발생을 조건으로 반복적으로 수행될 수 있고, 기계 이벤트가 발생하는 경우(S306) 연속적인 전이가 일어날 수 있다.These steps S304, S305 and S306 can be repeatedly performed under the condition that a machine event occurs in the machine-generated event API for all of the first to N-th states constituting the finite state machine. In case S306, successive transitions may occur.

다만, 기계 이벤트가 발생하지 않으면(S306 : NO), 실행부(223)는 고객의 최종 상태로 결정하고(S307), 인터페이스 제공부(225)에 고객의 최종 상태를 전달하며 인터페이스 제공부(225)는 고객의 단말 장치(100)에 고객의 최종 상태에 부합하는 인터페이스 화면을 표시할 수 있다(S308). However, if the machine event does not occur (S306: NO), the execution unit 223 determines the final state of the customer (S307), transmits the final state of the customer to the interface providing unit 225, and the interface providing unit 225 ) may display an interface screen corresponding to the final state of the customer on the customer's terminal device 100 ( S308 ).

도 6은 본 발명의 일 실시 예에 따른 이모티콘 지급 응모 행사의 유한 상태기계 다이어그램 이다. 도 6을 참조하면, 유한 상태기계는 이모티콘 지급을 위한 응모 행사에 대해, 시작 상태(30), 방문함 상태(31), 이모티콘 지급 중 상태(32), 지급 실패 상태(33), 지급 완료 상태(34)를 포함할 수 있다.6 is a finite state machine diagram of an emoticon payment application event according to an embodiment of the present invention. Referring to FIG. 6 , the finite state machine has a starting state (30), a visited state (31), an emoticon payment state (32), a payment failure state (33), and a payment completion state for an application event for emoticon payment. (34) may be included.

고객이 이모티콘 지급 응모 행사에 참여하기 위하여 자신의 단말 장치(100)를 이용하여 서비스 페이지에 접속하면, 유한 상태기계의 사용자 발생 이벤트 API는 "방문 이벤트"(VISIT 이벤트)를 발생시킬 수 있다. 이 경우, 유한 상태기계에서 고객의 상태는 시작 상태(30)에서 방문함 상태(31)로 전이될 수 있다.When a customer accesses a service page using his/her terminal device 100 in order to participate in an emoticon payment application event, the user-generated event API of the finite state machine may generate a "visit event" (VISIT event). In this case, the state of the customer in the finite state machine can be transitioned from the starting state 30 to the visited state 31 .

그리고, 유한 상태기계는 방문함 상태(31)에서 기계 이벤트에 의한 자동적인 전이가 없는 경우, 고객이 방문함 상태(31)를 최종 상태로 보고, 방문함 상태에 매칭된 "응모를 위한 페이지"를 검출하여 고객에게 제공할 수 있다. 이 경우, 고객 단말 장치(100)는 "응모를 위한 페이지"를 표시할 수 있다.And, in the finite state machine, if there is no automatic transition due to a machine event in the visited state 31, the customer sees the visited state 31 as the final state, and the "page for application" matched to the visited state can be detected and provided to customers. In this case, the customer terminal device 100 may display a “page for application”.

이 후, 이모티콘 지급 응모 행사에 참여하기 위하여, "응모를 위한 페이지" 의 응모 버튼을 클릭하는 고객 입력이 수신되면, 유한 상태기계의 사용자 발생 이벤트 API는 "응모 이벤트"(JOIN 이벤트)를 발생시킨다. 이벤트 발생에 따라, 유한 상태기계에서 고객의 상태는 방문함 상태(31)에서 이모티콘 지급 중 상태(32)로 전이될 수 있다. 그리고, 유한 상태기계는 이모티콘 지급 중 상태(32)에 할당된 이모티콘 지급 API를 실행할 수 있다.After that, when a customer input of clicking the application button of the “page for application” is received in order to participate in the emoticon payment application event, the user-generated event API of the finite state machine generates an “application event” (JOIN event). . According to the occurrence of an event, the state of the customer in the finite state machine may be transitioned from the visited state 31 to the emoticon payment state 32 . Then, the finite state machine may execute the emoticon payment API assigned to the emoticon disbursing state 32 .

이모티콘 지급 API의 실행 결과 이모티콘 지급이 성공하면, 유한 상태기계의 기계 발생 이벤트 API는 "지급 완료 이벤트"(기계 이벤트)를 발생시킬 수 있다. 이 때, 유한 상태기계에서 고객의 상태는 이모티콘 지급 중 상태(32)에서 지급 완료 상태(34)로 전이된다. 유한 상태기계는 추가적인 전이가 일어나지 않으므로, 고객이 현재 도달한 최종 상태를 지급 완료 상태(34)로 보고, 지급 완료 상태(34)에 매칭된 "이모티콘 지급 완료 알림을 위한 페이지"를 검출하여 고객에게 해당 페이지를 제공할 수 있다. 이 경우, 고객 단말 장치(100)는 매칭된 "이모티콘 지급 완료 알림을 위한 페이지"를 표시할 수 있다.If emoticon payment is successful as a result of executing the emoticon payment API, the machine-generated event API of the finite state machine may generate a "payment completion event" (machine event). At this time, the state of the customer in the finite state machine is transferred from the emoticon payment in progress state 32 to the payment completion state 34 . Since the finite state machine does not have additional transitions, the final state the customer has reached is regarded as the payment completion state 34 , and a "page for emoticon payment completion notification" matched to the payment completion state 34 is detected and sent to the customer. You can provide that page. In this case, the customer terminal device 100 may display the matched "page for notification of payment completion of emoticons".

그러나 이모티콘 지급 API의 실행 결과 이모티콘 지급이 실패하면, 유한 상태기계의 기계 발생 이벤트 API는 "지급 실패 이벤트"를 발생시킬 수 있다. 이 경우, 유한 상태기계에서 고객의 상태는 이모티콘 지급 중 상태(32)에서 지급 실패 상태(33)로 전이된다. 마찬가지로, 유한 상태기계는 추가적인 전이가 일어나지 않으면, 고객이 현재 도달한 최종 상태를 지급 실패 상태(33)로 보고, 유한 상태기계는 지급 실패 상태(33)에 매칭된 "이모티콘 지급 실패 알림을 위한 페이지"를 검출하여 방문함 상태(33)의 고객에게 해당 페이지 화면을 제공할 수 있다.However, if emoticon payment fails as a result of executing the emoticon payment API, the machine-generated event API of the finite state machine may generate a “payment failure event”. In this case, the state of the customer in the finite state machine transitions from the emoticon payment in progress state 32 to the payment failure state 33 . Similarly, the finite state machine sees the final state reached by the customer as the payment failure state (33) if no further transitions occur, and the finite state machine matches the payment failure state (33) to the “page for emoticon payment failure notification”. By detecting ", it is possible to provide the corresponding page screen to the customer in the visited state (33).

일 실시예로서, 관리자는 지급 실패 시 지급을 재시도하도록 설계할 수 있다(RESEND 기능). 예를 들어, 지급 실패 이벤트가 발생한 경우 유한 상태기계는 고객을 지급 실패 상태(33)로 전이시키고 지급 실패 페이지를 출력할 수 있다. 동시에(또는 수 초가 지난 후), 자동으로 지급을 재시도하도록, 이모티콘 지급중 상태(32)로 상태를 전이시켜 지급을 한번 더 시도하도록 구현할 수 있다. 이는 선택적 기능으로서, 관리자의 설계에 따라 적절히 구현될 수 있다. As an embodiment, the administrator may design to retry the payment when the payment fails (RESEND function). For example, when a payment failure event occurs, the finite state machine may transition the customer to the payment failure state 33 and output a payment failure page. At the same time (or after several seconds have elapsed), it can be implemented to automatically retry the payment, transition the state to the emoticon payment state 32 and try the payment once more. This is an optional function and may be appropriately implemented according to the design of the administrator.

다른 실시예로, 관리자에 의해 수동으로 재시도되도록 RESESND 기능을 관리자에 의한 사용자 이벤트로 구현할 수 있다. 또 다른 실시예로, 일정시간마다 자동으로 재시도되도록 REPEAT_10M(예컨대, 10분마다 재시도)와 같은 기계 이벤트를 구현할 수도 있다.In another embodiment, the RESESND function may be implemented as a user event by the administrator to be manually retried by the administrator. In another embodiment, a machine event such as REPEAT_10M (eg, retry every 10 minutes) may be implemented to automatically retry every predetermined time.

이러한 도 6에 따른 상태 블록을 도 5에 따른 알고리즘 관점에서 설명하면 다음과 같다. 후술하는 유한 상태기계의 동작은 서버(200)의 운영부(220)에 의해 동작하며, 설명의 편의상 유한 상태기계가 전이, 이벤트, 액션 등의 동작을 수행하는 것처럼 혼용하여 표현될 수 있다. 이는 유한 상태기계가 실질적으로 운영부(220)에 포함된 구성요소들(221, 223, 225, 227)의 유기적인 동작에 의해 구현되기 때문이다.The state block according to FIG. 6 will be described in terms of the algorithm according to FIG. 5 as follows. The operations of the finite state machine, which will be described later, are operated by the operation unit 220 of the server 200, and for convenience of description, the finite state machine may be expressed as if the finite state machine performs operations such as transitions, events, and actions. This is because the finite state machine is actually implemented by the organic operation of the components 221 , 223 , 225 , and 227 included in the operation unit 220 .

고객이 이모티콘 지급 응모 행사에 참여하기 위하여 자신의 단말 장치(100)를 이용하여 응모 행사 페이지에 진입하면(S301), 유한 상태기계의 사용자 발생 이벤트 API는 고객의 입력인 "응모 행사 페이지 진입"에 대응되는 "방문 이벤트"를 발생시키고(S302 : YES), 유한 상태기계에서 고객의 상태를 시작 상태(30)에서 방문함 상태(31)로 전이시킬 수 있다(S304).When the customer enters the application event page using his/her terminal device 100 to participate in the emoticon payment application event (S301), the user-generated event API of the finite state machine responds to the customer's input "entering the application event page" A corresponding "visited event" may be generated (S302: YES), and the state of the customer may be transitioned from the starting state 30 to the visited state 31 in the finite state machine (S304).

그리고, 유한 상태기계는 방문함 상태(31)에 할당된 액션을 실행하고(S305), 액션의 결과로, 유한 상태기계의 기계 발생 이벤트 API에서 기계 이벤트를 발생시키는지 판단한다(S306). 본 실시예에서, 유한 상태기계는 방문함 상태(31)에 할당된 액션의 실행에 연계되어 기계 이벤트를 발생시키지 않기에(S306 : NO), 유한 상태기계는 고객의 최종 상태를 방문함 상태(31)로 결정(S307)한다. 실행부(223)는 인터페이스 제공부(225)에 고객의 현재 상태명을 방문항 상태(31)명으로 전달하고, 인터페이스 제공부(225)는 고객의 최종 상태인 방문함 상태(31)에 부합하는 "응모를 위한 페이지"를 고객의 단말 장치(100)에 표시되도록 할 수 있다(S308).Then, the finite state machine executes the action assigned to the visited state 31 (S305), and as a result of the action, it is determined whether a machine event is generated in the machine-generated event API of the finite state machine (S306). In this embodiment, since the finite state machine does not generate a machine event associated with the execution of an action assigned to the visited state 31 (S306: NO), the finite state machine visits the final state of the customer ( 31) is determined (S307). The execution unit 223 transmits the current state name of the customer to the interface providing unit 225 as the visited state 31 name, and the interface providing unit 225 corresponds to the visited state 31 which is the final state of the customer. A "page for application" may be displayed on the customer's terminal device 100 (S308).

한편, 방문한 상태(31)의 고객이 자신의 단말 장치(100)에 표시된 "응모를 위한 페이지"에서 응모창을 클릭하면(S301), 유한 상태기계의 사용자 발생 이벤트 API는 고객의 입력인 "응모창 클릭"에 대응되는 "응모 버튼 클릭 이벤트"를 발생시키고(S302 : YES), 유한 상태기계가 고객의 상태를 방문함 상태(31)에서 이모티콘 지급 중 상태(32)로 전이시킬 수 있다(S304).On the other hand, when the customer in the visited state 31 clicks on the application window on the "page for application" displayed on his or her terminal device 100 (S301), the user-generated event API of the finite state machine is the customer's input "Application" An “apply button click event” corresponding to “window click” may be generated (S302: YES), and the finite state machine may transition from the state 31 of visiting the customer state to the state of paying emoticons 32 (S304). ).

그리고, 유한 상태기계는 이모티콘 지급 중 상태(32)에 할당된 이모티콘 지급 API를 실행한다. 유한 상태기계는 이모티콘 지급 API의 실행 결과 이모티콘 지급이 성공하면, 유한 상태기계의 기계 발생 이벤트 API는 상기 액션의 실행에 연계된 기계 이벤트인 "지급 완료 이벤트"를 발생시킬 수 있다(S306 : YES).Then, the finite state machine executes the emoticon payment API assigned to the emoticon disbursing state 32 . When the emoticon payment is successful as a result of the execution of the emoticon payment API in the finite state machine, the machine-generated event API of the finite state machine may generate a “payment completion event” that is a machine event related to the execution of the action (S306: YES) .

이 경우, 유한 상태기계는 고객의 상태를 이모티콘 지급 중 상태(32)에서 지급 완료 상태(34)로 전이시키고(S304), 지급 완료 상태(34)에 할당된 액션을 실행하고(S305), 유한 상태기계의 기계 발생 이벤트 API에서 기계 발생 이벤트를 발생시키는지 판단할 수 있다(S306). 본 실시예에서, 유한 상태기계는 지급 완료 상태(34)에 할당된 액션의 실행에 연계되어 기계 발생 이벤트 API에서 기계 발생 이벤트를 발생시키지 않으므로(S306 : NO), 유한 상태기계는 고객의 현재 상태(최종 상태)를 지급 완료 상태(34)로 결정(S307)한다. 실행부(223)는 인터페이스 제공부(210)에 고객의 최종 상태를 전달하며, 인터페이스 제공부(225)는 고객의 최종 상태인 지급 완료 상태(34)에 부합하는 "이모티콘 지급 완료 알림을 위한 페이지"를 고객의 단말 장치(100)에 표시되도록 할 수 있다(S308).In this case, the finite state machine transitions the customer's state from the emoticon payment in progress state 32 to the payment completion state 34 (S304), executes the action assigned to the payment completion state 34 (S305), and a finite It may be determined whether a machine-generated event is generated by the machine-generated event API of the state machine (S306). In this embodiment, the finite state machine does not generate a machine-generated event in the machine-generated event API associated with the execution of an action assigned to the paid-in state 34 (S306: NO), so the finite state machine is the customer's current state. (The final state) is determined as the payment completion state 34 (S307). The execution unit 223 transmits the final state of the customer to the interface providing unit 210, and the interface providing unit 225 corresponds to the payment completion state 34, which is the final state of the customer. " can be displayed on the customer's terminal device 100 (S308).

반면, 유한 상태기계는 이모티콘 지급 API의 실행 결과 이모티콘 지급이 실패하면, 유한 상태기계의 기계 발생 이벤트 API는 상기 액션의 실행에 연계된 기계 이벤트인 "지급 실패 이벤트"를 발생시킬 수 있다(S306 : YES). 이 경우, 유한 상태기계는 고객의 상태를 이모티콘 지급 중 상태(32)에서 지급 실패 상태(33)로 전이시키고(S304), 지급 실패 상태(33)에 할당된 액션을 실행하고(S305), 유한 상태기계의 기계 발생 이벤트 API에서 기계 이벤트를 발생시키는지 판단한다(S306). 유한 상태기계는 지급 실패 상태(33)에 할당된 액션의 실행에 연계되어 기계 발생 이벤트 API에서 기계 이벤트를 발생시키지 않기에(S306 : NO), 유한 상태기계는 고객의 최종 상태를 지급 실패 상태(33)로 결정하고(S307), 인터페이스 제공부(225)에 고객의 최종 상태를 전달하며, 인터페이스 제공부(225)는 고객의 최종 상태인 지급 실패 상태(33)에 부합하는 "이모티콘 지급 실패 알림을 위한 페이지"를 고객의 단말 장치(100)에 표시되도록 할 수 있다(S308).On the other hand, when the emoticon payment fails as a result of the execution of the emoticon payment API in the finite state machine, the machine-generated event API of the finite state machine may generate a “payment failure event” that is a machine event related to the execution of the action (S306: YES). In this case, the finite state machine transitions the customer's state from the emoticon payment in progress state 32 to the payment failure state 33 (S304), executes the action assigned to the payment failure state 33 (S305), and a finite It is determined whether a machine event is generated by the machine-generated event API of the state machine (S306). Since the finite state machine does not generate a machine event in the machine-generated event API associated with the execution of the action assigned to the payment failure state 33 (S306: NO), the finite state machine returns the customer's final state to the payment failure state (S306: NO). 33) is determined (S307), and the final state of the customer is transmitted to the interface providing unit 225, and the interface providing unit 225 corresponds to the payment failure state 33, which is the final state of the customer. A page for "can be displayed on the customer's terminal device 100 (S308).

도 7은 본 발명의 일 실시 예에 따른 유한 상태기계 다이어그램을 나타내는 예시도 이다. 일 실시예로서, 관리자는 텍스트 형태의 프로그래밍 언어를 입력하여 유한 상태기계를 생성할 수 있고, 모델링 툴(예컨대, plantUML)을 통해 입력된 유한 상태기계가 도식화되도록 구현할 수 있다.7 is an exemplary diagram illustrating a finite state machine diagram according to an embodiment of the present invention. As an embodiment, the administrator may generate a finite state machine by inputting a programming language in the form of a text, and may implement the inputted finite state machine to be schematized through a modeling tool (eg, plantUML).

도 7(a)를 참조하면, 예를 들어, 관리자는 관리자 인터페이스(270)를 통해 유한 상태기계를 설계하되, 생서부(210)를 통해, "S0" 상태에 "A0" 액션을 할당하고, "S1" 상태에는 "A1"액션을 할당하고, "S2" 상태에는 "A2"액션을 할당한 유한 상태기계를 생성할 수 있다. 그리고, 관리자는 상태 "S0"으로부터 상태 "S1"으로의 전이를 구성하는 이벤트 "E0"를 입력하고, 상태 "S1"으로부터 상태 "S2"로의 전이를 구성하는 이벤트 "E1"을 입력할 수 있다.Referring to FIG. 7( a ), for example, an administrator designs a finite state machine through the manager interface 270 , but assigns an “A 0 ” action to the “S 0” state through the generator 210 . , and, and "S 1" state is assigned to the "a 1" action "S 2" state, may generate a finite state machine is assigned a "a 2" action. Then, the manager inputs event "E 0 " constituting the transition from state "S 0 " to state "S 1 ", and event "E 1 constituting the transition from state "S 1 " to state "S 2 ". " can be entered.

이처럼 본 발명은 유한 상태기계를 다이어그램으로 도식화함으로써, 각각의 상태와 액션, 이벤트 정보 및 전이 방향 등을 용이하게 파악할 수 있고, 유지보수가 용이하다는 장점이 있다.As described above, the present invention has the advantage of being able to easily grasp each state, action, event information, and transition direction by diagramming the finite state machine as a diagram, and easy maintenance.

이 경우, 일 실시예로서, 다이어그램 생성부(212)는, 도 7(a)와 같이, "S0" 상태 블록과 "S1" 상태 블록과 "S2" 상태 블록을 생성할 수 있다. 생성된 상태 블록에는 각각의 블록에서 수행될 액션들을 할당하여 함께 표시할 수 있다.In this case, as an embodiment, the diagram generating unit 212 may generate an “S 0 ” state block, an “S 1 ” state block, and an “S 2 ” state block, as shown in FIG. 7A . Actions to be performed in each block may be assigned to the generated state block and displayed together.

그리고, 다이어그램 생성부(212)는, 도 7(a)와 같이,"S0" 에서 "S1"을 향하는 화살표선을 "S0" 상태 블록에 "S1" 상태 블록 사이에 연결하고, "S1" 에서 "S2" 를 향하는 화살표선을 "S1" 상태 블록과 "S2" 상태 블록 사이에 연결한 유한 상태기계 다이어그램을 생성할 수 있다.And, the diagram generating unit 212, as shown in Fig. 7 (a), "S 0 " to "S 1 ", connecting the arrow line from "S 0 " to the "S 1 " state block between the "S 1 " state block, is an arrow line towards the "S 2" in "S 1" to create a finite state machine diagram, connected between the "S 1" state block and "S 2" block state.

본 발명의 다른 실시예로서, 유한 상태기계에서 사용자 이벤트를 나타내는 연결선과 기계 이벤트를 나타내는 연결선을 구별하여 표시할 수 있다. 이에 대해서는 도 7(b)를 참조하여 보다 구체적으로 설명하기로 한다.As another embodiment of the present invention, a connection line indicating a user event and a connection line indicating a machine event may be distinguished and displayed in a finite state machine. This will be described in more detail with reference to FIG. 7(b).

도 7(b)는 본 발명의 일 실시 예에 따른 유한 상태기계 다이어그램을 나타내는 예시도 이다. 관리자는 상태 "S0"으로부터 상태 "S1"으로의 전이를 구성하는 사용자 이벤트 "E0"를 입력하고, 상태 "S1"으로부터 상태 "S2"로의 전이를 구성하는 기계 이벤트 "E1"을 입력할 수 있다. 이 경우, 도 7(b)와 같이, 다이어그램 생성부(212)는 "S0" 상태 블록에서 "S1" 상태 블록으로의 전이를 구성하는 연결선을 점선으로 표시하고, "S1" 상태 블록에서 "S2" 상태 블록으로의 전이를 구성하는 연결선을 실선으로 구분하여 표시한 유한 상태기계 다이어그램을 생성할 수 있다. 다만, 이는 일 실시 예일 뿐, 이러한 표현 방식에 한정되는 것은 아니며, 사용자 이벤트에 대응되는 연결선과 기계 이벤트에 대응되는 연결선은 서로 다른 색깔이나 형태로 구별될 수도 있다. 7B is an exemplary diagram illustrating a finite state machine diagram according to an embodiment of the present invention. The administrator enters the user event "E 0 " constituting the transition from state "S 0 " to state "S 1 ", and the machine event "E 1 " constituting the transition from state "S 1 " to state "S 2 ". " can be entered. In this case, as shown in Fig. 7(b), the diagram generating unit 212 displays the connecting line constituting the transition from the "S 0 " state block to the "S 1 " state block as a dotted line, and the "S 1 " state block A finite state machine diagram can be generated in which the connecting lines constituting the transition from the “S 2 ” to the state block are separated by solid lines. However, this is only an example, and the present invention is not limited to such an expression method, and a connection line corresponding to a user event and a connection line corresponding to a machine event may be distinguished in different colors or shapes.

도 7(c)는 본 발명의 일 실시 예에 따른 유한 상태기계 검증부(230)의 동작 결과 에러가 발견된 경우 표시되는 상태 블록을 나타내는 도면이다. 도 7(c)를 참조하면, 유한 상태기계 검증부(230)의 검증 결과 "S1" 상태에 에러가 있는 경우, 유한 상태기계 검증부(230)는 에러가 발생한 "S1" 상태를 나타내는 상태 블록은 에러가 없는 상태를 나타내는 상태 블록과 색깔, 명암 등으로 구별되도록 표시할 수 있다. 이처럼, 에러가 발생한 상태 블록을 구별되도록 표시함에 따라, 관리자는 신속하고 직관적으로 에러 발생 여부를 확인할 수 있다.7C is a diagram illustrating a state block displayed when an error is found as a result of the operation of the finite state machine verification unit 230 according to an embodiment of the present invention. Figure 7 (c) Referring to, if the verification result an error in the "S 1" state of the finite state machine verification unit 230, a finite state machine verification unit 230 is an error has occurred that indicates the "S 1" state The status block may be displayed to be distinguished from a status block indicating an error-free state by color, contrast, or the like. As such, by displaying the status block in which an error has occurred to be distinguished, the administrator can quickly and intuitively check whether an error has occurred.

유한 상태기계 검증부(230)는 검증 결과에 따라 에러가 있다고 판단되면, 해당 에러가 무엇인지를 나타내는 에러 상세 정보, 해당 에러의 해결을 위한 솔루션을 나타내는 솔루션 정보를 생성하여 제공할 수 있다. 이에 따라, 관리자는 단말 장치(100)를 통해 생성된 유한 상태기계에서 에러가 발생한 영역, 해당 에러가 무엇인지를 나타내는 에러 상세 정보, 해당 에러의 해결을 위한 솔루션을 나타내는 솔루션을 확인하고, 에러를 용이하게 해결할 수 있다.If it is determined that there is an error according to the verification result, the finite state machine verification unit 230 may generate and provide detailed error information indicating what the corresponding error is and solution information indicating a solution for solving the corresponding error. Accordingly, the manager checks the region where an error occurs in the finite state machine generated through the terminal device 100 , detailed error information indicating what the corresponding error is, and a solution indicating a solution for solving the corresponding error, and corrects the error. can be easily solved.

한편, 유한 상태기계 다이어그램에는 응모 행사 페이지에 접속한 복수의 고객들이 복수의 상태들 중 어느 상태에 해당하는지 표시될 수 있다. 구체적으로, 저장부(227)에는 응모 행사 페이지에 접속한 복수의 고객 별로 메모리 공간이 할당될 수 있고, 해당 메모리 공간에는 유한 상태기계에서 고객 별 현재 상태가 저장될 수 있다. 이에 따라, 본 발명에 따르면 고객 별 메모리 공간에 저장된 데이터를 독출하여 이벤트 페이지에 접속한 복수의 고객들이 유한 상태기계를 구성하는 복수의 상태들 중 어느 상태에 머무르고 있는지 판단할 수 있고, 유한 상태기계 다이어그램에 이 정보를 표출(예컨대, 상태 블록 내에 고객들 수를 숫자로 표시함)할 수 있다.Meanwhile, the finite state machine diagram may indicate which state among the plurality of states the plurality of customers accessing the application event page corresponds to. Specifically, a memory space may be allocated to the storage unit 227 for each of a plurality of customers accessing the application event page, and a current state of each customer in the finite state machine may be stored in the memory space. Accordingly, according to the present invention, it is possible to determine in which state among a plurality of states constituting a finite state machine, a plurality of customers who have accessed an event page by reading data stored in a memory space for each customer are staying in the finite state machine. You can display this information in a diagram (eg, number the number of customers in a status block).

도 8은 본 발명의 일 실시 예에 따른 유한 상태기계 검증 방법을 설명하기 위한 흐름도 이다. 본 도면에서는 유한 상태기계 검증을 위한 판단 요건들(S402 내지 S405)이 순차적으로 판단되는 것처럼 도시하였으나, 이에 한정되는 것은 아니며, 각각의 판단 요건들의 순서가 변경되거나 병렬적으로 검증이 수행될 수 있다. 또한 본 도면에서는 제1 내지 제4 검증 단계를 수행한 검증 방법에 대해 설명하였으나, 추가적인 검증 단계를 더 포함하거나 일부 검증 단계를 생략할 수 있다.8 is a flowchart illustrating a finite state machine verification method according to an embodiment of the present invention. Although the figure shows that the determination requirements S402 to S405 for verification of the finite state machine are sequentially determined, the present invention is not limited thereto, and the order of each determination requirement may be changed or verification may be performed in parallel. . In addition, although the verification method in which the first to fourth verification steps are performed has been described in this drawing, an additional verification step may be further included or some verification steps may be omitted.

도 8을 참조하면, 먼저 생성된 유한 상태기계를 검증하는 단계가 개시되면(S401), 액션이 기 등록된 액션인지 검증할 수 있다(S402: 제1 검증담계). 만약, 액션이 기 등록된 액션인 경우(S402 : YES), 유한 상태기계 검증부(240)는 본 사항에 대한 검증은 통과하였다고 판단하고 다음 검증 단계를 진행할 수 있다. 다만, 액션이 기 등록된 액션인 아닌 경우(S402 : NO), 유한 상태기계 검증부(230)는 해당 상태에 에러가 있다고 판단할 수 있다(S407).Referring to FIG. 8 , when the step of verifying the first generated finite state machine is started (S401), it is possible to verify whether the action is a pre-registered action (S402: first verification responsibility). If the action is a pre-registered action (S402: YES), the finite state machine verification unit 240 may determine that the verification for this item has passed and proceed to the next verification step. However, if the action is not a previously registered action (S402: NO), the finite state machine verification unit 230 may determine that there is an error in the corresponding state (S407).

또한, 상태에 할당된 액션을 실행하기 위한 API의 인자(아규먼트(Argument)) 체크를 통과하였는지 여부를 검증할 수 있다(S403: 제2 검증 단계). 만약, 상태에 할당된 액션을 실행하기 위한 API의 인자 체크를 통과하지 못하는 경우(S403 : NO), 유한 상태기계 검증부(240)는 해당 상태에 에러가 있다고 판단할 수 있다(S407). 다만, 상태에 할당된 액션을 실행하기 위한 API의 인자 체크를 통과하는 경우(S403 : YES), 유한 상태기계 검증부(230)는 본 사항에 대한 검증은 통과하였다고 판단하고 다음 검증 단계를 진행할 수 있다.In addition, it is possible to verify whether or not an argument (argument) check of the API for executing the action assigned to the state has been passed (S403: second verification step). If it does not pass the factor check of the API for executing the action assigned to the state (S403: NO), the finite state machine verification unit 240 may determine that there is an error in the corresponding state (S407). However, if the API factor check for executing the action assigned to the state is passed (S403: YES), the finite state machine verification unit 230 determines that the verification for this matter has passed and can proceed with the next verification step. have.

또한, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결했는지 여부를 검증할 수 있다(S404: 제3 검증 단계). 만약, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결한 경우(S404 : YES), 유한 상태기계 검증부(230)는 본 사항에 대한 검증은 통과하였다고 판단하고 다음 검증 단계를 진행할 수 있다. 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결하지 않은 경우(S404 : NO), 유한 상태기계 검증부(230)는 해당 상태에 에러가 있다고 판단할 수 있다(S407).In addition, it is possible to verify whether an event generated as a result of the execution of the action assigned to the state is connected to the subsequent state (S404: third verification step). If the event generated as a result of the execution of the action assigned to the state is connected to the subsequent state (S404: YES), the finite state machine verification unit 230 determines that the verification for this matter has passed and can proceed with the next verification step. have. If the event generated as a result of the execution of the action assigned to the state is not connected to the subsequent state (S404: NO), the finite state machine verification unit 230 may determine that there is an error in the corresponding state (S407).

또한, 액션의 인자(ARGUMENT) 중에서 필수로 지정된 항목이 프로퍼티에 저장되어 있는지 여부를 검증할 수 있다(S405: 제4 검증 단계). 만약, 액션의 인자 중에서 필수로 지정된 항목이 프로퍼티에 저장되어 있지 않다고 판단되면(S405 : NO), 유한 상태기계 검증부(230)는 해당 상태에 에러가 있다고 판단할 수 있다(S407). 다만, 액션의 인자 중에서 필수로 지정된 항목이 프로퍼티에 저장되어 있다고 판단되면(S405 : YES), 유한 상태기계 검증부(230)는 검증을 종료하고 유한 상태기계에는 에러가 미존재한다고 판단할 수 있다(S406).Also, it may be verified whether an item designated as mandatory among the arguments of the action is stored in the property (S405: fourth verification step). If it is determined that an item designated as mandatory among the action factors is not stored in the property (S405: NO), the finite state machine verification unit 230 may determine that there is an error in the corresponding state (S407). However, if it is determined that an item designated as mandatory among the action factors is stored in the property (S405: YES), the finite state machine verification unit 230 may terminate the verification and determine that an error does not exist in the finite state machine. (S406).

한편, 본 발명의 일 실시 예에 따른 방법은 유한 상태기계에서 검증에 따라 에러로 판단된 상태 블록은 에러가 없는 상태 블록과 구별되도록 표시하는 단계를 더 포함할 수 있다.Meanwhile, the method according to an embodiment of the present invention may further include displaying a state block determined to be an error according to verification in the finite state machine to be distinguished from a state block having no error.

또한, 본 발명의 일 실시 예에 따른 방법은 이벤트 페이지에 접속한 복수의 고객들이 복수의 상태들 중 어느 상태에 해당하는지 유한 상태기계에 표시하는 단계를 더 포함할 수 있다.In addition, the method according to an embodiment of the present invention may further include displaying, on the finite state machine, which state among the plurality of states the plurality of customers accessing the event page correspond to.

또한, 본 발명의 일 실시 예에 따른 방법은 사용자 발생 이벤트 API와 상기 기계 발생 이벤트 API 중 적어도 하나를 실행하여 해당 상태에서 타 상태로의 전이를 위한 사용자 이벤트 및 기계 이벤트 중 적어도 하나를 발생시키는 단계를 더 포함할 수 있다.In addition, the method according to an embodiment of the present invention includes executing at least one of a user-generated event API and the machine-generated event API to generate at least one of a user event and a machine event for transition from a corresponding state to another state. may further include.

또한, 본 발명의 일 실시 예에 따른 방법은 유한 상태기계에서 사용자 이벤트를 나타내는 연결선과 상기 기계 이벤트를 나타내는 연결선은 구별하여 표시하는 단계를 더 포함할 수 있다.Also, the method according to an embodiment of the present invention may further include distinguishingly displaying a connection line indicating a user event and a connection line indicating the machine event in a finite state machine.

도 9a 내지 9b는 본 발명의 일 실시 예에 따른 액션 합성 과정을 나타내는 유한 상태기계 다이어그램을 나타내는 도면이다. 도 9a는 둘 이상의 상태를 설계하여 각각의 결과값을 갖도록 하여 복수의 결과로 분기되도록 하는 액션의 합성 방법을 나타내고, 도 9b는 하나의 상태에 둘 이상의 액션을 합성 후 복수의 결과로 분기되도록 하는 합성 방법을 나타낸다. 도 9a, 도 9b는 모두 CHECK1, CHECK2라는 2가지 조건의 충족 여부를 판단하여 ERROR1, ERROR2, OK라는 3가지 결과값(경우의 수)으로 분기되도록 하기 위한 것이며, 도 9a, 도 9b 각각이 다른 방식으로 구현된 예를 나타낸다. 도 9a 내지 9b를 참조하는 액션의 합성은, 유한 상태기계 생성 시 합성부(213)에 의해 수행될 수 있다.9A to 9B are diagrams illustrating a finite state machine diagram illustrating an action synthesis process according to an embodiment of the present invention. 9A shows a synthesis method of an action that branches to a plurality of results by designing two or more states to have respective result values, and FIG. 9B shows a method for synthesizing two or more actions in one state and branching to a plurality of results The synthesis method is shown. 9A and 9B are for determining whether two conditions of CHECK1 and CHECK2 are satisfied and branching into three result values (number of cases) of ERROR1, ERROR2, and OK, and FIGS. 9A and 9B are different An example implemented in this way is shown. Combining the actions with reference to FIGS. 9A to 9B may be performed by the synthesizing unit 213 when generating the finite state machine.

도 9a를 참조하면, 유한 상태기계 다이어그램은 상태 "INITED(11)", 상태 "INITED(11)"에서 "CHECK1" 액션을 실행하여 "False" 이벤트 발생시 상태 "INITED(11)"로부터 전이되는 상태인 "ERROR1(12)", 상태 "INITED(11)"에서 "CHECK1" 액션을 실행하여 "True" 이벤트 발생시 상태 "INITED(11)"로부터 전이되는 상태인 "TEMP(13)", 상태 "TEMP(13)"에서 "CHECK2" 액션을 실행하여 "False" 이벤트 발생시 상태 "TEMP(13)"로부터 전이되는 상태인 "ERROR2(14)", 상태 "TEMP(13)"에서 "CHECK2" 액션을 실행하여 "True" 이벤트 발생시 상태 "TEMP(13)"로부터 전이되는 상태인 "OK(15)"로 구성될 수 있다. 여기서, 도 9a에 따른 유한 상태기계 다이어그램은 상태 "INITED(11)"에서 실행되는 "CHECK1" 액션과 상태 "TEMP(13)"에서 실행되는 "CHECK2" 액션의 순서가 서로 영향을 주지 않을 수 있다.Referring to Figure 9a, the finite state machine diagram is a state transitioning from state "INITED(11)" when a "False" event occurs by executing a "CHECK1" action in state "INITED(11)", state "INITED(11)". "ERROR1(12)", state "TEMP(13)", state "TEMP", transitioning from state "INITED(11)" when "True" event occurs by executing "CHECK1" action in state "INITED(11)" Execute the "CHECK2" action in "(13)" and execute the "CHECK2" action in "ERROR2(14)", the state "TEMP(13)", which is a transition from the state "TEMP(13)" when a "False" event occurs Thus, when a "True" event occurs, it may be configured as "OK(15)", which is a state transitioned from the state "TEMP(13)". Here, the finite state machine diagram according to Fig. 9a shows that the order of the "CHECK1" action executed in the state "INITED(11)" and the "CHECK2" action executed in the state "TEMP(13)" may not affect each other. .

이 경우, 도 9b와 같이, 액션 합성부(213)는 복수의 상태들 중 순서가 서로 영향을 주지 않는 액션인 "CHECK1"과 "CHECK2"를 하나의 상태(INITED(21))에 합성하여 유한 상태기계를 생성할 수 있다. 구체적으로, 액션 합성부(213)에서 합성된 유한 상태기계를 나타내는 유한 상태기계 다이어그램은 상태 "INITED(21)", 상태 "INITED(21)"에서 "CHECK1" 액션과 "CHECK2" 액션을 실행하여 어느 하나라도 통과하지 못하여 "False#1" 이벤트 발생시 상태 "INITED(21)"로부터 전이되는 상태인 "ERROR1(22)", 상태 "INITED(21)"에서 "CHECK1" 액션과 "CHECK2" 액션을 실행하여 어느 하나라도 통과하지 못하여 "False#2" 이벤트 발생시 상태 "INITED(21)"로부터 전이되는 상태인 "ERROR2(23)", 상태 "INITED(21)"에서 "CHECK1" 액션과 "CHECK2" 액션을 실행하여 둘 다 통과하여 "True" 이벤트 발생시 상태 "INITED(21)"로부터 전이되는 상태인 "OK(24)" 로 구성될 수 있다.In this case, as shown in FIG. 9B , the action synthesizing unit 213 synthesizes “CHECK1” and “CHECK2”, which are actions whose order does not affect each other among a plurality of states, into one state (INITED 21 ) and is finite. You can create a state machine. Specifically, the finite state machine diagram representing the finite state machine synthesized in the action synthesizing unit 213 is obtained by executing the "CHECK1" action and the "CHECK2" action in the state "INITED(21)" and "INITED(21)". When the "False#1" event occurs because none of them pass, the "ERROR1(22)" transitions from the state "INITED(21)", the "CHECK1" action and the "CHECK2" action in the state "INITED(21)" When the "False#2" event occurs, the "ERROR2(23)" transitions from the state "INITED(21)", the "CHECK1" action and the "CHECK2" in the state "INITED(21)" It may consist of a state "OK(24)" which is a transition from state "INITED(21)" upon occurrence of "True" event by executing the action and passing both.

이러한 본 발명에 따른 합성부(213)에 의하면, 유한 상태기계 다이어그램의 크기를 줄일 수 있어 관리자들의 가독성을 높이며, 연관된 상태와 액션들을 뭉쳐서 모듈화 할 수 있어서 재사용성에 큰 도움이 될 수 있다.According to the synthesizing unit 213 according to the present invention, the size of the finite state machine diagram can be reduced, so that administrators can read it, and the related states and actions can be grouped and modularized, which can be very helpful for reusability.

이와 같이, 본 발명의 다양한 실시 예에 따르면, 응모 행사와 같은 서비스의 설계, 추가, 변경 등 서비스 페이지의 운영에 유연하게 대응 가능하도록 하는 유한 상태기계를 제공함으로써, 관리자의 편의성이 향상되고 효율적인 설계와 운영이 가능해진다.As described above, according to various embodiments of the present invention, by providing a finite state machine that can flexibly respond to the operation of a service page such as design, addition, and change of services such as an application event, the convenience of the manager is improved and the design is efficient and operation becomes possible.

또한, 본 발명의 다양한 실시 예에 따르면, 유한 상태기계를 통해 기계 이벤트 또는 사용자 이벤트에 따른 서비스 절차들(액션 수행, 상태 전이, 화면 제공 등)을 자동화하고, 복잡한 순서의 비즈니스 로직을 동적으로 구성함으로써, 응모 행사를 위한 서버의 부하와 용량을 최소화할 수 있다.In addition, according to various embodiments of the present disclosure, service procedures (action execution, state transition, screen provision, etc.) according to machine events or user events are automated through a finite state machine, and business logic in a complex sequence is dynamically configured. By doing so, it is possible to minimize the load and capacity of the server for the application event.

한편, 명세서 및 청구범위에서 "제 1", "제 2", "제 3" 및 "제 4" 등의 용어는, 만약 있는 경우, 유사한 구성요소 사이의 구분을 위해 사용되며, 반드시 그렇지는 않지만 특정 순차 또는 발생 순서를 기술하기 위해 사용된다. 그와 같이 사용되는 용어는 여기에 기술된 본 발명의 실시예가, 예컨대, 여기에 도시 또는 설명된 것이 아닌 다른 시퀀스로 동작할 수 있도록 적절한 환경하에서 호환 가능한 것이 이해될 것이다. 마찬가지로, 여기서 방법이 일련의 단계를 포함하는 것으로 기술되는 경우, 여기에 제시된 그러한 단계의 순서는 반드시 그러한 단계가 실행될 수 있는 순서인 것은 아니며, 임의의 기술된 단계는 생략될 수 있고/있거나 여기에 기술되지 않은 임의의 다른 단계가 그 방법에 부가 가능할 것이다. On the other hand, in the specification and claims, terms such as "first", "second", "third", and "fourth", if any, are used to distinguish between similar elements, although this is not necessarily the case. Used to describe a specific sequence or sequence of occurrences. It will be understood that the terms so used are interchangeable under appropriate circumstances to enable the embodiments of the invention described herein to operate, for example, in sequences other than those shown or described herein. Likewise, where methods are described herein as including a series of steps, the order of those steps presented herein is not necessarily the order in which those steps may be performed, and any described steps may be omitted and/or Any other steps not described may be added to the method.

또한 명세서 및 청구범위의 "왼쪽", "오른쪽", "앞", "뒤", "상부", "바닥", "위에", "아래에" 등의 용어는, 설명을 위해 사용되는 것이며, 반드시 불변의 상대적 위치를 기술하기 위한 것은 아니다. 그와 같이 사용되는 용어는 여기에 기술된 본 발명의 실시예가, 예컨대, 여기에 도시 또는 설명된 것이 아닌 다른 방향으로 동작할 수 있도록 적절한 환경하에서 호환 가능한 것이 이해될 것이다. 여기서 사용된 용어 "연결된"은 전기적 또는 비 전기적 방식으로 직접 또는 간접적으로 접속되는 것으로 정의된다. 여기서 서로 "인접하는" 것으로 기술된 대상은, 그 문구가 사용되는 문맥에 대해 적절하게, 서로 물리적으로 접촉하거나, 서로 근접하거나, 서로 동일한 일반적 범위 또는 영역에 있는 것일 수 있다. 여기서 "일실시예에서"라는 문구의 존재는 반드시 그런 것은 아니지만 동일한 실시예를 의미한다.Also, terms such as "left", "right", "front", "behind", "top", "bottom", "above", "below" in the specification and claims are used for descriptive purposes, It is not necessarily intended to describe an invariant relative position. It will be understood that the terms so used are interchangeable under appropriate circumstances to enable the embodiments of the invention described herein to operate otherwise than, for example, as shown or described herein. As used herein, the term “connected” is defined as being directly or indirectly connected in an electrical or non-electrical manner. Objects described herein as being "adjacent" to one another may be in physical contact with one another, in proximity to one another, or in the same general scope or area as appropriate for the context in which the phrase is used. The presence of the phrase “in one embodiment” herein refers to the same, but not necessarily, embodiment.

또한 명세서 및 청구범위에서 '연결된다', '연결하는', '체결된다', '체결하는', '결합된다', '결합하는' 등과 이런 표현의 다양한 변형들의 지칭은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. In addition, in the specification and claims, references to 'connected', 'connecting', 'fastened', 'fastening', 'coupled', 'coupled', etc. It is used in the sense of being connected or indirectly connected through other components.

또한, 본 명세서에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.In addition, the suffixes "module" and "part" for the components used in this specification are given or mixed in consideration of the ease of writing the specification, and do not have distinct meanings or roles by themselves.

또한 본 명세서에서 사용된 용어들은 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprise)' 및/또는 '포함하는(comprising)'은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.In addition, the terms used herein are for the purpose of describing the embodiments and are not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, 'comprise' and/or 'comprising' means that a referenced component, step, operation and/or element is the presence of one or more other components, steps, operations and/or elements. or addition is not excluded.

한편, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은 프로그램으로 구현되어 서버 또는 기기들에 제공될 수 있다. 이에 따라 각 장치들은 프로그램이 저장된 서버 또는 기기에 접속하여, 상기 프로그램을 다운로드할 수 있다.Meanwhile, the above-described methods according to various embodiments of the present invention may be implemented as a program and provided to a server or devices. Accordingly, each device can download the program by accessing the server or device in which the program is stored.

또한, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은 프로그램으로 구현되어 다양한 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다. 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.In addition, the above-described methods according to various embodiments of the present invention may be implemented as a program and stored in various non-transitory computer readable media to be provided. The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, etc., and can be read by a device. Specifically, the above-described various applications or programs may be provided by being stored in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention pertains without departing from the gist of the present invention as claimed in the claims Various modifications are possible by those of ordinary skill in the art, and these modifications should not be individually understood from the technical spirit or prospect of the present invention.

100 : 단말 장치 200 : 유한 상태기계 운영 서버
210 : 생성부 211 : 할당부
212 : 다이어그램 생성부 213 : 합성부
220 : 운영부 221 : 요청 수신부
223 : 실행부 225 : 인터페이스 제공부
227 : 저장부 230 : 검증부
240: 저장부 250 : 제어부
260 : 통신부 270 : 관리자 인터페이스
100: terminal device 200: finite state machine operation server
210: generating unit 211: allocating unit
212: diagram generation unit 213: synthesis unit
220: operation unit 221: request receiving unit
223: execution unit 225: interface providing unit
227: storage unit 230: verification unit
240: storage unit 250: control unit
260: communication unit 270: administrator interface

Claims (30)

유한 상태기계(finite state machine) 운영 서버에 의한 유한 상태기계 생성 방법에 있어서,
유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보와 해당 상태에서 실행되어야 할 액션 정보를 할당하는 단계;
상기 복수의 상태 각각에 대하여 해당 상태에서 이후 상태로의 전이를 위한 이벤트 정보를 할당하는 단계; 및
상기 할당된 상태 정보, 액션 정보 및 이벤트 정보를 이용하여 유한 상태기계를생성하는 단계;를 포함하고,
상기 생성된 유한 상태기계는 서비스 페이지를 통한 고객의 입력에 대응되는 사용자 이벤트 및 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 이벤트 로직을 포함하고,
상기 생성된 유한 상태 기계는,
해당 상태에 할당된 액션의 실행 결과가 타 상태로의 전이를 위한 이벤트의 발생과 연계되도록 구성되어, 상기 이벤트의 발생에 따라 연쇄적인 전이를 일으키도록 구현되는 것을 특징으로 하는 유한 상태기계 생성 방법.
A method for generating a finite state machine by a finite state machine operating server, the method comprising:
allocating state information and action information to be executed in the corresponding state to each of a plurality of states constituting the finite state machine;
allocating event information for transition from a corresponding state to a subsequent state for each of the plurality of states; and
generating a finite state machine using the allocated state information, action information, and event information;
The generated finite state machine includes event logic that generates a user event corresponding to a customer input through a service page and a machine event that occurs internally in the finite state machine,
The generated finite state machine is
The method for generating a finite state machine, characterized in that the execution result of the action assigned to the corresponding state is configured to be linked with the occurrence of an event for transition to another state, and is implemented to generate a chain transition according to the occurrence of the event.
제1항에 있어서,
상기 할당된 상태 정보 및 액션 정보를 이용하여 상기 복수의 상태 각각에 대응되는 상태 블록을 생성하는 단계;
상기 할당된 이벤트 정보를 이용하여 상기 생성된 복수의 상태 블록 간의 연결 관계를 형성한 유한 상태기계 다이어그램을 생성하는 단계; 및
상기 생성된 유한 상태기계 다이어그램을 포함하는 관리자 인터페이스를 관리자의 단말 장치에 제공하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
According to claim 1,
generating a state block corresponding to each of the plurality of states by using the allocated state information and action information;
generating a finite state machine diagram in which a connection relationship between the plurality of generated state blocks is formed by using the allocated event information; and
and providing a manager interface including the generated finite state machine diagram to a terminal device of a manager.
제1항에 있어서,
상기 복수의 상태들 중 상기 서비스 페이지의 노출이 필요한 상태에는 상기 고객의 단말 장치에 표시할 서비스 페이지를 해당 상태에 매칭시켜 저장하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
According to claim 1,
and storing the service page to be displayed on the customer's terminal device by matching the corresponding state to a state in which the service page needs to be displayed among the plurality of states.
제1항에 있어서,
상기 유한 상태기계를 생성하는 단계는,
상태에 이전 상태에서 해당 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 종료 상태로 자동으로 설정하는 단계; 및
상태에 해당 상태로부터 이후 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 시작 상태로 자동으로 설정하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
According to claim 1,
Creating the finite state machine comprises:
automatically setting the state to the end state when only event information for transition from the previous state to the corresponding state is assigned to the state; and
When only event information for transition from a corresponding state to a subsequent state is allocated to the state, automatically setting the corresponding state to the starting state;
제2항에 있어서,
상기 생성된 유한 상태기계를 검증하는 단계;를 더 포함하고,
상기 검증하는 단계는,
상태에 할당된 액션이 기 등록된 액션인지 여부, 상태에 할당된 액션을 실행하기 위한 API의 인자(ARGUMENT) 체크를 통과하였는지 여부, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결했는지 여부 및 상태에 지정된 필수 항목이 저장부에 정의되었는지 여부 중 적어도 하나를 검증하는 것을 특징으로 하는 유한 상태기계 생성 방법.
3. The method of claim 2,
verifying the generated finite state machine; further comprising;
The verification step is
Whether the action assigned to the state is a pre-registered action, whether the API argument check for executing the action assigned to the state has been passed, whether the event that occurs as a result of the execution of the action assigned to the state is connected to the subsequent state and verifying at least one of whether or not a required item specified in the state is defined in the storage.
제5항에 있어서,
상기 검증에 따라 에러로 판단된 상태 상태 블록은 에러가 없는 상태 블록과 구별되도록 상기 유한 상태기계 다이어그램에 표시하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
6. The method of claim 5,
and displaying the state state block determined to be an error according to the verification on the finite state machine diagram so as to be distinguished from the state block having no error.
제1항에 있어서,
상기 유한 상태기계를 생성하는 단계는,
복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 연속된 상태들을 검출하는 단계; 및
상기 검출된 상태들의 각 액션이 발생시키는 이벤트를 가능한 모든 경우의 수를 조합하여 새로운 이벤트로 매핑시켜 액션을 합성하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
According to claim 1,
Creating the finite state machine comprises:
detecting consecutive states consisting of actions whose order does not affect each other among the plurality of states; and
and synthesizing an action by mapping an event generated by each action in the detected states to a new event by combining all possible cases.
제2항에 있어서,
상기 서비스 페이지에 접속한 복수의 고객들이 복수의 상태들 중 어느 상태에 해당하는지 상기 유한 상태기계 다이어그램에 표시하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
3. The method of claim 2,
and displaying, on the finite state machine diagram, which states among a plurality of states of a plurality of customers accessing the service page correspond.
제2항에 있어서,
상기 사용자 이벤트를 나타내는 연결선과 상기 기계 이벤트를 나타내는 연결선을 구별하여 상기 유한 상태기계 다이어그램에 표시하는 단계;를 더 포함하는 것을 특징으로 하는 유한 상태기계 생성 방법.
3. The method of claim 2,
and distinguishing a connecting line representing the user event and a connecting line representing the machine event and displaying the distinguishing line on the finite state machine diagram.
유한 상태기계 운영 서버에 있어서,
유한 상태기계의 생성을 위한 인터페이스를 제공하는 관리자 인터페이스;
상기 관리자 인터페이스를 통한 관리자 입력을 기초로 상기 유한 상태기계를 구성하는 복수의 상태 각각에 대하여 상태 정보, 해당 상태에서 실행되어야 할 액션 정보를 할당하고, 상기 복수의 상태 각각에 대하여 해당 상태에서 이후 상태로의 전이를 위한 이벤트 정보를 할당하며, 상기 할당된 상태 정보, 액션 정보 및 이벤트 정보를 이용하여 유한 상태기계를 생성하는 생성부;를 포함하고,
상기 생성된 유한 상태기계는 서비스 페이지를 통한 고객의 입력에 대응되는 사용자 이벤트 및 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 이벤트 로직을 포함하고,
상기 생성된 유한 상태기계는,
해당 상태에 할당된 액션의 실행 결과가 타 상태로의 전이를 위한 이벤트의 발생과 연계되도록 구성되어, 상기 이벤트의 발생에 따라 연쇄적인 전이를 일으키도록 구현되는 것을 특징으로 하는 유한 상태기계 운영 서버.
In the finite state machine operation server,
a manager interface that provides an interface for the creation of a finite state machine;
State information and action information to be executed in the corresponding state are allocated to each of a plurality of states constituting the finite state machine based on a manager input through the manager interface, and, for each of the plurality of states, a subsequent state from the corresponding state a generation unit for allocating event information for transition to , and generating a finite state machine using the allocated state information, action information, and event information;
The generated finite state machine includes event logic that generates a user event corresponding to a customer input through a service page and a machine event that occurs internally in the finite state machine,
The generated finite state machine is
A finite state machine operation server, characterized in that the execution result of the action assigned to the corresponding state is configured to be linked with the occurrence of an event for transition to another state, and is implemented to generate a chain transition according to the occurrence of the event.
제10항에 있어서,
상기 생성부는,
상기 할당된 상태 정보 및 액션 정보를 이용하여 상기 복수의 상태 각각에 대응되는 상태 블록을 생성하고, 상기 할당된 이벤트 정보를 이용하여 상기 생성된 복수의 상태 블록 간의 연결 관계를 형성한 유한 상태기계 다이어그램을 생성하는 다이어그램 생성부;를 포함하고,
상기 관리자 인터페이스는 상기 생성된 유한 상태기계 다이어그램을 포함하는 관리자 인터페이스를 관리자의 단말 장치에 제공하는 것을 특징으로 하는 유한 상태기계 운영 서버.
11. The method of claim 10,
The generating unit,
A finite state machine diagram in which a state block corresponding to each of the plurality of states is generated using the allocated state information and the action information, and a connection relationship between the generated state blocks is formed using the allocated event information a diagram generating unit to generate
and the manager interface provides a manager interface including the generated finite state machine diagram to a terminal device of a manager.
제10항에 있어서,
상기 복수의 상태들 중 상기 서비스 페이지의 노출이 필요한 상태에는 상기 고객의 단말 장치에 표시할 서비스 페이지를 해당 상태에 매칭시켜 저장하는 저장부;를 더 포함하는 것을 특징으로 하는 유한 상태기계 운영 서버.
11. The method of claim 10,
and a storage unit for matching and storing the service page to be displayed on the customer's terminal device in a state requiring exposure of the service page among the plurality of states.
제10항에 있어서,
상기 생성부는,
상태에 이전 상태에서 해당 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 종료 상태로 자동으로 설정하고, 상태에 해당 상태로부터 이후 상태로의 전이를 위한 이벤트 정보만이 할당된 경우, 해당 상태를 시작 상태로 자동으로 설정하는 것을 특징으로 하는 유한 상태기계 운영 서버.
11. The method of claim 10,
The generating unit,
When only event information for transition from the previous state to the corresponding state is assigned to the state, the state is automatically set to the end state, and only event information for transition from the corresponding state to the next state is assigned to the state , a finite state machine operation server, characterized in that automatically setting the corresponding state to the starting state.
제11항에 있어서,
상기 생성된 유한 상태기계를 검증하는 검증부;를 더 포함하고,
상기 검증부는,
상태에 할당된 액션이 기 등록된 액션인지 여부, 상태에 할당된 액션을 실행하기 위한 API의 인자(ARGUMENT) 체크를 통과하였는지 여부, 상태에 할당된 액션의 실행 결과 발생한 이벤트를 이후 상태에 연결했는지 여부 및 상태에 지정된 필수 항목이 저장부에 정의되었는지 여부 중 적어도 하나를 검증하는 것을 특징으로 하는 유한 상태기계 운영 서버.
12. The method of claim 11,
Further comprising; a verification unit that verifies the generated finite state machine;
The verification unit,
Whether the action assigned to the state is a pre-registered action, whether the API argument check for executing the action assigned to the state has been passed, whether the event that occurs as a result of the execution of the action assigned to the state is connected to the subsequent state and verifying at least one of whether or not a required item specified in the state is defined in the storage.
제14항에 있어서,
상기 다이어그램 생성부는,
상기 검증에 따라 에러로 판단된 상태 상태 블록은 에러가 없는 상태 블록과 구별되도록 상기 유한 상태기계 다이어그램에 표시하는 것을 특징으로 하는 유한 상태기계 운영 서버.
15. The method of claim 14,
The diagram generating unit,
and displaying the state state block determined to be an error according to the verification on the finite state machine diagram to be distinguished from the state block having no error.
제10항에 있어서,
상기 생성부는,
복수의 상태들 중 순서가 서로 영향을 주지 않는 액션들로 구성된 연속된 상태들을 검출하고, 상기 검출된 상태들의 각 액션이 발생시키는 이벤트를 가능한 모든 경우의 수를 조합하여 새로운 이벤트로 매핑시켜 액션을 합성하는 합성부;를 더 포함하는 것을 특징으로 하는 유한 상태기계 운영 서버.
11. The method of claim 10,
The generating unit,
Among a plurality of states, consecutive states composed of actions whose order does not affect each other are detected, and the event generated by each action of the detected states is mapped to a new event by combining the number of possible cases to create an action. A finite state machine operation server further comprising a synthesizing unit for synthesizing.
제11항에 있어서,
상기 다이어그램 생성부는,
상기 서비스 페이지에 접속한 복수의 고객들이 복수의 상태들 중 어느 상태에 해당하는지 상기 유한 상태기계 다이어그램에 표시하는 것을 특징으로 하는 유한 상태기계 운영 서버.
12. The method of claim 11,
The diagram generating unit,
and displaying, on the finite state machine diagram, which states among a plurality of states of a plurality of customers accessing the service page.
제11항에 있어서,
상기 다이어그램 생성부는,
상기 사용자 이벤트를 나타내는 연결선과 상기 기계 이벤트를 나타내는 연결선을 구별하여 상기 유한 상태기계 다이어그램에 표시하는 것을 특징으로 하는 유한 상태기계 운영 서버.
12. The method of claim 11,
The diagram generating unit,
and distinguishing a connecting line representing the user event and a connecting line representing the machine event, and displaying the distinguishing line on the finite state machine diagram.
유한 상태기계 운영 서버에 의한 유한 상태기계 운영 방법에 있어서,
고객 단말 장치로부터 요청 데이터를 수신하는 단계;
상기 수신된 요청 데이터에 대응되는 사용자 이벤트를 발생시키고, 상기 유한 상태기계를 구성하는 복수의 상태들 중 고객의 현재 상태인 제1 상태에서 상기 발생된 사용자 이벤트에 일치하는 전이를 갖는 이후의 상태인 제2 상태로 고객의 상태를 전이시키는 단계;
상기 제2 상태에 할당된 액션 정보를 검출하고, 검출된 액션 정보를 기초로 상기 제2 상태에 할당된 액션을 실행하는 단계; 및
상기 실행된 액션에 연계된 기계 이벤트의 발생 여부를 판단하고, 상기 기계 이벤트의 발생 여부에 따라 상기 고객의 최종 상태를 결정하는 단계;를 포함하고,
상기 유한 상태기계는,
해당 상태에 할당된 액션의 실행 결과가 타 상태로의 전이를 위한 이벤트의 발생과 연계되도록 구성되어, 상기 이벤트의 발생에 따라 연쇄적인 전이를 일으키도록 구현되는 것을 특징으로 하는 유한 상태기계 운영 방법.
A method for operating a finite state machine by a finite state machine operation server, the method comprising:
receiving the request data from the customer terminal device;
generating a user event corresponding to the received request data, and having a transition corresponding to the generated user event from a first state that is a current state of a customer among a plurality of states constituting the finite state machine transitioning the customer's state to a second state;
detecting action information assigned to the second state, and executing an action assigned to the second state based on the detected action information; and
determining whether a machine event related to the executed action has occurred, and determining the final state of the customer according to whether the machine event has occurred;
The finite state machine is
A finite state machine operating method, characterized in that the execution result of the action assigned to the corresponding state is configured to be linked with the occurrence of an event for transition to another state, and is implemented to generate a chain transition according to the occurrence of the event.
제19항에 있어서,
상기 실행된 액션에 연계되어 기계 이벤트가 발생하면, 상기 제2 상태에서 상기 발생된 기계 이벤트에 일치하는 전이를 갖는 이 후의 상태인 제3 상태로 상기 고객의 상태를 전이시키는 단계를 포함하는 유한 상태기계 운영 방법.
20. The method of claim 19,
when a machine event occurs in association with the executed action, transitioning the state of the customer from the second state to a subsequent state, a third state having a transition consistent with the generated machine event; How to operate the machine.
제20항에 있어서,
상기 실행된 액션에 연계되어 기계 이벤트가 발생하지 않으면, 상기 고객의 최종 상태를 상기 제2 상태로 결정하는 단계;
상기 제2 상태에 매칭되는 서비스 페이지를 검출하는 단계; 및
상기 검출된 서비스 페이지를 상기 고객의 단말 장치에 전송하는 단계;를 포함하는 유한 상태기계 운영 방법.
21. The method of claim 20,
determining the final state of the customer as the second state if a machine event does not occur in connection with the executed action;
detecting a service page matching the second state; and
and transmitting the detected service page to the terminal device of the customer.
제19항에 있어서,
상기 유한 상태기계는 상기 서비스 페이지를 통한 고객 입력에 대응되는 사용자 이벤트를 발생시키는 사용자 발생 이벤트 API와 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 기계 발생 이벤트 API를 포함하는 것을 특징으로 하는 유한 상태기계 운영 방법.
20. The method of claim 19,
wherein the finite state machine includes a user-generated event API that generates a user event corresponding to a customer input through the service page, and a machine-generated event API that generates a machine event that occurs internally in the finite state machine. How the state machine works.
제19항에 있어서,
상기 실행하는 단계는,
상기 제2 상태에 할당된 액션을 실행하기 위한 API(Application Program Interface)의 인자(argument)를 검출하는 단계;
상기 검출된 인자를 기초로 상기 제2 상태에 대응되는 API를 실행하는 단계; 및
상기 제2 상태에 대응되는 API의 실행 후 인자들을 변경하는 단계;를 포함하는 유한 상태기계 운영 방법.
20. The method of claim 19,
The executing step is
detecting an argument of an API (Application Program Interface) for executing the action assigned to the second state;
executing an API corresponding to the second state based on the detected factor; and
and changing parameters after the execution of the API corresponding to the second state.
유한 상태기계 운영 서버에 있어서,
고객 단말 장치로부터 요청 데이터를 수신하는 요청 수신부;
상기 수신된 요청 데이터에 대응되는 사용자 이벤트를 발생시키고, 유한 상태기계를 구성하는 복수의 상태들 중 제1 상태에서 상기 발생된 사용자 이벤트에 일치하는 전이를 갖는 이 후의 상태인 제2 상태로 고객의 상태를 전이시키며, 상기 제2 상태에 할당된 액션 정보를 검출하고 검출된 액션 정보를 기초로 상기 제2 상태에 할당된 액션을 실행하는 실행부;를 포함하고,
상기 실행부는 상기 실행된 액션에 연계된 기계 이벤트의 발생 여부를 판단하고, 상기 기계 이벤트의 발생 여부에 따라 상기 고객의 최종 상태를 결정하고,
상기 유한 상태기계는,
해당 상태에 할당된 액션의 실행 결과가 타 상태로의 전이를 위한 이벤트의 발생과 연계되도록 구성되어, 상기 이벤트의 발생에 따라 연쇄적인 전이를 일으키도록 구현되는 것을 특징으로 하는 유한 상태기계 운영 서버.
In the finite state machine operation server,
a request receiving unit for receiving request data from the customer terminal device;
generating a user event corresponding to the received request data, and moving the customer from a first state among a plurality of states constituting the finite state machine to a subsequent state having a transition corresponding to the generated user event to a second state. an execution unit that transitions a state, detects action information assigned to the second state, and executes an action assigned to the second state based on the detected action information;
The execution unit determines whether a machine event related to the executed action occurs, and determines the final state of the customer according to whether the machine event occurs,
The finite state machine is
A finite state machine operation server, characterized in that the execution result of the action assigned to the corresponding state is configured to be linked with the occurrence of an event for transition to another state, and is implemented to generate a chain transition according to the occurrence of the event.
제24항에 있어서,
상기 실행부는,
상기 실행된 액션에 연계되어 기계 이벤트가 발생하면, 상기 제2 상태에서 상기 발생된 기계 이벤트에 일치하는 전이를 갖는 이 후의 상태인 제3 상태로 상기 고객의 상태를 전이시키는 것을 특징으로 하는 유한 상태기계 운영 서버.
25. The method of claim 24,
The execution unit,
when a machine event occurs in connection with the executed action, transitioning the state of the customer from the second state to a subsequent state, a third state, having a transition consistent with the generated machine event. machine operation server.
제25항에 있어서,
상기 실행부는,
상기 실행된 액션에 연계되어 기계 이벤트가 발생하지 않으면, 상기 고객의 최종 상태를 상기 제2 상태로 결정하고, 상기 제2 상태에 매칭되는 서비스 페이지를 검출하며,
상기 검출된 서비스 페이지를 상기 고객의 단말 장치에 전송하는 인터페이스 제공부;를 더 포함하는 것을 특징으로 하는 유한 상태기계 운영 서버.
26. The method of claim 25,
The execution unit,
If a machine event does not occur in connection with the executed action, determining the final state of the customer as the second state, and detecting a service page matching the second state,
The finite state machine operation server further comprising a; an interface providing unit for transmitting the detected service page to the terminal device of the customer.
제24항에 있어서,
상기 유한 상태기계는 상기 서비스 페이지를 통한 고객 입력에 대응되는 사용자 이벤트를 발생시키는 사용자 발생 이벤트 API와 상기 유한 상태기계 내부적으로 발생하는 기계 이벤트를 발생시키는 기계 발생 이벤트 API를 포함하는 것을 특징으로 하는 유한 상태기계 운영 서버.
25. The method of claim 24,
wherein the finite state machine includes a user-generated event API that generates a user event corresponding to a customer input through the service page, and a machine-generated event API that generates a machine event that occurs internally in the finite state machine. State machine operating server.
제24항에 있어서,
상기 실행부는,
상기 제2 상태에 할당된 액션을 실행하기 위한 API(Application Program Interface)의 인자(argument)를 검출하고, 상기 검출된 인자를 기초로 상기 제2 상태에 대응되는 API를 실행하며, 상기 제2 상태에 대응되는 API의 실행 후 인자들을 변경하는 유한 상태기계 운영 서버.
25. The method of claim 24,
The execution unit,
Detects an argument of an API (Application Program Interface) for executing the action assigned to the second state, executes the API corresponding to the second state based on the detected argument, and the second state A finite state machine operation server that changes the parameters after the execution of the corresponding API.
컴퓨터 판독 가능한 기록 매체에 저장되어 제1항 내지 제9항 중 어느 한 항에 기재된 유한 상태기계 생성 방법을 실행시키는 프로그램. A program stored in a computer-readable recording medium to execute the method for generating a finite state machine according to any one of claims 1 to 9. 컴퓨터 판독 가능한 기록 매체에 저장되어 제19항 내지 제23항 중 어느 한 항에 기재된 유한 상태기계 운영 방법을 실행시키는 프로그램.
A program stored in a computer-readable recording medium to execute the finite state machine operating method according to any one of claims 19 to 23.
KR1020190148702A 2019-11-19 2019-11-19 Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same KR102276230B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190148702A KR102276230B1 (en) 2019-11-19 2019-11-19 Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190148702A KR102276230B1 (en) 2019-11-19 2019-11-19 Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same

Publications (2)

Publication Number Publication Date
KR20210060998A KR20210060998A (en) 2021-05-27
KR102276230B1 true KR102276230B1 (en) 2021-07-12

Family

ID=76135727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190148702A KR102276230B1 (en) 2019-11-19 2019-11-19 Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same

Country Status (1)

Country Link
KR (1) KR102276230B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102518773B1 (en) * 2021-12-30 2023-04-06 주식회사 닷밀 IoT ticket operation device in hyper-realistic content exhibition space using finite state machine

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI118064B (en) * 2005-07-12 2007-06-15 Suomen 3C Oy Creating an Extreme State Machine Model
KR101294708B1 (en) * 2010-03-30 2013-08-08 한국전자통신연구원 Behavior fallacy analysis apparatus and its method
CN105656688B (en) * 2016-03-03 2019-09-20 腾讯科技(深圳)有限公司 Condition control method and device

Also Published As

Publication number Publication date
KR20210060998A (en) 2021-05-27

Similar Documents

Publication Publication Date Title
US20200169637A1 (en) Virtual assistant aided communication with 3rd party service in a communication session
US10846153B2 (en) Bot creation with workflow development system
US9736199B2 (en) Dynamic and collaborative workflow authoring with cloud-supported live feedback
US20150356001A1 (en) Unit test automation for business rules and applications
US20140129457A1 (en) An interactive organizational decision-making and compliance facilitation portal
US10366359B2 (en) Automatic extraction and completion of tasks associated with communications
US10922101B2 (en) User interface widget recommendation
Shivakumar et al. Building Digital Experience Platforms: A Guide to Developing Next-Generation Enterprise Applications
US20210158406A1 (en) Machine learning-based product and service design generator
US10679003B2 (en) Assisting with written communication style based on recipient dress style
US10332048B2 (en) Job profile generation based on intranet usage
US11630708B2 (en) OSN/PCS collaboration mechanism integration
KR102276230B1 (en) Method for generating finite state machine, method for operating finite state machine, server and computer program for performing the same
US11775261B2 (en) Dynamic process model palette
US11394668B1 (en) System and method for executing operations in a performance engineering environment
Shrivastava Learning Salesforce Einstein
CN112102099B (en) Policy data processing method and device, electronic equipment and storage medium
Sah et al. A software engineering perspective for development of enterprise applications
CA3106998C (en) System and method for executing operations in a performance engineering environment
US20220245060A1 (en) System and Method for Automated Testing
US20240112065A1 (en) Meta-learning operation research optimization
US20230281386A1 (en) Guiding and validating document submissions
US20230412654A1 (en) Coordinating knowledge from visual collaboration elements
US20210209531A1 (en) Requirement creation using self learning mechanism
CA3108166A1 (en) System and method for automated testing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant