iGaming 백엔드에서의 시맨틱 레이어(Semantic Layer) 문제
요약
고트랜잭션 iGaming 백엔드 시스템에서 발생하는 데이터 불일치 문제를 해결하기 위한 시맨틱 레이어의 중요성을 다룹니다. 비즈니스 로직을 코드화하여 단일 지점에서 관리함으로써 재무, 리스크, 컴플라이언스 팀 간의 데이터 정의를 통일하는 방법을 제시합니다.
핵심 포인트
- 시맨틱 레이어는 비즈니스 용어를 코드 형태로 정의하고 버전 관리하는 단일 지점임
- 팀별로 서로 다른 데이터 정의(순 입금액 등)를 사용할 경우 규제 대응 시 심각한 문제 발생
- 원시 데이터와 소비자 사이에서 동일한 함수와 필터를 사용하도록 강제하는 규율이 핵심
- 데이터 웨어하우스, 피처 스토어, SQL 쿼리 간의 정의 불일치를 방지해야 함
작성자: Kacper Osiewalski, Digital Colliers 리드 백엔드 엔지니어
LinkedIn 게시물에 따르면, 고트랜잭션 시스템(high-transaction systems)에서 가장 어려운 문제는 처리량(throughput)이 아니라 합의(agreement)라고 합니다. 이것은 그 주장에 대한 더 긴 버전의 논증입니다. 라이선스를 보유한 운영사(operator)에서 백엔드를 운영하고 있다면, 여러분은 이미 그 양상을 알고 있을 것입니다. 세 팀이 동일한 고객을 바라보고, 동일한 수치를 추출하지만, 결국 세 가지 서로 다른 결론에 도달합니다. 각자의 기준에서는 누구도 틀리지 않았습니다. 그것이 바로 문제입니다.
시맨틱 레이어(Semantic Layer)란 실제로 무엇인가
데이터 웨어하우스(data-warehouse) 마케팅 용어를 걷어내고 보면, 시맨틱 레이어는 단순히 이것입니다: 비즈니스 용어가 코드 내에서 정의되는, 버전 관리가 되는 단일 지점입니다. 위키(wiki)가 아닙니다. 아무도 읽지 않는 Confluence 페이지도 아닙니다. 테스트를 포함한 코드 형태이며, 원시 이벤트 스트림(raw event stream)과 이를 읽어가는 모든 것들 사이에 위치합니다.
따라서 재무(finance) 팀이 "순 입금액(net deposits)"이라고 말할 때, 리스크(risk) 팀도 "순 입금액"이라고 말하고, 컴플라이언스(compliance) 팀도 "순 입금액"이라고 말한다면, 세 팀 모두 동일한 함수를 호출하고 있는 것입니다. 동일한 필터, 동일한 취소된 트랜잭션(reversed transactions), 보너스 머니, 차지백(chargebacks), 그리고 브랜드 간 지갑 이체(cross-brand wallet transfers)에 대한 동일한 처리 방식을 사용합니다. 정의가 변경되면 한 곳에서 변경되며, 모든 다운스트림 소비자(downstream consumer)는 다음 실행 시 이를 반영하게 됩니다.
그게 전부입니다. 마법 같은 것은 없습니다. 마법은 그 누구도 이를 우회하지 못하게 하는 규율(discipline)에 있습니다.
세 팀의 불일치 패턴
GGY(Gross Gaming GGR)가 약 5,000만 파운드에서 5억 파운드 사이인 운영사들 사이에서 제가 계속 목격하는 패턴은 다음과 같습니다. 재무 팀은 데이터 웨어하우스(warehouse)를 소유합니다. 리스크 팀은 실시간 피처 스토어(real-time feature store)를 소유합니다. 컴플라이언스 팀은 규제 기관이 요청할 때마다 운영 복제본(production replicas)에 실행되는 일련의 SQL 쿼리를 소유합니다.
각 팀은 동일한 고객 지표를 약간씩 다르게 정의합니다:
-
Finance는 보너스 자금으로 베팅된 금액을 수익(revenue)으로 간주하는 반면, Compliance팀은 해당 보너스가 부여되는 순간부터 노출액(exposure)으로 간주합니다.
-
Risk팀은 승인 시점에 입금을 계산하고, Finance팀은 정산(settlement) 시점에 계산합니다. Compliance팀은 이 두 가지를 모두 요구하며, 각각의 타임스탬프가 필요합니다.
-
세 팀 모두 자가 제외 계정(self-excluded accounts), 휴면 계정(dormant accounts), 그리고 다중 브랜드 지갑(multi-brand wallets)을 다루는 방식이 다릅니다.
이러한 차이는 규제 기관이 특정 질문을 할 때까지는 중요하지 않습니다. 하지만 그 순간에는 매우 중요해집니다. 영국에서 적용되는 재정 건전성 기준(affordability threshold)은 롤링 30일 동안 순 입금액(net deposits) £150입니다. 만약 귀사의 세 팀이 '순 입금액'의 의미에 합의하지 못한다면, 적절한 시점에 올바른 고객을 플래그 지정했다는 것을 증명할 수 없습니다. 영국 라이선스를 보유한 운영사 중 4분의 1가량이 첫 평가에서 만족스러운 AML(Anti-Money Laundering) 등급을 받지 못하며, 제가 가까이서 본 검토 사례들에서 정의의 이탈(definition drift)은 보통 근본 원인에 있습니다.
좋은 시맨틱 레이어 계약(semantic-layer contract)이란 무엇인가
사용 가능한 계약은 다섯 가지 속성을 가집니다. 그 어떤 것도 생소하지 않습니다. 하지만 배포 압박이 있을 때면 모두 무시되기 쉽습니다.
-
모든 지표는 하나의 소유자(owner)와 하나의 정의 파일(definition file)을 가져야 합니다. 한 팀이 아닙니다. CODEOWNERS에 적힌 한 명의 사람 이름이어야 합니다.
-
모든 정의에는 예시 입력값과 예상 출력값이 함께 제공되어야 합니다. 골든 레코드(Golden records)입니다. 모든 병합(merge)마다 회귀 테스트(Regression tests)가 실행되어야 합니다.
-
모든 정의는 버전 관리(versioned)되어야 합니다. '평생 입금액(lifetime deposits)'이 역전 거래를 처리하는 방식을 변경할 때, 이전 버전은 이미 진행 중인 보고서들을 위해 계속 작동해야 합니다.
-
모든 소비자(consumer)가 등록되어야 합니다. 어떤 대시보드, 어떤 리스크 모델, 그리고 어떤 컴플라이언스 쿼리가 각 지표를 읽는지 알아야 합니다. 변경 영향도는 슬랙 스레드가 아니라 쿼리로 확인되어야 합니다.
-
RCI와 관련된 지표는 그로써 태그가 지정되어야 합니다. 영국 도박 위원회(UK Gambling Commission)의 RCI 지침은 2022년 8월 31일부터 시행되었고 2024년에 확대되었습니다. 규제 기관은 단순히 결과뿐만 아니라 개입 배경에 있는 논리(logic)를 점점 더 확인하고자 합니다.
계약은 지루합니다. 그것이 핵심입니다. 지루함이야말로 Section 116 검토(review)에서 살아남는 것입니다.
이것이 감사를 해결하는 방식과 뒤처질 위험
컴플라이언스(compliance) 팀이 버전 관리된 지표 정의(metric definition)를 지목하고, 해당 날짜에 지표가 올바르게 작동했음을 증명하는 테스트 스위트(test suite)를 보여주며, 지표가 플래그(flag)를 표시한 고객 목록을 생성할 수 있다면, 감사는 하나의 프로젝트가 아닌 단순한 쿼리(query)가 됩니다. Kindred는 2023년에 컴플라이언스 팀 비용으로 1,400만 파운드를 지출했다고 공개적으로 보고했습니다. 어떤 운영사든 이러한 지출의 상당 부분은 시맨틱 레이어(semantic layer)가 한 번에 처리할 수 있는 수치들을 사람들이 수동으로 대조(reconcile)하는 데 사용됩니다.
뒤처질 위험은 실재하며 단기적인 문제입니다. 가장 심각한 자금세탁방지(AML) 위반에 대한 영국의 벌금은 총 게임 수익(gross gaming yield)의 최대 15%에 달합니다. GDPR 벌금은 여전히 2,000만 유로 또는 전 세계 매출액의 4% 수준입니다. 세 개의 팀이 세 개의 서로 다른 정의를 가진 채 2026년으로 넘어가는 운영사들은, 서면으로 방어할 수 없는 지적 사항을 받기까지 단 한 번의 나쁜 분기만을 남겨두고 있습니다.
이 문제에 앞서 대응하는 팀들은 제품을 구매하는 것이 아닙니다. 그들은 보통 지불 능력(affordability), AML, 그리고 RCI와 관련된 소수의 지표를 선택하여 우선적으로 계약(contract) 하에 둡니다. 그런 다음 확장해 나갑니다. 이는 화려하지 않은 작업입니다. 하지만 이는 2주가 걸리는 감사와 2분기가 걸리는 감사를 가르는 차이점입니다.
출처
이 기사는 원래 Digital Colliers Blog에 게시되었습니다. Digital Colliers는 DACH 및 영국 기업의 AI 도입을 돕습니다 — 저희의 AI 컨설팅 서비스를 확인하거나 문의하기를 이용하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기