나는 JS, C#, 그리고 Dart용 경량 규칙 엔진을 만들었습니다 — 작동 방식은 다음과 같습니다

발행: (2026년 2월 21일 오전 09:04 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Cover image for I Built a Lightweight Rule Engine for JS, C#, and Dart — Here's How It Works

문제

다양한 프로젝트에서 같은 패턴을 반복해서 보게 되었습니다: 이벤트가 발생하고, 몇 가지 조건을 확인해야 하며, 그 조건에 따라 특정 동작을 실행해야 합니다. 인증 흐름, 게임 메커니즘, IoT 자동화, 전자상거래 로직—모두 이 패턴을 따릅니다.

대부분의 규칙 엔진은 제가 필요로 하는 것에 비해 너무 무겁거나 하나의 언어에만 국한돼 있었습니다. 그래서 직접 만들게 되었습니다.

ARE란?

**ARE (Action Rule Event)**는 가볍고 의존성이 없는 규칙 엔진입니다. 개념은 간단합니다:

  • Events(이벤트) – 일어나는 일 (사용자 로그인, 온도 변화, 주문 발생)
  • Rules(규칙) – 평가할 조건 (온도 > 30, 주문 총액 > 100)
  • Actions(액션) – 조건이 충족될 때 실행할 작업 (알림 전송, 할인 적용)

파이프라인: Event → Middleware → Condition Evaluation → Rule Matching → Action Execution

다중 플랫폼

제가 어디서든 사용할 수 있길 원했기 때문에 ARE는 세 가지 플랫폼에서 제공됩니다:

  • JavaScript/TypeScript → npm
  • C# / .NET → NuGet
  • Dart / Flutter → pub.dev

세 플랫폼 모두 동일한 API 디자인을 사용합니다. 하나만 알면 모두 알 수 있습니다.

플레이그라운드

문서만으로는 부족했기에 실제 엔진 동작을 체험할 수 있는 인터랙티브 플레이그라운드를 만들었습니다. 세 가지 실제 시나리오가 포함됩니다:

  • 🎮 RPG 게임 – 전투 규칙, 전리품 드롭, 지역 효과, 보스 전투
  • 🏠 스마트 홈 – 센서 이벤트, 스케줄, 에너지 관리, 보안
  • 🛒 전자상거래 – 주문 처리, 재고 알림, 고객 리워드

각 시나리오는 미리 구성된 이벤트, 규칙, 액션을 제공합니다. 이벤트를 발생시키면 엔진이 실시간으로 처리 과정을 보여줍니다.

🔗 Try it: https://are-playground.netlify.app

내가 자랑스러워하는 기능들

  • Rule Flow Diagram – 각 처리 단계가 애니메이션으로 표시되는 파이프라인
  • Rule Debugger – 규칙을 확장해 조건별 상세 내역(필드, 연산자, 기대값 vs 실제값, 통과/실패) 확인
  • Relationship Graph – 이벤트‑규칙‑액션 간 연결을 시각화한 맵; 마우스 오버 시 연결 강조
  • Interactive Tutorial – 첫 방문자를 위한 가이드 투어, 모든 패널을 단계별로 안내
  • Full CRUD – 이벤트, 규칙, 액션을 실시간으로 추가·수정·삭제; 코딩 없이 나만의 시나리오 생성 가능
  • Code Sandbox – Monaco 에디터를 이용해 직접 ARE 로직을 작성하고 테스트

기술 스택

  • React 19 + TypeScript
  • Vite
  • Tailwind CSS v4
  • Zustand (상태 관리)
  • Framer Motion (애니메이션)
  • i18next (영어 + 터키어)

다음 단계

피드백을 기다리고 있습니다. 플레이그라운드를 사용해 보신다면 다음을 알려 주세요:

  • 이벤트 → 규칙 → 액션 개념이 명확했나요?
  • 어떤 사용 사례에 적용하고 싶으신가요?
  • 프로젝트에 유용하도록 추가되었으면 하는 기능은 무엇인가요?

GitHub: https://github.com/BeratARPA/ARE

읽어 주셔서 감사합니다. 궁금한 점이 있으면 언제든 물어보세요.

0 조회
Back to Blog

관련 글

더 보기 »

C#에서 SOLID 파트 1: 단일 책임

이것은 제 SOLID Principles in C 시리즈의 Part 1입니다. 각 기사에서는 실제 코드를 통해 원칙을 살펴보고, 실제 production codebase에서 볼 수 있는 코드 유형을 다룹니다....