pile·
아키텍처·데브시스터즈데브시스터즈·

쿠키런: 킹덤의 전투 데이터, JSON Schema로 검증하고 자동완성하기

쿠키런: 킹덤 전투 콘텐츠는 기획자가 복잡한 조건 분기를 JSON으로 직접 작성하는 구조라, 데이터 정합성 검증이 오랜 과제였다. 유니티 내장 JSON 파서가 잘못된 값을 조용히 무시해 오류가 런타임까지 발견되지 않는 문제를 JSON Schema 도입으로 해결했다. 2023년부터 클라이언트 프로그래머·기획자·QA가 모두 사용하는 편집 시점 검증·자동완성 시스템으로 정착했다.

핵심 포인트
  • 기획자가 테이블 대신 JSON으로 전투 로직을 작성해 빠른 이터레이션이 가능하지만, 스키마 없이는 오류 검출 시점이 런타임으로 늦어진다.
  • 유니티 내장 JSON 파서는 정의되지 않은 필드도 조용히 무시해, 기획자가 오탈자를 입력해도 실행 중 조용히 넘어가는 문제가 있었다.
  • C# 클래스에 [GenerateSchemaAs] 어트리뷰트를 붙여 JSON Schema를 자동 생성, 코드와 스키마를 단일 소스로 관리한다.
  • additionalProperties: false 설정으로 정의되지 않은 필드 입력을 편집 시점에 차단한다.
  • VS Code .vscode/settings.json에 스키마 경로를 등록해 기획자·QA가 별도 툴 없이 자동완성과 실시간 오류 표시를 사용한다.
상세 정리
  • 배경: 전투 콘텐츠는 기획자가 JSON으로 복잡한 조건 분기 로직을 직접 작성한다. 테이블 형식으로 표현하기 어려운 중첩 조건을 유연하게 기술할 수 있다는 장점이 있다.
  • 문제: 유니티 내장 JSON 파서는 스키마 없이 동작해, 오탈자나 잘못된 타입 값도 무시하고 파싱한다. 오류가 QA 단계나 실제 플레이 중에야 발견돼 수정 비용이 크다.
  • 해결 방향: JSON Schema를 도입해 JSON 파일 편집 시점에 타입 오류·필수 필드 누락·미정의 필드를 즉시 검출하도록 전환했다.
  • 스키마 생성 — Contract Resolver: C# 클래스에 [GenerateSchemaAs] 어트리뷰트를 추가해, JSON 직렬화 시 필드명과 타입 정보가 JSON Schema에 자동 반영된다. 코드와 스키마가 단일 소스로 유지된다.
  • 스키마 후처리 — Enum 문자열화: 기본 직렬화는 Enum을 숫자로 출력하지만, 기획자가 의미를 이해할 수 있도록 Schema 후처리로 문자열 값 입력을 받게 변환했다.
  • 스키마 후처리 — 추가 필드 차단: additionalProperties: false를 Schema에 추가해, 정의되지 않은 필드를 입력할 경우 VS Code가 즉시 오류를 표시하도록 했다.
  • VS Code 연동: .vscode/settings.json에 JSON 파일 패턴과 스키마 파일 경로를 매핑한다. 기획자·QA가 해당 JSON 파일을 열면 자동완성 목록과 실시간 검증이 자동 활성화된다.
  • 적용 결과: 2023년부터 클라이언트 프로그래머·기획자·QA가 공동으로 사용하는 전투 콘텐츠 데이터 작성 도구로 정착, 생산성 향상과 전투 콘텐츠 버그 감소 효과를 확인했다.
왜 읽나기획자·QA가 직접 편집하는 JSON 데이터의 오류를 코드 변경 없이 편집 시점에 잡고 싶은 게임 클라이언트 엔지니어에게 실전 구현 레퍼런스.
데브시스터즈
데브시스터즈 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 아키텍처·cloudflare-blogCloudflare Blog·

    Monetization Gateway 공개: x402로 Cloudflare 뒤 모든 리소스에 과금하기

    Cloudflare가 HTTP 402 상태 코드를 재활용한 오픈 결제 프로토콜 x402와 스테이블코인 정산을 결합한 Monetization Gateway를 발표했다. 웹페이지·데이터셋·API·MCP 도구 어디든 Cloudflare 뒤에 놓으면 사용량 기반 마이크로페이먼트를 붙일 수 있다. AI 에이전트가 광고를 안 보고 구독도 유지하지 않는 시대에, 개발자와 퍼블리셔가 콘텐츠·도구를 직접 과금할 수 있는 인프라를 엣지에서 제공하는 것이 핵심이다.

    #http-protocol#x402#micropayment+2
  2. 아키텍처·cloudflare-blogCloudflare Blog·

    Cloudflare Workflows에 사가 롤백을 구현한 방법

    Cloudflare Workflows 엔진에 사가(Saga) 패턴 롤백 기능을 추가한 과정을 다룬다. 다단계 워크플로우에서 중간 단계가 실패했을 때 이전 단계의 부작용을 되돌리는 보상 로직(compensating action)을 각 step에 선언적으로 정의할 수 있게 됐다. Workers RPC의 callable reference를 활용해 엔진 재시작 후에도 핸들러를 복구할 수 있는 내구적 설계를 택했다.

    #workflow-engine#cloudflare-workers#saga-pattern+2
  3. 아키텍처·LY CorporationLY Corporation·

    AI 시대의 개발 능력은 검증력으로 결정된다, Flava API Gateway 개발 중 배운 빠른 검증과 로컬 환경 구성 전략

    LY Corporation 의 Flava API Gateway 개발팀이 AI 코딩 에이전트 도입 후 직면한 "빠른 코드 생성 vs 느린 검증" 문제를 해결한 전략을 공유한다. 스펙 주도 개발, 검증 자동화, 로컬 환경 재현성의 세 축으로 접근해 AI 에이전트가 즉각적인 피드백 루프 안에서 안정적으로 작동할 수 있는 개발 기반을 구축했다.

    #ai-agent#test-automation#openapi+2