익숙한 코딩 대신 시스템의 경계를 관찰한다
이 단위는 일반 코딩을 할 수 있는 학습자를 위한 선택 체험이다. Scratch 블록 문법이나 언어 입문을 다시 가르치지 않는다. 센서/이벤트 입력이 내부 상태를 거쳐 명령 출력으로 바뀌고 실제 관측이 다시 돌아오는 흐름을 간단한 사례로 읽는다. 블록·텍스트 코드·GUI는 표현 방식이며, 그 사이의 시스템 계약이 같아야 같은 행동을 비교할 수 있다.
Scratch는 이벤트와 시각적 블록으로 상호 작용을 표현할 수 있는 도구의 예다. IoT는 센서/장치의 관측과 명령을 네트워크로 주고받는 상황, 코딩 로봇은 물리 출력과 관측의 차이를 체험하는 상황으로 사용한다. 특정 제품 구매/가입이나 장치가 없어도 아래 합성 기록을 분석할 수 있다. 이 선택 체험을 다른 공통 과정의 새 필수 선수로 추가하지 않는다.
입력과 출력에 이름보다 많은 정보를 붙인다
거리 입력 하나에도 값/단위·센서 프레임·취득 시각·유효 여부·오차/범위가 있다. 명령에는 대상·크기/단위·seq/유효 기간·허용 상태가 필요하다. 자체 예제는 정지한 가상 이동 체의 전방 거리 값 m와 정지/진행 상태를 비교한다. 실제 로봇을 움직이지 않으며 아래 문턱은 장비 안전 거리로 적용하지 않는다.
그림 M33.01-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
입력 0.4 가 0.4m인지 0.4cm인지, 측정 실패를 뜻하는 sentinel인지 먼저 확인한다. 숫자가 작으니 곧바로 가까운 물체라고 판정하면 단위/고장 계약을 생략한다. 입력이 없거나 오래 됐으면 정상 0 과 구별해 미확인 상태로 처리하고 제공된 중단 규칙을 적용한다. 화면에 값이 표시된 시각과 센서 취득 시각을 혼동하지 않는다.
상태가 있어야 같은 입력도 다르게 처리할 수 있다
자체히스테리시스규칙은 진행 중 거리 ≤.5m면 정지, 정지 중거리 ≥.7m면 진행 복귀다. .5~.7 사이에서는 직전 상태를 유지한다. 초기 진행에서 거리 열.8/.49/.55/.72m이면 상태는 진행/정지/정지/진행이다. 단일 문턱.5만 쓰면 잡음으로.49/.51 을 오갈 때 명령이 자주 바뀔 수 있다. 두 문턱은 그 현상을 줄이는 설계이지만 센서 유실/실제 거리 안전을 보장하지 않는다.
정지 상태에서.55m를 받고 진행으로 바꾼 답은 복귀 문턱을 어긴 것이다. 경계 포함도 계약이다. .5는 정지 조건 충족, .7은 복귀 조건 충족이며 비교 연산을 말로만'가깝다/멀다'고 적지 않는다. 상태 전이 표에 현재 상태·입력 유효성·조건·다음 상태·출력/근거를 나누면 블록/코드/GUI에서 같이 검토할 수 있다.
유효기간과 실제 피드백을 확인한다
공통 clock의 입력 취득 100ms·판정 시 각 180ms이고 유효 기간 50ms라면 입력 나이는 80ms로 범위 밖이다. 제공 규칙은 stale 입력을 정상 거리로 쓰지 않고 정지/미확인으로 전환하는 것이다. 네트워크로 늦게 도착한.8m가 과거 값이면 진행 복귀 근거가 되지 않는다. clock이 다르면 변환/불확실성을 먼저 확인한다.
명령 ACK는 받았다는 응답일 수 있고 모터가 움직였거나 정지했다는 물리 증거가 아니다. 실제 위치/속도 관측과 명령 ID·적용 시각·완료 조건을 연결한다. 같은 명령을 재전송할 때 중복 동작이 생기지 않도록 idempotency/seq 처리를 정한다. 접속 상태가'연결됨'이라는 한 표시만으로 전체 행동이 성공했다고 판단하지 않는다.
화면·명령·현실을 다른 열에 둔다
가상 화면의 스프라이트가 전진하는 것은 로봇의 실제 운동과 다르다. 재생로그에서 진행 아이콘이 바뀌었다면 상태 표시를 확인한 것이지 장비 성능을 검증한 것이 아니다. 실물 체험을 선택한다면 장치/전원/환경·정지 수단·감독과 출력 제한을 별도로 확인하고 기본 합성 계산의 결과로 안전을 보장하지 않는다.
기록 양식에는 입력 원본/단위/시각/품질·현재 상태·판정/출력·ACK·실제 피드백·실패 이유와 설정 버전을 남긴다. 잘 된 한 번의 데모뿐 아니라 경계 값/잡음 왕 복·센서 누락·오래된 입력·중복 명령을 비교한다. 블록으로 옮겨도 이 의미가 유지되는지 설명하면 체험 목표를 달성한 것이다. 다음 선택 단위는 FPV에서 화면 시점과 기체 축이 달라지는 문제를 다루며 로봇 공통 경로로 돌아갈 수 있다.
실패를 재현할 때는 원본 입력 열을 고정하고 상태 초기값도 함께 적는다. 같은 거리 열이라도 처음 정지였는지 진행이었는지에 따라 중간 영역의 출력이 달라질 수 있기 때문이다. 화면을 다시 열었다고 상태가 초기화되는지, 저장된 상태를 복구하는지도 비교한다.
이 체험을 다른 도구로 옮길 때는 소스 문법보다 사건의 의미를 보존한다. 센서 이벤트·타이머·통신 응답이 서로 다른 순서로 도착한 경우를 표로 만들어 본다. 마지막에 온 값이 최신 취득 값이라는 보장은 없으므로 seq와 원본 시각을 기준으로 수용/폐기 규칙을 설명한다.