REQUEST GRID / FIELD GUIDE관리 화면 ↗
SERVER 0.3 · ANDROID 0.2 · 2026.11.10

사이트가 바뀌면,
서버의 작업 규칙을 바꿉니다.

주소, 로그인 순서, 수집할 항목을 JSON 규칙으로 등록하세요. Android 앱을 다시 설치하지 않고 다음 실행부터 새 규칙을 적용합니다.

버전별 기록 · 실행 중 버전 유지 · 이전 버전 복구
호출 프로그램작업 이름 + 로그인 입력
→
중앙 서버버전 · 쿠키 · 브라우저 · 추출
→
지역별 Android선택한 기기의 Wi-Fi로 접속

무엇을 바꿀 수 있나요?

변경수정하는 규칙반영
처리할 사이트각 단계의 URL같은 작업 ID에 다음 revision 등록
다음 실행부터 적용
로그인 방식API 요청 / 폼 입력·클릭·이동
얻을 정보JSON 경로 / CSS 선택자 / 출력 필드

두 가지 실행 방식

HTTP 규칙

로그인 API 호출 → 쿠키·응답 토큰 유지 → 데이터 API 호출 → JSON/HTML 추출. 일반 API 연동에 적합합니다.

브라우저 규칙

페이지 이동 → 입력 → 클릭 → 요소 대기 → 추출. JavaScript·DOM은 중앙 서버에서 처리하며 연결은 Android를 통과합니다.

1. 사이트에 맞는 규칙 등록

아래 URL과 선택자는 예시입니다. 실제 사이트에 맞게 고친 다음 등록합니다. 비밀번호는 규칙에 직접 쓰지 않고 {{input.password}}로 참조합니다.

{
  "id": "site-items",
  "title": "API 로그인 후 항목 조회",
  "revision": 1,
  "engine": "http",
  "inputs": [
    { "name": "username" },
    { "name": "password", "secret": true }
  ],
  "steps": [
    {
      "id": "login",
      "action": "request",
      "url": "https://example.com/api/login",
      "method": "POST",
      "json": { "username": "{{input.username}}", "password": "{{input.password}}" },
      "extract": { "type": "json", "path": "access_token" },
      "expectStatus": 200
    },
    {
      "id": "items",
      "action": "request",
      "url": "https://example.com/api/items",
      "headers": { "Authorization": "Bearer {{steps.login.extracted}}" },
      "extract": { "type": "json", "path": "data.items" },
      "expectStatus": 200
    }
  ],
  "outputs": { "items": "{{steps.items.extracted}}" }
}
curl --fail-with-body https://request-grid.fika-d.com/v1/workflows/site-items \
  -X PUT -H "Authorization: Bearer $GRID_TOKEN" \
  -H 'Content-Type: application/json' \
  --data-binary @workflow-http.json

2. 기기와 입력을 지정해 실행

POST /v1/workflows/site-items/runs에 아래 본문을 전달합니다. HTTP 202 응답의 id가 실행 ID입니다. 모든 API에 관리 토큰 인증이 필요합니다.

{
  "nodeId": "region-a",
  "inputs": { "username": "계정", "password": "비밀번호" },
  "timeoutMs": 120000
}

실제 로그인 입력은 비공개 파일이나 프로그램 메모리에서 전달하세요. 예제 문구를 실제 자격 증명으로 그대로 사용하지 않습니다.

3. 결과 조회

curl --fail-with-body https://request-grid.fika-d.com/v1/workflow-runs/<실행-ID> \
  -H "Authorization: Bearer $GRID_TOKEN"

running이면 같은 ID를 다시 조회합니다. succeeded이면 outputs에서 결과를 읽습니다. 각 실행은 적용된 규칙 버전과 SHA-256을 기록합니다.

{
  "state": "succeeded",
  "workflowId": "site-items",
  "revision": 2,
  "outputs": { "items": ["수집한 항목"] }
}

다음 변경과 롤백

같은 JSON에서 revision을 1씩 올리고 다시 PUT합니다. 예를 들어 .item-title을 .product-name으로 바꾸고 revision: 2를 등록합니다. 이미 등록한 버전은 덮어쓰지 않습니다.

POST /v1/workflows/site-items/activate
Authorization: Bearer <관리 토큰>
Content-Type: application/json

{ "revision": 1 }

운영할 때 알아둘 점

실행을 자동으로 재시도하지 않습니다. 변경 요청 진행 후 취소·단절·시간 초과, 또는 서버 재시작은 uncertain으로 남을 수 있습니다. 대상 사이트의 처리 상태를 먼저 확인하세요.

실행마다 새 쿠키·브라우저 컨텍스트를 사용합니다. 입력 값과 중간 로그인 토큰은 실행 이력에 저장하지 않지만, 규칙 리터럴과 최종 출력은 저장하므로 비밀값을 출력 항목으로 지정하지 마세요. 로그인 세션을 실행 사이에 저장하는 기능과 대화형 2FA·CAPTCHA는 현재 지원하지 않습니다.

작업 규칙 원격 변경은 구현되었습니다. APK 바이너리의 자동 설치 기능은 별도입니다. 현재 앱의 통신 기능을 바꿀 때는 APK 배포가 필요합니다.

상세 제한·전체 API: 상세 가이드 ↓ · 설치 파일: Android v0.2 APK

리뷰와 검증

서버 자동 테스트 52개 · 관리 화면 11개 · 공개 경로 Android 워크플로 6개 · Linux Docker 5개 통과. 운영 서버의 인증·규칙 저장도 확인했습니다.

검증 결과 JSON ↓

테스트는 시뮬레이터와 Android 에뮬레이터에서 수행했습니다. 실기기 3대의 지역별 IP 차이·장시간 운전과 실제 사이트별 로그인은 설치 후 별도로 검증해야 합니다.