Week 12 / Period 02 / Demonstration

읽고, 예측하고,
한 번만 실행합니다

같은 정보를 실행 전과 후에 읽으면 자동화의 주장을 상태의 차이로 바꿀 수 있습니다. 이번 시연의 유일한 쓰기는 AutomationProbe.Position.x 하나입니다.

  • 운영교수자 설명과 시연
  • 시간60분
  • 학생 활동예측 · 판독 · 구술 회수
기준 상태 저장, 읽기 스캔, 권한 잠금, X축 한 칸 변경과 원상복구를 다섯 단계로 배열한 자동화 시연 작업대
SNAPSHOT → READ → AUTHORIZE → DIFF → ROLLBACK 자동화는 실행이 아니라 기준 상태로 돌아와 검증할 때 끝납니다.

00 / ARRIVAL

2교시의 도착점

교수자의 화면을 따라 클릭하는 시간이 아닙니다. 실행 전에 결과를 예측하고, 출력과 실제 Unity 상태가 그 예측을 지지하는지 판독합니다.

  • 01

    MCP Bridge의 연결 요청과 client 승인을 작업별 권한과 구분합니다.

  • 02

    Console·Hierarchy·Component를 무변경 읽기로 관찰하고 수동 화면과 대조합니다.

  • 03

    한 Transform 값의 예상 차이, 실행, 재읽기와 rollback을 시연합니다.

  • 04

    unity statusunity pipeline listJSON, stderr와 exit code를 판독합니다.

60분의 시연 흐름

설치보다 관찰과 검증에 시간을 씁니다. package와 CLI는 수업 전에 준비하고, 연결이 실패하면 fixture로 즉시 같은 판독을 이어갑니다.

00–60 min

무변경 읽기에서 단일 쓰기와 복구까지

Demonstration / professor-led

  1. baseline 공개

    Scene, AutomationProbe, Player Component, Console count와 열린 Editor 한 개를 수동으로 기록합니다.

  2. 연결과 승인

    MCP Bridge Running, Pending Connection의 client 정보와 승인·revoke를 보여 주고 연결과 작업 허가를 분리합니다.

  3. MCP 읽기 두 번

    Console과 Player Component를 읽고 결과를 수동 Console·Inspector와 항목별로 대조합니다.

  4. 단일 쓰기와 rollback

    권한 계약을 소리 내어 읽고 Probe X 0 → 1을 한 번 실행한 뒤 재읽기·Undo·재검증합니다.

  5. CLI 연결 판독

    version, help, auth status, status와 pipeline list를 JSON으로 읽고 target project와 exit code를 확인합니다.

  6. FAIL 시연

    잘못된 project path 또는 닫힌 Editor 예시를 fixture로 보여 주고 성공 출력과 오류 출력을 구분합니다.

  7. 3교시 인계

    세 경로가 같은 baseline·권한 계약·8개 테스트로 끝나는 이유를 회수합니다.

02 / BASELINE SNAPSHOT

자동화가 말하기 전에 사람이 먼저 봅니다

baseline은 막연한 “정상 상태”가 아니라 실행 뒤 같은 방식으로 다시 확인할 수 있는 값의 묶음입니다.

PROJECT
복제본
Week12_AutomationLab
Editor
한 개만 실행, Play Mode 종료
Scene
수업이 지정한 Scene을 열고 저장 상태 확인
PROBE
이름
AutomationProbe 빈 GameObject
Transform
Position (0, 0, 0), Rotation (0, 0, 0), Scale (1, 1, 1)
Component
Transform 외 추가 Component 없음
READ TARGET
Player
Hierarchy의 정확한 이름과 Component 목록
Console
Error·Warning·Log count와 마지막 message
Scene
active Scene 이름과 root GameObject count
CHECKPOINT
저장
Scene과 Script의 미저장 표시가 없음
복구
Undo 또는 별도 project copy
중단
예상 밖 대상·추가 diff·새 Error가 보이면 즉시 중단
DEMO RULE

수업 중 Package 설치, GameObject 생성·삭제, Script·Prefab·ProjectSettings 변경과 build는 하지 않습니다. 유일한 쓰기는 기존 AutomationProbe.Position.x의 0 → 1이며, 시연 안에서 0으로 복구합니다.

첫 연결은 client를 확인하고 명시적으로 승인합니다

Unity MCP Server의 Bridge가 실행 중이어도 새로운 외부 client는 승인 전까지 도구를 사용할 수 없습니다. 승인 뒤에는 자동 재연결될 수 있으므로 수업 종료 때 revoke가 필요합니다.

  1. 01 / BRIDGEUnity Bridge Running

    Project Settings의 AI → Unity MCP Server에서 Bridge 상태를 확인합니다.

  2. 02 / IDENTITYclient 확인

    Pending Connection의 client 이름과 자신이 시작한 연결인지 확인합니다. 모르는 client는 승인하지 않습니다.

  3. 03 / ALLOW연결만 승인

    Allow Access는 Bridge 연결 승인입니다. Scene 쓰기와 삭제 권한을 포괄 승인한 것이 아닙니다.

  4. 04 / TOOLStool 목록 확인

    Unity_ReadConsole, Scene·GameObject 관리 tool 등 실제 연결된 목록을 읽습니다.

  5. 05 / REVOKE종료 때 해제

    시연이 끝나면 access를 revoke하고 공용 컴퓨터의 외부 client와 provider session을 종료합니다.

04 / MCP READ-ONLY DEMO

첫 두 요청은 읽기만 허용합니다

요청마다 대상, 출력 형식과 무변경 조건을 반복합니다. 응답의 요약을 믿기 전에 실제 Console과 Inspector의 항목 수를 맞춥니다.

MCP REQUEST 01 / CONSOLE
Read the Unity console messages and summarize any warnings or errors.
Do not create, edit, delete, save, or run anything.
Return only: error count, warning count, and one-line summaries.

MCP REQUEST 02 / COMPONENTS
In the active Scene, inspect only the GameObject named "Player".
Do not modify the project.
Return the exact GameObject path and the names of its Components.
If there is no exact match or more than one match, stop and report that ambiguity.

복사 뒤에도 대상과 금지 조건을 소리 내어 다시 확인합니다.

MANUAL BASELINE사람이 먼저 기록

Console count와 Player Inspector의 Component 이름을 화면에서 씁니다.

MCP REPORT같은 정보 요청

요약 문장보다 count, object path와 Component 목록을 비교합니다.

CROSS-CHECK항목별 일치

누락·추가·대상 혼동이 없고 project diff가 0일 때만 READ PASS입니다.

변경은 하나, 관찰은 세 번입니다

쓰기 요청보다 먼저 현재 상태와 예상 차이를 적습니다. 실행 뒤 재읽고, Undo 뒤 한 번 더 읽어 baseline 복귀를 확인합니다.

BEFOREX = 0

Inspector, MCP read와 계약의 before가 모두 일치해야 실행합니다.

ONE DIFFX = 1

Hierarchy, 다른 axis·Component·file과 Console에는 변화가 없어야 합니다.

ROLLBACKX = 0

Undo 뒤 같은 관찰을 반복해 baseline과 완전히 일치하는지 확인합니다.

  1. V01대상 수 1

    정확한 이름의 object가 하나입니다.

  2. V02before 일치

    Position X가 계약대로 0입니다.

  3. V03diff 하나

    X만 1이고 다른 관찰값은 같습니다.

  4. V04Console 유지

    새 Error·Warning이 생기지 않습니다.

  5. V05복구 완료

    Undo 뒤 X와 전체 관찰 상태가 baseline입니다.

06 / UNITY CLI DEMO

명령보다 먼저 현재 설치의 help를 읽습니다

Unity CLI는 현재 experimental입니다. 아래 순서는 관찰 중심 수업용 기준이며, 실제 옵션은 설치된 CLI의 --help와 공식 reference를 우선합니다.

TERMINAL / READ-ONLY PREFLIGHT
unity -V
unity --help
unity auth status
unity status --format json
unity pipeline list --format json
unity mcp --help

TERMINAL / TARGET ONE EDITOR
unity list --project-path="/absolute/path/to/Week12_AutomationLab" --format json

VERSION & HELP
목적
문서가 아니라 현재 실행 파일의 기능과 옵션 확인
기록
CLI version과 필요한 subcommand help
주의
다른 학생 화면의 옵션을 그대로 복사하지 않음
AUTH STATUS
목적
로그인 여부만 관찰
금지
수업 중 개인 계정 생성·결제·강제 login
대체
미인증이면 fixture 경로로 전환
STATUS
목적
연결된 Editor의 port, path, version, PID 확인
판정
의도한 project path와 실행 중인 Editor 한 개
FAIL
0개 또는 여러 개면 대상부터 정리
PIPELINE LIST
목적
Pipeline 연결과 사용 가능한 Editor 확인
판정
project path가 baseline 복제본과 일치
실행
명시적 --project-path로 한 Editor만 지정
고급 시연 선택unity list --format json으로 연결된 Editor가 공개한 명령과 parameter schema를 읽을 수 있습니다. 실행 명령을 추측하지 말고 설치 버전의 unity command --help와 list 결과를 먼저 확인합니다.

JSON은 성공 표시가 아니라 판독 가능한 증거입니다

형식이 구조화되어도 내용이 옳다는 보장은 없습니다. command, success, data, errors와 warnings를 실제 target과 함께 읽습니다.

{
  "success": true,
  "command": "status",
  "data": {
    "projectPath": "/…/Week12_AutomationLab",
    "editorVersion": "installed-version",
    "pid": 12345
  },
  "errors": [],
  "warnings": []
}
  1. success는 명령의 성공 여부이지 수업 목표의 완료 여부가 아닙니다.
  2. command가 실행하려던 명령과 같은지 확인합니다.
  3. projectPath가 baseline 복제본인지 absolute path로 대조합니다.
  4. errors·warnings와 stderr를 함께 읽고 숨은 실패가 없는지 확인합니다.
  5. 마지막으로 Unity Editor 화면에서 같은 상태를 수동 확인합니다.
exit code의미수업에서의 다음 행동
0명령 성공data와 실제 Unity 상태를 대조합니다. 자동 PASS로 바꾸지 않습니다.
1 / 2일반 오류 / 사용법 오류stderr와 현재 subcommand help를 읽고 명령·option을 수정합니다.
3 / 4인증 / 구성 오류개인 login을 강제하지 않고 fixture 경로로 전환해 판독을 계속합니다.
6주요 작업 실패성공으로 기록하지 않습니다. target·Editor·Pipeline 상태를 다시 확인합니다.
7service unavailable재시도 가능한 상태이지만 반복 호출하지 말고 잠시 멈춰 환경을 확인합니다.
130 / 143사용자 중단 / 종료 신호중단 이유와 남은 상태를 기록하고 baseline을 수동 확인합니다.

좋은 로그는 명령과 판단을 함께 남깁니다

터미널 transcript만으로는 왜 실행했는지 알 수 없고, 회고 문장만으로는 무엇을 실행했는지 재현할 수 없습니다.

BEFORE
시간·환경
Editor·package·CLI version과 선택 경로
baseline
Scene, target, Console, Transform과 checkpoint
계약
허용 tool, 예상 diff, 금지·중단·복구
EXECUTION
MCP
prompt 원문, 호출 tool, target과 응답 요약
CLI
명령·인수, stdout·stderr와 exit code
비밀
key·token·개인 path의 식별 정보는 redaction
AFTER
diff
예상과 실제의 일치·불일치
교차 확인
Inspector, Console, Hierarchy와 파일 상태
rollback
복구 방법과 baseline 재검사 결과
VERDICT
PASS
예상 차이만 존재하고 복구 뒤 baseline 일치
FAIL
오류·추가 변경·모호한 target과 중단 위치
다음
전체 재실행이 아니라 실패한 가장 가까운 단계

09 / OFFLINE CONTINUITY

연결 실패는 학습 실패가 아닙니다

자동화 수업의 목표는 account를 뚫는 것이 아니라 권한과 증거를 설계하는 것입니다. 연결이 막히면 같은 시점의 fixture를 읽습니다.

ROUTE A / CONNECTED

MCP + CLI

교수자 시연 환경에서 실제 read tool과 CLI status를 사용하고 한 번의 제한 쓰기·Undo를 보여 줍니다.

ROUTE B / PARTIAL

CLI 또는 MCP 하나

가능한 연결에서는 read evidence를 만들고 나머지는 수동 Inspector·Console과 제공 fixture로 대체합니다.

ROUTE C / OFFLINE

fixture + 수동 관찰

sample JSON·MCP report를 판독하고 Unity에서는 같은 baseline과 probe를 수동으로 검사·변경·복구합니다.

EQUAL OUTCOME

세 경로 모두 baseline 표, 읽기 결과 대조, 권한 계약, 단일 X 변경과 rollback, 자동화 로그와 8개 테스트를 제출합니다. 연결 성공 여부와 유료 도구 사용은 평가하지 않습니다.

3교시 전에 복원할 네 가지

답을 먼저 말하고 펼쳐 확인합니다. 순서를 잊었다면 쓰기를 실행하지 않고 baseline으로 돌아갑니다.

Q1. 첫 MCP 요청이 Console 읽기인 이유는 무엇인가?

프로젝트를 바꾸지 않으면서 연결된 tool, 대상 범위와 응답의 정확성을 수동 Console과 비교할 수 있기 때문입니다. 안전한 읽기에서 신뢰도를 먼저 확인합니다.

Q2. AutomationProbe를 0 → 1로 바꾸기 전에 무엇이 모두 일치해야 하는가?

정확히 하나인 target, Inspector와 MCP read의 X=0, Scene·Play Mode·Console baseline, 허용 property, 예상 diff와 rollback 계획이 모두 일치해야 합니다.

Q3. success: true가 수업 PASS가 아닌 이유는 무엇인가?

그 값은 CLI 명령이 성공했다고 보고할 뿐, 의도한 project를 대상으로 했는지, 실제 Unity 상태가 맞는지, 다른 변경이나 오류가 없는지까지 증명하지 않습니다.

Q4. 연결되지 않는 학생은 무엇을 똑같이 증명하는가?

제공 fixture의 상태·출력을 판독하고 수동 Unity 화면에서 baseline, read result, 한 값의 변경과 rollback을 같은 표로 증명합니다. 평가 결과는 연결 경로와 무관합니다.

학생은 같은 보고서를 서로 다른 경로로 완성합니다

3교시의 고정 목표는 자동화를 많이 실행하는 것이 아니라 읽기 결과와 단일 변경이 실제 상태와 일치함을 증명하는 것입니다.

NEXT MISSIONbaseline snapshot → read-only Console report → Player Component inventory → authorization contract → Probe X 0 → 1 → 0 → Console·Scene 재검사 → 8 / 8 PASS.

12 / PRIMARY SOURCES

시연 옆에 열어 둘 Unity 공식 자료

고정된 slide보다 설치된 버전의 help를 우선하고, 문서와 실제 출력이 다르면 그 차이 자체를 automation log에 남깁니다.