Muse Gadgets의 ESP32·Linux 선택과 권한 설계

Muse Gadgets의 기기 선택, 실행 권한, 오픈소스 조건을 에이전트 시제품 관점에서 정리합니다.

· 작성 최재현

ESP32 보드와 라즈베리파이 사이에서 권한 확인을 거쳐 화면과 센서로 연결되는 손그림 표지

출력 장치가 필요하면 ESP32부터 검토하기

Muse Gadgets 공식 자료는 ESP32 Device SDK로 화면, 버튼, 마이크, 스피커, 센서를 연결할 수 있다고 설명합니다. 작은 상태 화면, 음성 입력 기기, 전자종이 브리핑 보드처럼 입력과 출력이 분명한 시제품에 맞습니다. 에이전트가 처리 중인지, 응답을 마쳤는지, 연결이 끊겼는지를 LED나 화면으로 보여주면 사용자가 상태를 바로 확인할 수 있습니다.

ESP32 시제품을 설계할 때는 AI가 해야 할 일을 늘리기보다 기기의 입출력을 먼저 정합니다. 버튼을 누를 때만 음성을 받는지, 센서 값이 기준을 넘을 때만 요청을 보내는지, 화면에는 결과 전체와 요약 중 무엇을 표시할지 결정합니다. 네트워크 오류가 나면 자동 실행을 멈추고 오류 상태를 보여주는 규칙도 함께 둡니다.

파일과 명령을 다루면 Linux 권한부터 줄이기

Linux Device SDK는 Raspberry Pi나 Linux 컴퓨터를 Muse 기기로 연결하고 명령 실행, 파일 읽기와 쓰기, 기기 상태 확인을 지원합니다. 공식 문서는 명령이 SDK를 설치한 계정의 권한으로 실행된다고 설명합니다. 그 계정이 관리자 명령을 사용할 수 있으면 에이전트도 같은 범위에 접근할 수 있습니다.

시제품 전용 계정을 만들고 필요한 폴더와 명령만 허용하는 방식이 적절합니다. 문서 표시 기기라면 읽을 폴더와 결과를 저장할 폴더를 분리합니다. Home Assistant 연결이라면 조명 조회와 전원 제어 권한을 나눕니다. 삭제, 패키지 설치, 시스템 설정 변경처럼 되돌리기 어려운 명령은 초기 검증 범위에서 제외합니다.

ESP32와 Linux 기기에서 입력 뒤 권한을 확인하고 출력하거나 실행을 중단하는 과정
입력 수신 → 작업 분류 → 허용된 명령·파일 확인 → 실행 또는 중단 → 상태 표시 이미지를 열어 확대할 수 있습니다.

SDK 토큰과 연결 정보도 권한으로 다루기

공식 저장소는 각 기기를 연결할 때 SDK 토큰이 필요하다고 안내합니다. 토큰은 기기가 서비스와 연결되는 자격 정보이므로 소스 코드나 공개 문서에 넣지 않습니다. 시연이 끝난 기기, 분실한 기기, 담당자가 바뀐 기기의 토큰을 어떻게 폐기할지도 운영 항목에 넣습니다.

기기 연결과 실행 권한은 따로 기록합니다. 연결에 성공했다는 사실이 모든 명령을 허용한다는 뜻은 아닙니다. 기기 이름, 담당자, 허용 명령, 접근 폴더, 센서 종류, 마지막 점검일을 표로 관리하면 시제품이 늘어날 때 권한을 다시 확인하기 쉽습니다.

Apache 2.0과 예외 파일을 함께 확인하기

Muse Gadget SDK 저장소의 기본 라이선스는 Apache License 2.0입니다. 저장소는 일부 제3자 파일이 CC0 또는 BSD 조건을 유지하며, Jollybot 캐릭터 이미지는 Apache 2.0 적용 대상이 아니라고 명시합니다. 저장소 전체를 하나의 조건으로 이해하면 배포 단계에서 누락이 생길 수 있습니다.

교육용 시제품은 코드, 글꼴, 음원, 캐릭터 이미지의 출처를 나눠 기록합니다. 외부에 파일을 배포할 때는 포함한 구성 요소와 라이선스 고지를 확인합니다. 공식 사이트에서 아직 제공 전으로 표시한 기기 아이디어는 현재 기능 목록에 넣지 않습니다. 공개 코드의 범위와 실제 이용 가능한 하드웨어를 구분해야 검증 기록을 정확히 유지할 수 있습니다.

시제품 검증에서는 정상 동작만 확인하지 않습니다. 네트워크를 끊고, 센서 값을 비정상 범위로 넣고, 허용하지 않은 파일을 요청해 기기가 어떻게 반응하는지 확인합니다. 실행을 거부한 이유가 화면이나 로그에 남는지도 봅니다. 담당자가 현장에서 전원을 껐을 때 작업이 중단되는지, 다시 켠 뒤 이전 요청이 자동으로 실행되지 않는지도 점검하면 물리 기기와 연결된 에이전트의 실패 범위를 줄일 수 있습니다.

확인한 공식 출처

  1. Muse Gadgets
  2. facebookincubator/muse-gadget-sdk