// Simple predicates
'tacocat'.startsWith('taco')

// Parameterized predicates over structured data
account.balance >= transaction.withdrawal

// JSON objects
{'sub': '12345678',
 'aud': 'example2.cel.dev',
 'iss': 'https://example1.cel.dev/jwt-issuer'}

// Strongly typed objects
common.GeoPoint{ latitude: 10.0, longitude: -5.5 }

Common Expression Language (CEL)는 성능이 중요한 애플리케이션에서 빠르고 이식 가능하며 안전하게 실행할 수 있는 표현식 언어입니다. CEL은 애플리케이션별 확장 프로그램과 함께 애플리케이션에 삽입되도록 설계되었으며 애플리케이션에서 이미 사용 중일 수 있는 선언적 구성을 확장하는 데 이상적입니다.

API 호출의 목록 필터, 프로토콜 버퍼에 대한 유효성 검사 제약조건, API 요청에 대한 승인 규칙 등에 CEL을 사용하세요.

나노초부터 마이크로초에 이르는 성능이 중요한 경로에서 표현식 평가 가속화
개발자 친화적이고 가벼우며 여러 Google 및 외부 시스템에서 공통된 구문을 사용합니다.
하위 설정 및 확장을 지원하며 삽입이 쉬우며 구성 및 정책 요구사항에 따라 맞춤설정할 수 있습니다.
비튜링이 완료되었으며 호스트 애플리케이션에서 제공하는 데이터에만 액세스합니다.

CEL은 예측 가능한 비용으로 안전하고 빠르게 (나노초에서 마이크로초까지) 평가하도록 설계되었기 때문에 성능이 중요한 애플리케이션에 이상적입니다. CEL 표현식은 특히 조건자 로직과 단순 데이터 변환에 유용합니다.

CEL은 표현식이 자주 평가되지만 드물게 수정되는 애플리케이션에서 가장 효율적으로 사용됩니다. 예를 들어 보안 정책에 따라 HTTP 요청을 평가하는 것은 CEL의 훌륭한 사용 사례입니다. CEL 보안 정책 표현식은 표현식 검증을 위한 일회성 구성 비용이 발생하며, 이는 미미한 비용으로 매우 자주 평가됩니다.

추가 설명이 필요하신가요? CEL 개요 및 언어 정의를 확인하거나 Google에 문의하세요. 기꺼이 도와드리겠습니다.

CEL 프로젝트를 돕고 싶으신가요? 오픈소스 코드 및 문서에 참여합니다. 도움이 필요합니다.