규칙 엔진은 규칙 기반 로직을 관리하고 실행하는 데 사용되는 도구입니다. 미리 정의된 규칙 집합에 기반하여 입력 데이터와 조건에 따라 자동으로 해당 작업이나 결정을 수행합니다. 규칙은 조건-행동 형식으로 표현될 수 있으며, 조건은 특정 상황이나 사건을 설명하고, 행동은 조건이 충족될 때 실행할 작업을 정의합니다. 여러 개의 규칙이 존재할 수 있으며, 각 규칙은 자체적인 조건과 행동을 가집니다.
규칙 엔진의 장점은 유연성과 확장성에 있습니다. 사용자는 규칙 엔진을 사용하여 기본 코드를 수정하지 않고도 복잡한 비즈니스 규칙을 쉽게 정의하고 관리할 수 있습니다. 규칙 엔진은 또한 비즈니스 프로세스의 자동화를 향상시켜 수동 개입을 줄이고 효율성과 정확성을 개선합니다.
규칙 엔진은 비즈니스 프로세스 관리, 의사 결정 지원 시스템, 리스크 평가, 사기 탐지, 네트워크 서비스 보증 등 다양한 분야에서 광범위하게 적용됩니다. 이는 조직과 기업에 복잡한 비즈니스 규칙을 관리하고 실행하는 유연하고 구성 가능한 방법을 제공합니다.
EdgeOne의 규칙 엔진 예를 들면, 규칙 엔진의 작동 과정은 다음 단계로 요약될 수 있습니다:
규칙 엔진의 작동 과정은 일반적으로 자동화되어 있습니다. 미리 정의된 규칙 집합에 따라 신속하게 규칙 일치 및 추론을 수행할 수 있으며, 비즈니스 요구 사항의 차별화된 시나리오를 다룰 수 있습니다.
규칙 엔진 설계 패턴은 규칙 처리 로직과 규칙을 분리하는 소프트웨어 개발 기법으로, 단일 책임 원칙을 따릅니다. 이 설계 패턴은 시스템의 나머지를 수정하지 않고 새로운 규칙을 쉽게 추가할 수 있도록 하며, 개방/폐쇄 원칙을 준수합니다.
규칙 엔진 설계 패턴은 규칙 컬렉션을 반복하고 실행하며 결과를 평가하고 취할 행동을 결정하는 Evaluator 클래스로 구성됩니다. 이러한 규칙은 IDiscountRule과 같은 간단한 인터페이스를 구현하여 단일 책임을 가지며 필요에 따라 간단하거나 복잡할 수 있습니다. 이 접근 방식은 긴 if-else 또는 switch 문을 대체해야 할 때나 데이터가 여러 조건과 일치하고 여러 프로세스가 실행될 때 더 나은 코드 조직, 가독성, 유지 관리성 및 테스트 가능성을 가능하게 합니다. 규칙 엔진 설계 패턴은 특정 조건(예: 레코드 버전 또는 고객 객체 속성)에 따라 서로 다른 규칙 세트를 적용해야 할 때 특히 유용합니다. 규칙을 처리 로직에서 분리함으로써 개발자는 전체 시스템 아키텍처에 영향을 주지 않고 규칙을 쉽게 관리하고 업데이트할 수 있습니다.
HTTP/HTTPS와 같은 애플리케이션 계층 프로토콜을 위해 특별히 설계된 인터넷 콘텐츠 전송 가속 서비스와 비교할 때, EdgeOne의 규칙 엔진은 웹사이트, 온라인 애플리케이션, 스트리밍 미디어 등의 콘텐츠 전송에 특히 적합합니다. 규칙 엔진은 캐시 최적화, 파일 최적화, 네트워크 최적화 등 풍부한 구성 옵션을 통해 보다 맞춤화되고 효율적이며 안정적인 콘텐츠 전송을 달성하는 데 도움을 줍니다. 이는 비즈니스 사용자의 만족도를 높이고 웹사이트, 애플리케이션 또는 기타 온라인 서비스의 경쟁력을 강화합니다.
규칙 엔진은 서로 다른 서브도메인, 경로 또는 파일 확장자와 같은 일치 조건의 차이가 있는 구성을 지원합니다. 또한 캐싱 및 HTTPS와 같은 기본 구성과 맞춤 캐시 키, URL 재작성, HTTP 헤더 수정과 같은 추가 가속 기능을 지원하여 특정 비즈니스 요구에 부응합니다.
EdgeOne의 규칙 엔진에서 구성할 수 있는 조건은 아래 표에 나열되어 있으니 참고하시기 바랍니다.
유형 | 설명 | 샘플 값 |
---|---|---|
HOST | 요청 호스트 | www.example.com |
URL 경로 | 요청 URL 경로 | /example/foo/bar 경로와 일치하려면 /example/foo/bar 를 입력하면 됩니다. /example 디렉터리와 해당 디렉터리의 모든 파일과 일치하려면 /example/* 를 입력하면 됩니다. |
URL 전체 | 요청된 URL의 전체 내용 | https://www.example.com/foo |
쿼리 문자열 | 요청 URL의 쿼리 문자열 | 매개변수 이름: key 매개변수 값: value |
파일 확장자 | 요청 콘텐츠의 파일 확장자 | jpg, png, CSS |
파일 이름 | 요청된 콘텐츠의 파일 이름 | foo.txt |
HTTP 요청 헤더 | HTTP 요청 헤더 | HTTP 요청 헤더 이름: name HTTP 요청 헤더 값: value |
클라이언트 지리 위치 | 클라이언트 IP의 국가/지역 | 미국 |
요청 프로토콜 | 요청된 프로토콜 유형 | HTTPS 또는 HTTP |
모두 | 모든 사이트 요청 | N/A |
작업은 일치하는 요청이 발생했을 때 규칙 엔진 내에서 실행되는 일련의 기능 구성입니다. 아래 표는 규칙 엔진의 지원되는 일치 유형 및 작업을 보여줍니다. 자세한 내용은 지원되는 일치 유형 및 작업.
작업 | 설명 | 지원되는 일치 유형 |
---|---|---|
노드 캐시 TTL | 캐시 TTL을 구성함으로써 노드 캐시를 최적화하여 자원 로딩을 개선하고 자원을 신속하게 업데이트할 수 있습니다. | HOSTURL 전체URL Path파일 이름파일 확장자 |
브라우저 캐시 TTL | 자원의 브라우저 캐시 기간을 조정하여 브라우저 캐시를 최적화하고 요청된 자원의 로딩 속도를 증가시킬 수 있습니다. | HOSTURL 전체URL Path파일 이름파일 확장자쿼리 문자열클라이언트 지리 위치 |
사용자 정의 캐시 키 | 쿼리 문자열, HTTP 헤더 및 URL 케이스를 설정하여 요청된 자원을 더 빠르게 로드할 수 있도록 캐시 키를 사용자 정의할 수 있습니다. | HOSTURL 전체URL Path파일 이름파일 확장자쿼리 문자열 HTTP 요청 헤더클라이언트 지리 위치 |
상태 코드 캐시 TTL | 원본 응답 상태 코드에 대한 TTL 기간을 지정하여 노드가 직접 비-2XX 코드를 응답하도록 할 수 있습니다. | HOSTURL 전체URL Path파일 이름파일 확장자쿼리 문자열 |
캐시 프리패치 | 캐시된 자원은 만료 전에 원본 풀을 통해 검증되어 사이트가 요청에 더 신속하게 응답할 수 있도록 합니다. | HOSTURL 전체URL Path파일 이름파일 확장자 |
오프라인 캐시 | 오프라인 캐싱이 활성화되면 원본이 실패하고 원본 풀을 통해 자원을 가져올 수 없는 경우에도, 일반적으로 노드에 캐시된 자원(만료된 자원 포함)을 사용할 수 있어 원본이 복구될 때까지 사용할 수 있습니다. | HOSTURL 전체URL Path파일 이름파일 확장자쿼리 문자열 HTTP 요청 헤더클라이언트 지리 위치 |
다음은 독자를 위한 간단한 예시입니다.
요청 URL이: https://test.example.com/example/1.jpg인 경우, 파일이 10분 동안 캐시됩니다.
요청 URL이: https://test.example.com/example/1.mp4인 경우, 파일이 캐시에 적용되지 않습니다.
요청 URL이: https://test.example.com/video/1.jpg인 경우, 정해진 규칙에 부합하지 않습니다.
Tencent EdgeOne는 사용자에게 비즈니스 서비스의 유연성과 세밀함을 제공합니다. 필요에 따라 일치 유형을 사용자 정의하고 해당 작업에 적용할 수 있습니다. 더 알고 싶으시면 언제든지 저희에게 연락해 주십시오.