Reward Engine Foundation v4

02. 아키텍처 원칙 (Architecture Principles)

문서 ID: RES-FND-02
문서명: Architecture Principles
볼륨: Volume 1 --- Reward Engine Foundation v4
버전: 4.0
상태: Official Standard
공개 등급: Public Specification


1. 목적

본 문서는 Reward Engine Standard(RES)의 아키텍처 원칙을 정의한다.

본 문서에서 정의하는 원칙은 모든 RES 구현체가 반드시 준수해야 하는 규범적(Normative) 아키텍처 기준이다.


2. 기본 원칙

모든 RES 구현체는 다음 원칙을 준수하여야 한다.

  • 계산과 표현은 SHALL 분리되어야 한다.
  • 재무 기준은 SHALL 단일 계층에서 관리되어야 한다.
  • 사용자 경험은 SHALL 회계 결과를 변경해서는 안 된다.
  • 모든 계산은 SHALL 재현 가능해야 한다.
  • 아키텍처는 SHALL 국가 확장에 영향을 받지 않아야 한다.

3. 계층 구조

RES는 다음 두 개의 개념적 계층으로 구성된다.

  1. Accounting Engine
  2. Experience Engine

각 계층은 독립적인 책임을 가지며 서로의 책임을 침범해서는 안 된다.


4. Accounting Engine 원칙

Accounting Engine은 재무적 기준을 담당한다.

다음 기능은 Accounting Engine의 책임이다.

  • Advertisement Revenue 처리
  • Standard eCPM 적용
  • 공식 리워드 계산
  • Source of Truth 생성
  • 계산 이력 유지
  • 계산 재현성 보장

Accounting Engine은 공식 계산 결과를 생성하는 유일한 계층이어야 한다(SHALL).


5. Experience Engine 원칙

Experience Engine은 사용자 경험을 담당한다.

다음 기능은 Experience Engine의 책임이다.

  • Point 표시
  • 사용자 인터페이스
  • 이벤트 표현
  • 서비스 정책 반영
  • 사용자 피드백 제공

Experience Engine은 Accounting Engine의 계산 결과를 수정해서는 안 된다(SHALL NOT).


6. 데이터 흐름 원칙

데이터는 다음 순서를 따라야 한다.

Advertisement Revenue → Standard eCPM → Accounting Engine → Source of Truth → Experience Engine → Point

역방향 데이터 의존성은 허용되지 않는다(SHALL NOT).


7. 의존성 원칙

허용되는 의존성

  • Experience Engine → Accounting Engine 결과 참조
  • 운영 정책 → Experience Engine 적용
  • Standard eCPM → Accounting Engine 입력

허용되지 않는 의존성

  • Experience Engine → Accounting Engine 계산 변경
  • Point → Accounting Engine 입력
  • 사용자 인터페이스 → 공식 계산 변경

8. 확장성 원칙

새로운 국가, 새로운 서비스, 새로운 플랫폼이 추가되더라도 아키텍처 자체는 변경되지 않아야 한다(SHALL).

확장은 데이터와 운영 정책을 통해 수행되어야 하며 계산 구조를 변경해서는 안 된다.


9. 구현 요구사항

모든 RES 구현체는 다음 요구사항을 만족하여야 한다.

  • SHALL 하나의 Accounting Engine만 사용한다.
  • SHALL 하나의 Source of Truth만 유지한다.
  • SHALL Experience Engine을 표현 계층으로 유지한다.
  • SHALL 계산 결과를 재현할 수 있어야 한다.
  • SHALL 계층 간 책임을 명확히 분리해야 한다.

10. 요약

본 문서는 RES의 핵심 아키텍처 원칙을 정의한다.

모든 구현체는 본 문서의 계층 구조와 책임 분리 원칙을 준수하여 재무 무결성, 확장성 및 사용자 경험을 동시에 달성하여야 한다.