콘텐츠로 이동
DeukPack 대표 브랜드 시안 - 데이터 팩을 메고 달리는 강아지 컨셉

DeukPack — AI 에이전트와 Unity를 잇는 견고한 약속

서버의 유연성
클라이언트의 성능 보장

Dynamic JS/AI 유연성 × High-Performance In-place Reuse 성능

AI 에이전트 자동화의 하이브리드 스키마 엔진.

AI가 득팩은 파편화된 IDL을 하나의 '시맨틱 척추(Spine)'로 통합합니다. Node.js 서버에서는 JSON 객체를 자유롭게 자르고 붙이십시오. 득팩이 스키마(.deuk)를 필터 삼아 필요한 필드만 경량 바이너리로 압축합니다.

Unity 클라이언트에서는 인스턴스 및 컨테이너 재사용을 통해 가비지(GC) 발생을 최소화하는 In-place Unpack으로 처리됩니다. 유연함과 성능의 비대칭 아키텍처를 제공합니다.

Zero-Alloc C# 파서 Dynamic JS/TS 마스킹 AI-Native JSON Wire MCP 기반 AI 가드레일

언어 전환 (한국어 ↔ English)

  • 영문:** 페이지우측 상단언어** 메뉴.
  • URL: 한국어는 사이트 루트, English는 /en/….
  • GitHub README: README.ko.md · README.md.

📢 [v1.9.0 업데이트] Python(Pure/Rust) 공식 엔진 지원 및 산업 표준 BMT 지표 갱신

득팩 생태계에 Python (3.6+) 공식 바이너리 엔진(Pure/Rust 확장 지원)이 새로이 추가되었습니다. 이와 더불어, 엔터프라이즈 환경에서의 객관적인 신뢰성 확보를 위해 과거의 자체 측정 방식을 폐기하고, 전 언어에 걸친 벤치마크 환경을 TTA BMT 수준의 산업 표준 프레임워크(BenchmarkDotNet, mitata, pytest-benchmark 등)로 개편했습니다.

실제 서비스와 동일한 복합 객체 환경에서 재검증된 보다 투명하고 엄격한 최신 지표는 성능 매트릭스 백서에서 확인하실 수 있습니다.

⚡ 한눈에 보기 (What it looks like)

1. OpenAPI 스키마 임포트 (또는 .deuk IDL 작성)

// 기존에 쓰던 OpenAPI(Swagger)를 그대로 먹이거나, 깔끔한 IDL을 작성합니다:
namespace Dto

struct Hero {
    1> int32 id
    2> string name
    3> float hp
}

2. 서버 (JS/TS): 클래스 없는 순수 POJO 직렬화

// No heavy class wrappers — compress pure JS objects into bytes instantly.
const payload = Dto.Hero.pack({ id: 1, name: "Arthur" });
network.send(payload);

3. 클라이언트 (C# Unity): In-place 읽기 & 오버라이드 쓰기

Dto.Hero cachedHero = new Dto.Hero(); // 최초 1회만 할당

void OnNetworkMessage(byte[] inputData) {
    // 1. 가비지(GC) 최소화 디코딩 (입력 역직렬화, Unpack)
    // 최상위 객체 및 내부 List 인스턴스를 재사용하여 GC 압력을 절감합니다.
    cachedHero.Unpack(inputData); 
    Debug.Log($"Hero: {cachedHero.name}, HP: {cachedHero.hp}");

    // 2. 할당 없는 직렬화 (출력 직렬화, Pack)
    // [new] 할당 쓰기 없이, 값만 변경하여 곧바로 전송합니다.
    cachedHero.hp = 99f;
    byte[] outputData = cachedHero.Pack();
}


제품군 요약

제품 한 줄 정의 소개 문서
득팩 코어·엔진|Mixed-IDL Hybrid Serializer: 어떤 IDL이든 받아 AI 시맨틱 메타와 다언어 코드를 동시에 추출하는 차세대 엔진 CORE_ENGINE →
득팩 프로토콜|Messaging Runtime: 고성능 직렬화 및 AI 가드레일을 제공하는 실시간 통신 엔진 PROTOCOL →
득팩 Excel 애드인|Schema-Driven Editor: 기획 데이터를 스키마 기반으로 검증·동기화하는 Excel 도구 EXCEL_ADDIN →
득팩 파이프라인|AI-Native Pipeline: 빌드부터 전용 코드 생성까지 한 명령으로 이어주는 자동화 툴체인 PIPELINE →
DeukPackMcp Universal AI Hub (준비 중): .proto, .deuk, OpenAPI 등 모든 설계를 AI 스킬로 통합 브리징 MCP_HUB →
DeukNavigation Unity·서버 공용 Deuk 와이어(.dpk) 기반 Recast/Detour NavMesh 솔루션 NAVIGATION →
확장 제품군 DB 마이그레이터, EF 지원, Google Sheets, Unreal/Elixir 등 선택적 확장 EXTENSIONS →

제품 관계도에서 제품 간 데이터·스키마 흐름을 다이어그램으로 볼 수 있습니다. 자세한 내용은 제품군 개요와 각 제품 페이지를 참고하세요. 스택별 바로 적용 예시득팩 키트 라인업에서 안내합니다.


🚀 기존 기술과 무엇이 다른가요? (Key Features)

Protobuf, FlatBuffers, JSON과 비교되는 득팩(DeukPack)만의 3가지 핵심 구조입니다.

  1. 할당(Allocation) 없는 오버라이드 (Zero-Copy Override)
  2. 기존 한계: Protobuf나 Thrift는 유저별로 일부 필드를 가리거나 덮어씌워서 전송할 때, 매번 별도의 DTO 클래스를 메모리에 새로 할당(new)해야 합니다.
  3. 득팩의 차별점: 생성된 C# 객체 단 한 개만 가지고, Write(oprot, overrides) 함수 하나로 변형된 페이로드를 GC 없이 생성합니다.
  4. 클래스 없는 순수 JSON(POJO) 직접 처리
  5. 기존 한계: JS 환경에서도 new Message() 처럼 무거운 클래스 래퍼를 강제하거나, FlatBuffers처럼 복잡한 오프셋 빌더(Builder) 패턴을 써야 합니다.
  6. 득팩의 차별점: AI가 던지는 단순한 자바스크립트 객체({ id: 1 })를 곧바로 바이트 배열로 직렬화합니다. AI 환경에서는 무한히 유연 있으면서도, 클라이언트에서는 정적 타입 바이트로 직렬화됩니다.
  7. 확장된 'AI 시맨틱 척추'
  8. 기존 한계: 기존 IDL 규약들은 그저 통신을 위한 1차원적 바이트 변환 껍데기일 뿐입니다.
  9. 득팩의 차별점: .deuk 파일에는 extends(다단 상속)와 tablelink(DB/메타 테이블 구조)가 내장되어 있어, AI(LLM)가 프로젝트 전체의 ERD 관계성을 한눈에 파악할 수 있는 압축된 지식 그래프(RAG 컨텍스트)로 작동합니다.

AI 시대에서도 필요한 이유

에이전트가 할 수 없는 일(또는 잘 못하는 일)

에이전트는 스펙 초안·비즈니스 로직에는 강하지만, 아래는 보장하기 어렵거나 한 번에 맞추기 어렵습니다. 이 부분은 득팩이 담당하는 편이 안전합니다.

에이전트가 하기 어려운 것 이유
결정론적 출력 같은 스키마에 대해 실행마다 동일한 코드·바이트 레이아웃을 보장하기 어렵다.
와이어·프로토콜 득팩이 정한 스펙으로 바이트를 고정해야 할 때, 에이전트가 매번 다른 인코딩을 내기 쉽다.
다언어·다플랫폼 동시 정합성 C#·C++·TS·Unity·서버가 같은 스키마에서 나온 타입을 쓰려면 한 번의 정의에서 다언어를 내는 파이프라인이 낫다.
빌드·CI 재현성 동일 IDL → 동일 산출물이어야 빌드 캐시·CI가 안정적이다. 에이전트 출력은 재현이 보장되지 않음.
레거시·기존 스펙 이미 돌아가는 .proto·기존 와이어와 필드 ID·바이트를 맞추는 건 코드젠 도구(득팩) 가 담당하는 편이 낫다.

그래서 득팩이 필요한 이유

  • 계약·스키마를 "한 번 정의 → 결정론적 다출력"으로 고정해 주면, 에이전트는 그 결과물(타입·스키마)을 전제로 로직만 생성하면 되어 불일치가 줄어든다.
  • 연동 포인트: 에이전트가 만든 `.deuk, .proto, .thrift, OpenAPI득팩 입력`으로 넘기고 CLI로 코드·타입·직렬화를 생성. 에이전트는 “이 타입을 쓰는 로직”만 만들면 됩니다.
  • 에이전트가 스키마를 생성·수정해도, “실행 가능한 타입·직렬화·다언어 코드”로 바꿔 주는 건 전문 도구(득팩)가 담당하는 편이 안전하다. 에이전트는 그 도구를 도구로 호출하면 된다.

→ 상세: 에이전트가 할 수 없는 일 · AI 파이프라인 연동 정리


🛡️ 보안성 및 인프라 신뢰성 (Security & OOM Defense)

득팩은 외부 네트워크의 텍스트/바이트 페이로드를 직접 파싱하는 인프라 컴포넌트로서 네트워크 파싱 취약점(OOM, 버퍼 플러딩, 무한 루프)에 대한 방어 로직을 내장하고 있습니다.

  • 유니버설 OOM(Out of Memory) 방어 (v1.7.0+): JS, C#, C++, Java, Elixir 전 언어에 대해 스트림 처리 단계에서 MAX_SAFE_LENGTH(10MB) 및 MAX_ELEMENT_COUNT(100만 개) 임계치를 강제합니다. 악의적으로 부풀려진 List나 Map을 수신하더라도 힙에 디코딩 전 패킷을 폐기(Fail-Fast)합니다.
  • 다단계 점진적 길이 체크 (JSON Flood 방어): 기존 ReadToEnd() 기반의 위험한 파싱을 제거하고, 스트림이 진행되는 즉시 길이를 사전에 예측해 검증하는 메커니즘으로 교체하여 거대 단일 문자열 공격이나 JSON 스택 파싱 오류를 방지합니다.
  • DDoS Fuzzer CI 통과: CI/CD 파이프라인에서 2GB 이상의 비정상 덤프 데이터와 무한 뎁스 페이로드를 모든 언어 파서에 주입(test-fuzz-oom.js)하여, 파서가 오류를 복원력을 검증합니다.

지원 프로토콜 및 언어 (v1.9.0)

언어 / 플랫폼 Pack (.dpk) TBinary TCompact TJSON JSON (Wire) YAML / CSV Protobuf OpenAPI MCP In-place / JIT
TypeScript / JS ✅ (v1.5) ✅ (v1.6)
C# (.NET / Unity) ✅ (v1.2.7) -
C++ ✅ (v1.5) - ✅ (v1.5) 🚧 - - ✅ (v1.4.2)
Java ✅ (v1.5) ✅ (v1.5) 🚧 - - - 🚧
Elixir (BEAM) ✅ (v1.7) - - - - - - - - ✅ (BEAM)
Excel (Add-in) - - - - - - - - -
Python ✅ (Pure/Rust) 🚧 - - - 🚧 - - ✅ (v1.9)
  • ✅: 정식 지원 / Production Ready
  • ⚠️: 프리뷰 / 일부 기능 지원
  • 🚧: 파일럿 / 개발 진행 중
  • -: 현재 미지원

⚡ 성능 및 벤치마크

안내: 벤치마크 데이터 갱신 중 고도로 최적화된 내부 프로토콜과 집계된 벤치마크 결과표 간에 다소 오차가 발견되어, 지표 정상화를 위한 수정 작업이 진행 중입니다. 상세 성능 매트릭스 표 및 교차 언어 벤치마크 원본 데이터는 지표 수정 완료 후 다시 게재될 예정입니다.

DeukPack의 객관적인 성능 측정을 위해 BenchmarkDotNet, mitata, pytest-benchmark 등 산업 표준 벤치마크를 도입하였습니다. 타사 상용 포맷 대비 평균 메모리 할당 60~100% 절감, 파싱 속도 측면에서 약 250%~500% 이상의 성능 향상을 달성했습니다. 벤치마크 시나리오나 결과에 대한 개선 의견 및 오류 제보는 언제나 환영합니다.


다음 단계