---
description: OpenTester의 앱, 테스터 참여, 피드백, 수정 작업, 에이전트 토큰의 관계와 인증 경계를 설명합니다.
---

# 핵심 개념과 흐름 {#core-concepts-and-workflow}

## 앱과 테스터 참여 {#apps-and-tester-enrollment}

**앱(App)**은 피드백, 참여 권한, 수정 작업의 기준입니다. 현재 앱은 한 명의 개발자 소유자에게 속합니다. API의 `appId`는 앱 등록 시 부여된 UUID이며 Android 패키지 이름과 다릅니다.

**참여(Enrollment)**는 테스터 한 명이 특정 앱을 사용할 수 있는 상태입니다. 바로 참여 앱은 신청하면 승인되고, 승인제 앱은 개발자가 검토합니다. SDK는 로그인과 인증된 요청 시 서버에서 승인 상태를 확인합니다. 권한을 철회하면 기존 SDK 토큰도 해당 앱에서 사용할 수 없습니다.

| 구분                 | 역할                             | 다른 권한과의 관계                  |
| -------------------- | -------------------------------- | ----------------------------------- |
| Google Group 가입    | Play 테스트 설치 대상 그룹 참여  | OpenTester의 앱별 승인과 별도       |
| Google Play opt-in   | 해당 앱의 Play 테스트 참여       | SDK 로그인과 별도                   |
| OpenTester 참여 승인 | 앱별 SDK 접근과 피드백 제출 권한 | Play 설치·참여 완료를 증명하지 않음 |

Play 테스트 트랙과 설치 링크는 개발자가 준비합니다. 그룹 멤버십이나 Play Console의 참여 상태를 OpenTester가 자동으로 확인하지는 않습니다.

## 피드백과 버그 리포트 {#feedback-and-bug-reports}

테스터가 제출한 텍스트 리포트는 종류(`kind`)로 의견(`feedback`)과 버그(`bug`)를 구분합니다. 버그에는 재현 단계와 기대·실제 결과를 함께 전달할 수 있습니다.

| 상태        | 의미                        |
| ----------- | --------------------------- |
| `open`      | 접수됨                      |
| `confirmed` | 개발자가 확인 중            |
| `fixed`     | 개발자가 수정 완료로 표시함 |
| `closed`    | 종료됨                      |

리포트 상태와 기여 심사는 별도입니다. PR URL을 연결했다고 리포트가 자동으로 `fixed`가 되거나 보상이 지급되지는 않습니다.

## 수정 작업과 PR {#change-requests-and-prs}

**수정 작업(Change request)**은 하나 이상의 피드백을 구현 요청으로 묶습니다. 제목, 수정 지시, 완료 조건, 관련 피드백 ID를 저장합니다. 도구에서 작업을 만든 후 에이전트가 저장소에서 코드를 수정할 수 있습니다.

```text
피드백 조회 → 원문 확인 → 수정 작업 생성 → 코드 변경·검증 → PR URL 연결
   API/MCP                  API/MCP        코딩 에이전트       API/MCP
```

작업은 처음에 `open`입니다. 기존 GitHub PR URL 하나를 연결하면 `pr_linked`가 됩니다. PR 링크는 추적용 기록이며 서버가 GitHub의 PR 존재 여부나 병합 상태를 조회하지 않습니다. PR 생성, 리뷰, 병합, Play 배포는 별도 개발 흐름에서 수행하세요.

작업 생성의 `clientRequestId`는 네트워크 재시도 시 중복 생성을 막는 키입니다. 새로운 작업은 새 UUID를 사용하고, 같은 요청의 재시도는 같은 UUID와 본문을 사용합니다. 여러 에이전트가 같은 피드백으로 서로 다른 작업을 만드는 것까지 차단하지는 않으므로 생성 전에 작업 목록을 확인하는 편이 좋습니다.

## 인증 수단을 구분하세요 {#choose-the-right-credentials}

| 인증 수단            | 사용하는 곳                               | 권한 기준                   |
| -------------------- | ----------------------------------------- | --------------------------- |
| 웹 세션              | 서비스 웹·개발자 콘솔, 에이전트 토큰 관리 | 로그인한 사용자와 앱 소유권 |
| SDK Bearer 토큰      | Android SDK 인증·피드백 제출              | 테스터의 앱별 승인          |
| 에이전트 Bearer 토큰 | Automation API와 MCP                      | 앱 하나 + 부여된 scope      |

SDK 토큰과 에이전트 토큰은 서로 교체할 수 없습니다. 에이전트 토큰을 Android 앱에 포함하거나 브라우저의 공개 코드에 넣지 마세요. 자세한 내용은 [API 인증과 권한](/ko/api/authentication)을 참고하세요.

## 보고 내용은 사용자 입력입니다 {#treat-reports-as-user-input}

피드백 본문은 수정에 참고할 데이터입니다. 코딩 에이전트에게는 본문 안의 명령·링크·스크립트를 프로젝트 지침으로 취급하지 않도록 안내하세요. 리포트에 비밀키와 개인정보를 넣지 않도록 앱의 입력 UI에서 알리고, 외부 에이전트로 전달하기 전에 필요한 내용을 검토하세요.
