언어 고르기
Droidline과 통신하는 모든 방법(Python, Node.js, CLI, HTTP, 소켓 직접 연결, MCP), 각 방법이 잘 맞는 용도, 그리고 모두가 함께 쓰는 설정을 설명합니다.
번역된 페이지입니다. 영어 문서와 내용이 다르면 영어 문서가 기준입니다. English
모든 인터페이스는 127.0.0.1:8780에서 실행되는 같은 서버 droidline serve와 통신하고, 모두 같은 명령 이름과 같은 파라미터를 씁니다. touch는 어디서나 touch입니다. 작업에 맞는 것을 고르세요. 섞어 써도 됩니다. 예를 들어 정해진 루틴은 Python 스크립트로, 간단한 확인은 CLI로 할 수 있습니다.
| 인터페이스 | 잘 맞는 용도 | 필요한 것 | 가이드 |
|---|---|---|---|
| Python | 규모와 상관없는 스크립트, 데이터 작업, pytest로 하는 테스트 | Python 3.9+, pip install droidline | Python |
| Node.js | JavaScript나 TypeScript 스크립트, 웹 백엔드 | Node.js 18+, npm install droidline | Node.js |
| CLI | 간단한 확인, 셸과 PowerShell 스크립트, cron 작업 | 추가로 필요한 것 없음. droidline 프로그램이면 됨 | CLI |
| HTTP | SDK가 없는 언어, 노코드 도구, curl | 아무 HTTP 클라이언트 | HTTP |
| 소켓 직접 연결 | 어떤 언어로든 오래 실행되는 프로그램, 이벤트 | TCP 소켓과 JSON 파서 | 다른 언어 |
| MCP | Claude나 Cursor 같은 AI 에이전트가 폰을 쓰게 하기 | MCP 클라이언트 | AI 에이전트 |
어디서나 같은 명령
텍스트가 "OK"인 요소를 탭하는 명령 하나를 인터페이스별로 쓰면 이렇습니다.
d.touch("text", "OK")await d.touch("text", "OK");droidline touch text OKcurl -s -X POST localhost:8780/devices/_/touch \
-H 'content-type: application/json' -d '{"by":"text","value":"OK"}'{"id":1,"cmd":"touch","by":"text","value":"OK"}파라미터는 어디서나 같은 규칙을 따릅니다.
- 필수 파라미터가 먼저 오고, 명령어 레퍼런스에 나온 순서를 따릅니다. 위치 인자로 넘깁니다.
- 선택 파라미터는 빼도 됩니다. 서버가 기본값을 채웁니다. 이름으로 넘깁니다. Python에서는
timeout=30, Node.js에서는{ timeout: 30 }, CLI에서는--timeout 30, JSON에서는"timeout": 30입니다. - 어느 폰인지: 온라인인 폰이 한 대면 지정할 필요가 없습니다. 여러 대면 하나를 고릅니다.
connect("shelf-01"),--device shelf-01,/devices/shelf-01/...,"device": "shelf-01"처럼 씁니다.
모두 commands.json 파일 하나에서 생성되므로, 새 명령이 생기면 모든 언어에 동시에 들어갑니다.
모든 인터페이스가 읽는 설정
다음 환경 변수는 SDK, CLI, MCP 어댑터의 기본값을 똑같이 바꿉니다.
| 변수 | 기본값 | 의미 |
|---|---|---|
DROIDLINE_HOST | 127.0.0.1 | 서버 주소 |
DROIDLINE_PORT | 8780 | 내 코드가 접속하는 포트 |
DROIDLINE_TOKEN | 없음 | 클라이언트 토큰. 서버가 다른 컴퓨터에서 실행될 때 필요 |
DROIDLINE_DEVICE | 없음 | 폰을 지정하지 않았을 때 쓸 폰 |
config.toml에서 client.listen을 바꾸지 않는 한 서버는 같은 컴퓨터에서 온 연결만 받습니다. 다른 컴퓨터에서 폰을 제어하려면 먼저 보안을 읽으세요. 낯선 사람을 막아 주는 것은 클라이언트 토큰입니다.