본문으로 건너뛰기

AI와 함께 IOSignal 개발하기

이 페이지는 AI 모델과 개발자가 작업에 필요한 문서와 실행 예제를 선택하는 출발점입니다. 기존 API 문서를 대체하지 않습니다. 모델에 이 페이지와 해당 플랫폼·응용 문서를 함께 제공하세요.

작성 기준: 2026-10-18, IOSignal JavaScript 7.2.0. Arduino·CLI·Boho는 별도 패키지입니다. 설치된 버전은 각 프로젝트의 잠금 파일, npm ls iosignal, Arduino library.properties에서 확인하세요. 이 문서와 실행 예제는 JS 7.2.0을 기준으로 합니다.

작업에 따라 읽을 자료 선택하기​

만들거나 확인할 것읽는 순서첫 성공의 기준
브라우저·Node.js 채팅빠른 시작 → JS API → 실행 예제두 클라이언트가 같은 서버·채널에서 메시지를 수신
컴포넌트에 IOSignal 연결JS API → 구독과 수명주기구독 순서가 맞고 컴포넌트 종료 시 리스너 정리
Arduino 장치 통신Arduino 소개 → 설치 → 해당 라이브러리의 보드 예제컴파일 이후 실물 장치의 송수신 확인
웹에서 LED·장치 제어통신 실습실 시작 → CID LED 또는 그룹 LED명령 송신뿐 아니라 실제 적용 결과·상태 수신
터미널에서 서버·연결 진단CLI 소개 → 서버 / 클라이언트실행 중인 서버의 동일한 메시지 경로 재현
WebRTC 화상통화JS API → WebRTC 구현 가이드SDP·ICE 교환 후 상대 미디어가 실제 재생

필요한 경로부터 읽으세요. WebRTC 앱 구현에 Arduino API 전체를 읽거나, Arduino 코드에 브라우저 이벤트 이름을 그대로 적용할 필요는 없습니다.

저장소별 역할​

저장소해당 저장소에서 확인할 사항
iosignalNode.js 서버·클라이언트, 브라우저 JS 클라이언트의 API·타입·테스트
iosignal-arduinoC++ API, 연결 유지 호출, 콜백·버퍼·보드 제약
iosignal-cli실제 명령어·옵션·대화형 사용법. 설치된 명령의 --help도 확인
remocon-arduino보드별 핀·배선, 원격 제어 명령과 상태 메시지 약속
test_iosignal_net통신 실습실 UI·프리셋·실행·배포 설정
iosignal-examples독립 실행 가능한 앱 예제와 의존성 잠금 파일
iosignal_net이 문서 사이트의 학습 경로와 안내

GitHub의 main은 바뀝니다. 재현할 작업에서는 커밋과 설치 버전을 기록하세요. 로컬 미커밋 파일이 존재한다고 해서 공개 저장소에서도 다운로드할 수 있다고 설명하지 마세요. 같은 앱의 복사본이 여러 저장소에 있으면 작업 전에 기준 소스와 동기화 상태를 확인합니다.

추측하면 안 되는 동작​

  1. 연결 준비: 소켓 open과 IOSignal ready는 다릅니다. CID 사용·수동 구독·송신은 ready 이후에 수행합니다.
  2. 채널 범위: room 또는 room#topic은 명시한 채널입니다. #topic은 서버가 외부 IP 기반으로 구분하는 HOME CHANNEL입니다. HOME CHANNEL은 사용자 인증이나 신뢰 경계가 아닙니다. 태그, 홈채널 참조.
  3. 직접 수신: io.signal(peerCid + '@rtc', payload)는 수신 측에서 io.on('@rtc', (tag, payload) => ...)로 받습니다. 수신 tag는 @rtc이며 message 이벤트로 전달되지 않습니다. 이 정확한 토픽 이벤트는 JS 7.2.0 기준입니다.
  4. 중복 수신: JS 7.2.0에서 @와 @rtc에 같은 처리를 등록하면 하나의 직접 메시지를 두 번 처리할 수 있습니다. 직접 수신에 subscribe('@rtc')를 호출하지 마세요.
  5. 구독 순서: on()은 구독을 하지 않습니다. 수동 구독은 ready 때마다 등록합니다. listen() 자동 구독과 즉시 송신의 순서는 구독 안내를 따르세요.
  6. 리디렉션: 공개 서버는 초기 연결을 다른 서버로 넘길 수 있습니다. ready 이전의 정상 리디렉션과 준비 완료 이후의 단절을 구분하고 연결 대기 시간에 상한을 둡니다.
  7. 역할 구분: IOSignal은 메시지 전달을 담당합니다. 방의 인원·참여 권한, 장치 명령의 의미, WebRTC offer 생성자 등은 응용 앱의 규칙입니다.
  8. 성공 판정: signal() 호출은 상대의 업무 처리가 끝났다는 확인이 아닙니다. 필요하면 응용 메시지로 응답을 설계하고 실제 결과를 검사하세요.

자료형·크기·quota는 payload와 클라이언트 API를 확인합니다. API 설명이 설치 버전과 다르면 해당 버전의 타입·구현·테스트로 확인하고 차이를 기록하세요. 다른 WebSocket 라이브러리의 API를 IOSignal API라고 제시하지 마세요.

모델에게 요청할 때 함께 제공하기​

다음 템플릿의 대괄호를 실제 값으로 채우세요.

목표: [예: IOSignal로 시그널링하는 1:1 WebRTC 앱]
실행 환경: [브라우저 / Node.js / Arduino 보드와 네트워크]
기준 저장소·커밋: [...]
설치 버전: [iosignal 및 관련 패키지]
참조: AI 안내 + 해당 플랫폼 API + 응용 가이드

라이브러리의 보장과 앱이 선택한 규칙을 구분해 구현해줘.
문서에 없는 API는 추측하지 말고 해당 버전의 타입·소스를 확인해줘.
실행 명령, 예상 결과, 실제 수행한 테스트와 미검증 범위를 알려줘.

모델이 링크를 열 수 없다면 이 페이지와 선택한 문서의 Markdown 원문을 파일로 전달하세요. 원문은 문서 사이트 저장소의 docs/12-ai/ 및 연결된 문서 경로에 있습니다. 첫 단계에서는 별도의 통합 파일이나 자동 다운로드 기능을 제공하지 않습니다.

검증과 버전 기록​

완료 보고에는 다음을 구분해서 남깁니다.

  • 소스·타입 대조, 빌드, 자동 테스트, 브라우저 테스트, 실물 장치 테스트
  • 로컬 서버와 공개 서버, 같은 컴퓨터와 서로 다른 네트워크
  • 가상 미디어 장치와 실제 카메라·마이크
  • 라이브러리·예제 버전, 검증 날짜, 실패하거나 수행하지 않은 범위

현재 기준과 검증 범위는 버전과 검증 기준을 확인하세요. WebRTC 예제의 별도 검증 기록은 구현 가이드에 있습니다.