Skip to content

Task-WorldQuery 직접 생성 패턴을 EngineWorld 경유로 일원화 #93

@SilverSupplier

Description

@SilverSupplier

Summary

WorldQuery 접근 경계를 EngineWorld::query()로 일원화하고, engine 외부 코드가 EcsCore 기반 query facade를 직접 생성하지 않도록 public API 경계를 정리한다.

Parent Issue

#1

Area

Engine

Target Sprint

Sprint 1

Why Needed

engine foundation에서 EngineWorld는 query/commands/resources의 단일 접근 지점이어야 한다. 테스트나 후속 코드에 WorldQuery(EcsCore&) 직접 생성 패턴이 남아 있으면 runtime이 제공하려는 world boundary가 약해지고, 이후 resource/scheduler/lifecycle 규칙도 한 곳에 모으기 어려워진다.

Scope

  • 테스트 코드의 WorldQuery(EcsCore&) 직접 생성 패턴을 EngineWorld::query() 경유 접근으로 교체한다.
  • 필요하면 WorldQuery 생성자를 engine 내부 전용 또는 제한된 경계로 두는 방안을 적용한다.
  • 접근 경계 정리 이후 기존 테스트 전체 통과를 확인한다.

Out of Scope

  • query API의 기능 확장
  • domain snapshot 계약 정의
  • ECS storage 구조 변경

Core Design Criteria

  • engine public 사용자는 EngineWorld를 통해 query/commands/resources에 접근한다.
  • WorldQuery는 world facade 뒤에 있는 구현 상세로 점차 정리한다.
  • 테스트도 실제 public access pattern을 따르도록 유지한다.

Acceptance Criteria

  • 테스트 코드가 WorldQuery(EcsCore&)를 직접 호출하지 않는다.
  • EngineWorld::query() 경유 접근이 기준 패턴으로 정리된다.
  • 기존 테스트 전체가 통과한다.

Related Docs

  • docs/architecture/프로젝트 구조.md
  • uml/engine-ecs-core.puml
  • uml/engine-runtime-core.puml

Dependencies / Blockers

  • #12의 EngineWorld 접근 경계를 기반으로 한다.
  • #21의 resources 접근까지 포함한 world facade 방향과 일치해야 한다.

Repository Checks

  • I checked for an existing related issue or epic before creating or updating this task.
  • I will keep the issue title aligned with the repository naming convention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions