노트버디 상태 전이와 저장기술
Python 실행 경계: 공통 규칙과 서로 다른 호출자
노트버디의 공통 Python 전이 함수와 브라우저·Anna 호출 경계
노트버디 사례에서 확인한 Python의 역할은 화면 기술 전체가 아니라 게임 상태 전이 계산이다. engine/game_api.py의 transition은 상태·명령·ExecutionContext를 받아 결과와 다음 상태를 돌려준다. 실행 문맥에는 시각·난수원·ID 생성기 등 계산에 필요한 외부 입력이 담긴다. 전이 코드 · 실행 포트
두 호출 경로
브라우저의 JavaScript Worker는 Pyodide로 Python 코어를 적재하고 메시지를 transition에 전달한다. Anna Worker도 허용 명령을 확인한 뒤 같은 전이 함수로 들어간다. 두 Worker의 입력·출력 처리가 같다는 주장이 아니라, 게임 규칙의 진입점이 같다는 관찰이다. 브라우저 Worker · Anna Worker
웹의 저장은 전이 계산과 별도로 web/store.js가 IndexedDB에 수행한다. 코드에는 리비전을 비교한 갱신 경로가 있다. 이 저장 방식을 Anna의 영속화 방식으로 일반화하지 않는다. 브라우저 저장
사실과 아직 없는 해석
공개 파일은 함수의 역할과 호출 경로를 보여 준다. Python을 선택한 개인적 이유, 대안 비교, 이 구조의 성능·운영 결과는 이 파일들만으로 확인할 수 없다. 향후 결정 기록이 공개되면 사용 사실과 이유를 따로 적는다.
근거 문서
- 1Notebook Pets game APIkdkrkwhr/notebook-pets · engine/game_api.py커밋 ca5648b
- 2Notebook Pets execution portskdkrkwhr/notebook-pets · engine/ports.py커밋 ca5648b
- 3Notebook Pets web Workerkdkrkwhr/notebook-pets · web/worker.js커밋 ca5648b
- 4Notebook Pets Anna Workerkdkrkwhr/notebook-pets · anna/executas/notebuddy/game_worker.py커밋 ca5648b
- 5Notebook Pets browser storekdkrkwhr/notebook-pets · web/store.js커밋 ca5648b
문장과 원본 파일을 사람이 대조했습니다. 원본 링크는 확인한 커밋에 고정했고, Markdown 원문을 그대로 볼 수 있습니다.