# QA Report - Redmine #4373 (dev)

## 남은 확인불가 5건 추가 확인 결과

**기존 BLOCKED는 0건으로 해소됐지만, CO 시간 재진입 표시에서 새 결함 1개를 2회 재현해 최종 판정은 FAIL이다.**

- 요청자·수행자: 김경주. Windows는 사용자 지시, Mac은 사용자 직접 확인 완료 답변에 따라 **개인확인완료**로 기록했다. 에이전트의 실제 OS 입력기 자동 실행 통과가 아니다. Windows·Mac 실제 키 입력 자동화 시도는 성공 증거로 합산하지 않았다.
- 최종 판정 대상 **109건**: 자동 통과 **99**, 실패 **2**(동일 결함 반복), 확인불가 **0**, 개인확인완료 **2**, 정상 권한 제한 **6**. 이전 107건 중 BLOCKED5건을 대체하고 OS 항목 분리와 결함 반복을 구분했다. 범위 점검·진단 실행은 최종 판정에 중복 합산하지 않았다.
- 원본 체크리스트 **16항목**: 자동 확인14 / 개인확인1(OS2종을 한 항목으로 집계) / 실패1(선택·시간 저장 재진입) / 확인불가0.
- 예금주 조회: 사용자가 제공한 기업은행 계좌로 실제 조회 응답200·예금주 일치, 조회 후 계좌 잠금, 재입력 시 계좌 잠금 해제·예금주 초기화·예금주 직접 편집 금지를 확인했다. 생성·수정 저장과 송금은 실행하지 않았다. 계좌 원문은 공개 파일·스크린샷·trace에 포함하지 않았다.
- BO: 기본 QA 계정은 가맹점1개뿐이었다. 기존 영업 QA 보조계정의 해당 테넌트에서 가맹점3개를 확인했고, 첫 가맹점의 미저장 상호명·비고가 두 번째 가맹점으로 섞이지 않음을 검증했다. 기본 계정의 권한을 늘리거나 신규 가맹점을 만들지 않았다. 보조계정의 첫 범위 탐색은 잘못된 테넌트로 로그인 화면에 돌아가 중단됐으며, 해당 계정의 기존 테넌트로 재로그인한 후 실제 검증했다.
- CO: 기존 법인 QA 보조계정에서 조회되는 명시적 테스트 가맹점으로 대상을 바꿨다. 마지막 글자 입력 직후 실제 저장·새로고침·재진입은 통과했다. 시간 저장은 아래 실패와 같이 **서버 저장 성공 / 시작시간 UI 재진입 실패**로 확인했다. 변경한 3회 모두 원래 값 저장·재조회로 복구했다.

### 신규 결함: CO 거래가능 시작 시간 재진입 표시

1. CO QA 계정으로 테스트 가맹점 수정 화면에 진입한다.
2. 가맹점 유형을 변경하고 거래가능 시간을 `09:15 / 18:45`로 입력한 뒤 변경사유를 작성해 저장한다.
3. PATCH는200이며 `09:15 / 18:45`가 전송된다. 새로고침 후 실제 GET은 `09:15:00 / 18:45:00`을 반환한다.
4. 수정 화면 시작시간은 **`hh:mm`**(빈 값/유효하지 않음)으로 표시된다. 반복 실행의 종료시간은 `18:45`였다.
5. 원래 유형·시간을 저장하고 재조회해 복구했다. 원인은 확정하지 않았으며 제품 코드를 임의 수정하지 않았다.

검사 명령:

```bash
QA4373_SAVE_ONLY_ROLE=CO QA4373_SAVE_CO_ENV_ROLE=QA4373_CO_ALT QA4373_SAVE_TARGET='ㅂ스킷 테스트' npx playwright test qa/issues/4373/dev/vendor-save.spec.ts
QA4373_SAVE_ONLY_ROLE=CO QA4373_SAVE_CO_ENV_ROLE=QA4373_CO_ALT QA4373_SAVE_TARGET='ㅂ스킷 테스트' npx playwright test qa/issues/4373/dev/vendor-save.spec.ts --grep '08 선택'
```

### 증거

- [신규 trace HTTP·CORS 확인](artifacts/files/unblock-r2-verification.json) · [실행·종료 상태](artifacts/files/unblock-execution-ledger.json)
- [추가 확인·조회·저장·원복 증거](artifacts/files/unblock-verification.json)
- [CO 시간 실패의 전송값·서버 응답·화면 비교](artifacts/files/unblock-co-time-finding.json)
- [사용자 개인확인 및 비공개 데이터 처리](artifacts/files/unblock-user-confirmations.json)
- [이전 BLOCKED 보고서](../20261027-before-blocker-validation/report.md) · [최초 FAIL 이력](../20261026/report.md)


- Generated: 2026-10-27T13:31:47+09:00
- Redmine: https://itsm.bix.bz/issues/4373
- QA Redmine: https://itsm.bix.bz/issues/4408
- Subject: 가맹점 등록·수정 입력 지연 및 폼 상태 QA
- Workflow Status: 추가 QA 실행 완료
- Status: FAIL
- Checklist Result: FAIL
- Checklist Total: 16
- Checklist Passed: 15
- Checklist Failed: 1
- Checklist Blocked: 0
- Checklist Skipped: 0
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN -> TA -> CO -> BO
- Route Candidates: not recorded

## Scope

비스킷링크 전산 개발계 가맹점 등록·수정 실제 화면 검증. 로컬 모의 응답 180건과 구분.

체크리스트 성공15건에는 요청자 개인확인1항목이 포함된다. 자동 통과14항목과 구분한다.

## Checklist

1. 상호명·비고 빠른 입력 시 지연·누락·중복 없이 유지
2. 실제 OS 한글 입력기로 한글·영문·숫자 혼합 입력
3. 입력 직후 이체수수료·기본 수수료 변경 시 앞선 입력 유지
4. 중간 삽입·삭제·붙여넣기 시 커서와 내용 유지
5. 마지막 글자 입력 직후 저장 후 재진입하여 마지막 글자 확인
6. 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력
7. 금액·수수료·결제한도·계좌번호 값과 표시 형식 유지
8. 선택 항목·시간 변경 저장 후 재진입하여 값 유지
9. 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시
10. 프리셋 적용 후 직접 수정한 값 유지
11. 다른 가맹점에 이전 입력 내용이 섞이지 않음
12. 예금주 조회·계좌 재입력 전후 잠금 상태
13. 잘못된 이메일·등록번호 검증 메시지 표시·해제
14. 휴일정산 변경 안내 유지
15. 권한·마스킹·읽기 전용 제한 유지
16. 긴 비고 입력 성능과 화면 항목·버튼·배치 유지

## Setup Steps

1. [required] 사용자가 지정한 테스트 가맹점 저장 검증 및 원복 (admin/ADMIN / targets: ADMIN, TA, CO / kind: data-update / mutation: temporary / guard: QA_4373_ALLOW_VENDOR_MUTATION / restore: required) - 기존 사용자 지정 가맹점과 기존 법인 QA 보조 계정에서 조회되는 명시적 테스트 가맹점만 변경한다. QA4373_SAVE_ONLY_ROLE/QA4373_SAVE_CO_ENV_ROLE/QA4373_SAVE_TARGET로 이슈 전용 실행을 선택한다. 변경 전 값을 ignored 경로에 기록하고 finally에서 원래 값 저장·재조회로 복구한다. / spec: vendor-save.spec.ts

## Source Text

상호명·비고 빠른 입력 시 지연·누락·중복 없이 유지
실제 OS 한글 입력기로 한글·영문·숫자 혼합 입력
입력 직후 이체수수료·기본 수수료 변경 시 앞선 입력 유지
중간 삽입·삭제·붙여넣기 시 커서와 내용 유지
마지막 글자 입력 직후 저장 후 재진입하여 마지막 글자 확인
대표자·업종·업태·상세주소·연락처·상품명 빠른 입력
금액·수수료·결제한도·계좌번호 값과 표시 형식 유지
선택 항목·시간 변경 저장 후 재진입하여 값 유지
기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시
프리셋 적용 후 직접 수정한 값 유지
다른 가맹점에 이전 입력 내용이 섞이지 않음
예금주 조회·계좌 재입력 전후 잠금 상태
잘못된 이메일·등록번호 검증 메시지 표시·해제
휴일정산 변경 안내 유지
권한·마스킹·읽기 전용 제한 유지
긴 비고 입력 성능과 화면 항목·버튼·배치 유지

## Execution Summary

- Passed: 99
- Personally Confirmed Executions: 2
- Failed: 2
- Skipped: 6
- Blocked: 0
- Flaky: 0
- Duration: 926967ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| 재QA 수정판 자산 확인 | CO | [CO] role | CO 계정으로 [CO] role 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| 계측 OFF 1/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-long-note.png) |
| 계측 OFF 2/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/02-long-note.png) |
| 계측 OFF 3/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-long-note.png) |
| 계측 OFF 4/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/04-long-note.png) |
| 계측 OFF 5/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/05-long-note.png) |
| 계측 ON 1/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/06-long-note.png) |
| 계측 ON 2/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/07-long-note.png) |
| 계측 ON 3/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/08-long-note.png) |
| 계측 ON 4/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/09-long-note.png) |
| 계측 ON 5/5 | CO | 재QA 긴 비고 | CO 계정으로 재QA 긴 비고 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/10-long-note.png) |
| 14 휴일정산 변경 안내 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/11-14-holiday-warning.png) |
| 14 휴일정산 변경 안내 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/12-14-holiday-warning.png) |
| 14 휴일정산 변경 안내 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/13-14-holiday-warning.png) |
| 14 휴일정산 변경 안내 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 사용자 요청에 따라 검증에서 제외했습니다: skip: NOT_APPLICABLE: BO에서 해당 시간·휴일정산 입력을 제공하지 않는 정상 권한 제한. 실행/성공으로 합산하지 않음. / original-skip-classification: BLOCKED: 휴일정산 수정 권한 없음 |  |
| 01 빠른 상호명·비고 입력 유지 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/14-01-fast-input.png) |
| 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/15-02-browser-composition.png) |
| 03 입력 직후 이체수수료·기본 수수료 변경 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/16-03-cross-section.png) |
| 04 문장 중간 삽입·삭제·붙여넣기 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 정책을 생성하고 삭제한 뒤 목록 반영 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/17-04-edit-paste.png) |
| 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/18-06-other-fields.png) |
| 예금주 조회·계좌 재입력 전후 잠금 상태 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 화면에서 은행/계좌번호 입력, 예금주 조회, 실패 안내 또는 다음 단계 버튼 상태를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/19-07-format.png) |
| 13 이메일·사업자등록번호 검증 메시지 표시·해제 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/20-13-validation.png) |
| 10 프리셋 적용 후 직접 수정값 유지 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/21-10-preset.png) |
| 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/22-08-unsaved-time-fields.png) |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/23-09-existing-reopen.png) |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/24-11-isolation.png) |
| 15 수정 화면 개인정보 마스킹 잠금 확인 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/25-15-mask-lock.png) |
| 16 긴 비고 입력과 등록 화면 구성 확인 | ADMIN | 가맹점 등록·수정 | ADMIN 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/26-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/27-16-long-note.png) |
| 01 빠른 상호명·비고 입력 유지 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/28-01-fast-input.png) |
| 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/29-02-browser-composition.png) |
| 03 입력 직후 이체수수료·기본 수수료 변경 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/30-03-cross-section.png) |
| 04 문장 중간 삽입·삭제·붙여넣기 | TA | 가맹점 등록·수정 | TA 계정으로 정책을 생성하고 삭제한 뒤 목록 반영 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/31-04-edit-paste.png) |
| 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/32-06-other-fields.png) |
| 예금주 조회·계좌 재입력 전후 잠금 상태 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 화면에서 은행/계좌번호 입력, 예금주 조회, 실패 안내 또는 다음 단계 버튼 상태를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/33-07-format.png) |
| 13 이메일·사업자등록번호 검증 메시지 표시·해제 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/34-13-validation.png) |
| 10 프리셋 적용 후 직접 수정값 유지 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/35-10-preset.png) |
| 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/36-08-unsaved-time-fields.png) |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/37-09-existing-reopen.png) |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/38-11-isolation.png) |
| 15 수정 화면 개인정보 마스킹 잠금 확인 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/39-15-mask-lock.png) |
| 16 긴 비고 입력과 등록 화면 구성 확인 | TA | 가맹점 등록·수정 | TA 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/40-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/41-16-long-note.png) |
| 01 빠른 상호명·비고 입력 유지 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/42-01-fast-input.png) |
| 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/43-02-browser-composition.png) |
| 03 입력 직후 이체수수료·기본 수수료 변경 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/44-03-cross-section.png) |
| 04 문장 중간 삽입·삭제·붙여넣기 | CO | 가맹점 등록·수정 | CO 계정으로 정책을 생성하고 삭제한 뒤 목록 반영 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/45-04-edit-paste.png) |
| 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/46-06-other-fields.png) |
| 예금주 조회·계좌 재입력 전후 잠금 상태 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 화면에서 은행/계좌번호 입력, 예금주 조회, 실패 안내 또는 다음 단계 버튼 상태를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/47-07-format.png) |
| 13 이메일·사업자등록번호 검증 메시지 표시·해제 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/48-13-validation.png) |
| 10 프리셋 적용 후 직접 수정값 유지 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/49-10-preset.png) |
| 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/50-08-unsaved-time-fields.png) |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/51-09-existing-reopen.png) |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/52-11-isolation.png) |
| 15 수정 화면 개인정보 마스킹 잠금 확인 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/53-15-mask-lock.png) |
| 16 긴 비고 입력과 등록 화면 구성 확인 | CO | 가맹점 등록·수정 | CO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/54-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/55-16-long-note.png) |
| 01 빠른 상호명·비고 입력 유지 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/56-01-fast-input.png) |
| 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/57-02-browser-composition.png) |
| 03 입력 직후 이체수수료·기본 수수료 변경 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/58-03-cross-section.png) |
| 04 문장 중간 삽입·삭제·붙여넣기 | BO | 가맹점 등록·수정 | BO 계정으로 정책을 생성하고 삭제한 뒤 목록 반영 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/59-04-edit-paste.png) |
| 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 사용자 요청에 따라 검증에서 제외했습니다: skip: NOT_APPLICABLE: BO 마스킹 개인정보 입력은 정상 잠금 범위이므로 이 검사 그룹의 입력 검증에서 제외 |  |
| 예금주 조회·계좌 재입력 전후 잠금 상태 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 화면에서 은행/계좌번호 입력, 예금주 조회, 실패 안내 또는 다음 단계 버튼 상태를 확인 | 사용자 요청에 따라 검증에서 제외했습니다: skip: NOT_APPLICABLE: BO 마스킹 계좌 입력은 정상 잠금 범위이므로 이 검사 그룹의 입력 검증에서 제외 |  |
| 13 이메일·사업자등록번호 검증 메시지 표시·해제 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 사용자 요청에 따라 검증에서 제외했습니다: skip: NOT_APPLICABLE: BO 마스킹 이메일·등록번호 입력은 정상 잠금 범위이므로 검증 메시지 검사에서 제외 |  |
| 10 프리셋 적용 후 직접 수정값 유지 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 사용자 요청에 따라 검증에서 제외했습니다: skip: NOT_APPLICABLE: BO는 프리셋 선택 메뉴 제공 대상 역할이 아니므로 적용 검사에서 제외 |  |
| 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 사용자 요청에 따라 검증에서 제외했습니다: skip: NOT_APPLICABLE: BO에서 해당 시간·휴일정산 입력을 제공하지 않는 정상 권한 제한. 실행/성공으로 합산하지 않음. / original-skip-classification: BLOCKED: 해당 계정의 시간 입력 권한/조건 없음 |  |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/60-09-existing-reopen.png) |
| 15 수정 화면 개인정보 마스킹 잠금 확인 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/61-15-mask-lock.png) |
| 16 긴 비고 입력과 등록 화면 구성 확인 | BO | 가맹점 등록·수정 | BO 계정으로 가맹점 등록·수정 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/62-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/63-16-long-note.png) |
| 05 마지막 글자 입력 직후 저장·재진입 | ADMIN | 사용자 지정 가맹점 저장·원복 | ADMIN 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/64-05-saved-last-character.png) |
| 08 선택·거래가능 시간 저장·재진입 | ADMIN | 사용자 지정 가맹점 저장·원복 | ADMIN 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/65-08-saved-selection-times.png) |
| 05 마지막 글자 입력 직후 저장·재진입 | TA | 사용자 지정 가맹점 저장·원복 | TA 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/66-05-saved-last-character.png) |
| 08 선택·거래가능 시간 저장·재진입 | TA | 사용자 지정 가맹점 저장·원복 | TA 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/67-08-saved-selection-times.png) |
| slow | ADMIN | 재QA 초기화 create | ADMIN 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/68-loading.png) |
| failure | ADMIN | 재QA 초기화 create | ADMIN 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/69-error-retry.png) |
| cancel | ADMIN | 재QA 초기화 create | ADMIN 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/70-loading.png) |
| slow | ADMIN | 재QA 초기화 edit | ADMIN 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/71-loading.png) |
| failure | ADMIN | 재QA 초기화 edit | ADMIN 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/72-error-retry.png) |
| cancel | ADMIN | 재QA 초기화 edit | ADMIN 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/73-loading.png) |
| slow | TA | 재QA 초기화 create | TA 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/74-loading.png) |
| failure | TA | 재QA 초기화 create | TA 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/75-error-retry.png) |
| cancel | TA | 재QA 초기화 create | TA 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/76-loading.png) |
| slow | TA | 재QA 초기화 edit | TA 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/77-loading.png) |
| failure | TA | 재QA 초기화 edit | TA 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/78-error-retry.png) |
| cancel | TA | 재QA 초기화 edit | TA 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/79-loading.png) |
| slow | CO | 재QA 초기화 create | CO 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/80-loading.png) |
| failure | CO | 재QA 초기화 create | CO 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/81-error-retry.png) |
| cancel | CO | 재QA 초기화 create | CO 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/82-loading.png) |
| slow | CO | 재QA 초기화 edit | CO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/83-loading.png) |
| failure | CO | 재QA 초기화 edit | CO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/84-error-retry.png) |
| cancel | CO | 재QA 초기화 edit | CO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/85-loading.png) |
| slow | BO | 재QA 초기화 edit | BO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/86-loading.png) |
| failure | BO | 재QA 초기화 edit | BO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/87-error-retry.png) |
| cancel | BO | 재QA 초기화 edit | BO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/88-loading.png) |
| refetch | ADMIN | 재QA 초기화 create | ADMIN 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| refetch | ADMIN | 재QA 초기화 edit | ADMIN 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| refetch | TA | 재QA 초기화 create | TA 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| refetch | TA | 재QA 초기화 edit | TA 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| refetch | CO | 재QA 초기화 create | CO 계정으로 재QA 초기화 create 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| refetch | CO | 재QA 초기화 edit | CO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| refetch | BO | 재QA 초기화 edit | BO 계정으로 재QA 초기화 edit 항목을 확인 | 기대한 동작과 일치했습니다. |  |
| 재QA 수정 화면 편집 가능한 입력 회귀 | ADMIN | [ADMIN] role | ADMIN 계정으로 [ADMIN] role 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/89-edit-input.png) |
| 재QA 수정 화면 편집 가능한 입력 회귀 | TA | [TA] role | TA 계정으로 [TA] role 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/90-edit-input.png) |
| 재QA 수정 화면 편집 가능한 입력 회귀 | CO | [CO] role | CO 계정으로 [CO] role 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/91-edit-input.png) |
| 재QA 수정 화면 편집 가능한 입력 회귀 | BO | [BO] role | BO 계정으로 [BO] role 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/92-edit-input.png) |
| 02 macOS Chrome 개인확인 | 전체 | 실제 OS 한글 입력기 | 전체 계정으로 실제 OS 한글 입력기 항목을 확인 | 요청자가 개인확인 완료로 명시했습니다. 에이전트의 자동 테스트 통과와 구분합니다. |  |
| 02 Windows Chrome 개인확인 | 전체 | 실제 OS 한글 입력기 | 전체 계정으로 실제 OS 한글 입력기 항목을 확인 | 요청자가 개인확인 완료로 명시했습니다. 에이전트의 자동 테스트 통과와 구분합니다. |  |
| 예금주 조회·계좌 재입력 전후 잠금 상태 | ADMIN | [ADMIN] role | ADMIN 계정으로 [ADMIN] role 화면에서 은행/계좌번호 입력, 예금주 조회, 실패 안내 또는 다음 단계 버튼 상태를 확인 | 기대한 동작과 일치했습니다. |  |
| 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시 | BO | [BO] role | BO 계정으로 [BO] role 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/93-bo-isolation.png) |
| 05 마지막 글자 입력 직후 저장·재진입 | CO | 사용자 지정 가맹점 저장·원복 | CO 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/94-05-saved-last-character.png) |
| 08 선택·거래가능 시간 저장·재진입 | CO | 사용자 지정 가맹점 저장·원복 | CO 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 화면 입력값이 기대한 값과 달랐습니다: Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true }) | [스크린샷 1](artifacts/screenshots/95-screenshot.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/01-unblock-20261027-trace.zip)<br>[실행 기록 1](artifacts/logs/01-error-context.md) |
| 08 선택·거래가능 시간 저장·재진입 | CO | 사용자 지정 가맹점 저장·원복 | CO 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인 | 화면 입력값이 기대한 값과 달랐습니다: Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true }) | [스크린샷 1](artifacts/screenshots/96-08-reentry.png)<br>[스크린샷 2](artifacts/screenshots/97-screenshot.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/02-unblock-20261027-trace.zip)<br>[실행 기록 1](artifacts/logs/02-error-context.md) |

## 실패 또는 확인 불가 상세

### 1. CO / 사용자 지정 가맹점 저장·원복 / 실패

- 체크 항목: 08 선택·거래가능 시간 저장·재진입
- 수행한 동작: CO 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인
- 기대 결과: CO 계정에서 사용자 지정 가맹점 저장·원복 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 화면 입력값이 기대한 값과 달랐습니다: Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true })
- 분류: 기대 결과와 다름
- 오류 내용: Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true })
- 스크린샷: [스크린샷 1](artifacts/screenshots/95-screenshot.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/01-unblock-20261027-trace.zip)
- 실행 기록: [실행 기록 1](artifacts/logs/01-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4373" --env "dev" --role "CO" --case "08 선택·거래가능 시간 저장·재진입"`

### 2. CO / 사용자 지정 가맹점 저장·원복 / 실패

- 체크 항목: 08 선택·거래가능 시간 저장·재진입
- 수행한 동작: CO 계정으로 사용자 지정 가맹점 저장·원복 항목을 확인
- 기대 결과: CO 계정에서 사용자 지정 가맹점 저장·원복 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 화면 입력값이 기대한 값과 달랐습니다: Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true })
- 분류: 기대 결과와 다름
- 오류 내용: Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true })
- 스크린샷: [스크린샷 1](artifacts/screenshots/96-08-reentry.png)<br>[스크린샷 2](artifacts/screenshots/97-screenshot.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/02-unblock-20261027-trace.zip)
- 실행 기록: [실행 기록 1](artifacts/logs/02-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4373" --env "dev" --role "CO" --case "08 선택·거래가능 시간 저장·재진입"`


## 수동 재현 필요

### 1. CO / 사용자 지정 가맹점 저장·원복 / 기대 결과와 다름

- 체크 항목: 08 선택·거래가능 시간 저장·재진입
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4373" --env "dev" --role "CO" --case "08 선택·거래가능 시간 저장·재진입" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4373" --env "dev" --role "CO" --case "08 선택·거래가능 시간 저장·재진입"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.

### 2. CO / 사용자 지정 가맹점 저장·원복 / 기대 결과와 다름

- 체크 항목: 08 선택·거래가능 시간 저장·재진입
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4373" --env "dev" --role "CO" --case "08 선택·거래가능 시간 저장·재진입" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4373" --env "dev" --role "CO" --case "08 선택·거래가능 시간 저장·재진입"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.


## 스크린샷

- CO / 재QA 긴 비고 / 계측 OFF 1/5: [스크린샷 1](artifacts/screenshots/01-long-note.png)
- CO / 재QA 긴 비고 / 계측 OFF 2/5: [스크린샷 1](artifacts/screenshots/02-long-note.png)
- CO / 재QA 긴 비고 / 계측 OFF 3/5: [스크린샷 1](artifacts/screenshots/03-long-note.png)
- CO / 재QA 긴 비고 / 계측 OFF 4/5: [스크린샷 1](artifacts/screenshots/04-long-note.png)
- CO / 재QA 긴 비고 / 계측 OFF 5/5: [스크린샷 1](artifacts/screenshots/05-long-note.png)
- CO / 재QA 긴 비고 / 계측 ON 1/5: [스크린샷 1](artifacts/screenshots/06-long-note.png)
- CO / 재QA 긴 비고 / 계측 ON 2/5: [스크린샷 1](artifacts/screenshots/07-long-note.png)
- CO / 재QA 긴 비고 / 계측 ON 3/5: [스크린샷 1](artifacts/screenshots/08-long-note.png)
- CO / 재QA 긴 비고 / 계측 ON 4/5: [스크린샷 1](artifacts/screenshots/09-long-note.png)
- CO / 재QA 긴 비고 / 계측 ON 5/5: [스크린샷 1](artifacts/screenshots/10-long-note.png)
- ADMIN / 가맹점 등록·수정 / 14 휴일정산 변경 안내: [스크린샷 1](artifacts/screenshots/11-14-holiday-warning.png)
- TA / 가맹점 등록·수정 / 14 휴일정산 변경 안내: [스크린샷 1](artifacts/screenshots/12-14-holiday-warning.png)
- CO / 가맹점 등록·수정 / 14 휴일정산 변경 안내: [스크린샷 1](artifacts/screenshots/13-14-holiday-warning.png)
- ADMIN / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지: [스크린샷 1](artifacts/screenshots/14-01-fast-input.png)
- ADMIN / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합: [스크린샷 1](artifacts/screenshots/15-02-browser-composition.png)
- ADMIN / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경: [스크린샷 1](artifacts/screenshots/16-03-cross-section.png)
- ADMIN / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기: [스크린샷 1](artifacts/screenshots/17-04-edit-paste.png)
- ADMIN / 가맹점 등록·수정 / 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력: [스크린샷 1](artifacts/screenshots/18-06-other-fields.png)
- ADMIN / 가맹점 등록·수정 / 예금주 조회·계좌 재입력 전후 잠금 상태: [스크린샷 1](artifacts/screenshots/19-07-format.png)
- ADMIN / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제: [스크린샷 1](artifacts/screenshots/20-13-validation.png)
- ADMIN / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지: [스크린샷 1](artifacts/screenshots/21-10-preset.png)
- ADMIN / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지: [스크린샷 1](artifacts/screenshots/22-08-unsaved-time-fields.png)
- ADMIN / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/23-09-existing-reopen.png)
- ADMIN / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/24-11-isolation.png)
- ADMIN / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인: [스크린샷 1](artifacts/screenshots/25-15-mask-lock.png)
- ADMIN / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 1](artifacts/screenshots/26-16-long-note.png)
- ADMIN / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 2](artifacts/screenshots/27-16-long-note.png)
- TA / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지: [스크린샷 1](artifacts/screenshots/28-01-fast-input.png)
- TA / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합: [스크린샷 1](artifacts/screenshots/29-02-browser-composition.png)
- TA / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경: [스크린샷 1](artifacts/screenshots/30-03-cross-section.png)
- TA / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기: [스크린샷 1](artifacts/screenshots/31-04-edit-paste.png)
- TA / 가맹점 등록·수정 / 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력: [스크린샷 1](artifacts/screenshots/32-06-other-fields.png)
- TA / 가맹점 등록·수정 / 예금주 조회·계좌 재입력 전후 잠금 상태: [스크린샷 1](artifacts/screenshots/33-07-format.png)
- TA / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제: [스크린샷 1](artifacts/screenshots/34-13-validation.png)
- TA / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지: [스크린샷 1](artifacts/screenshots/35-10-preset.png)
- TA / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지: [스크린샷 1](artifacts/screenshots/36-08-unsaved-time-fields.png)
- TA / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/37-09-existing-reopen.png)
- TA / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/38-11-isolation.png)
- TA / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인: [스크린샷 1](artifacts/screenshots/39-15-mask-lock.png)
- TA / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 1](artifacts/screenshots/40-16-long-note.png)
- TA / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 2](artifacts/screenshots/41-16-long-note.png)
- CO / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지: [스크린샷 1](artifacts/screenshots/42-01-fast-input.png)
- CO / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합: [스크린샷 1](artifacts/screenshots/43-02-browser-composition.png)
- CO / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경: [스크린샷 1](artifacts/screenshots/44-03-cross-section.png)
- CO / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기: [스크린샷 1](artifacts/screenshots/45-04-edit-paste.png)
- CO / 가맹점 등록·수정 / 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력: [스크린샷 1](artifacts/screenshots/46-06-other-fields.png)
- CO / 가맹점 등록·수정 / 예금주 조회·계좌 재입력 전후 잠금 상태: [스크린샷 1](artifacts/screenshots/47-07-format.png)
- CO / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제: [스크린샷 1](artifacts/screenshots/48-13-validation.png)
- CO / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지: [스크린샷 1](artifacts/screenshots/49-10-preset.png)
- CO / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지: [스크린샷 1](artifacts/screenshots/50-08-unsaved-time-fields.png)
- CO / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/51-09-existing-reopen.png)
- CO / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/52-11-isolation.png)
- CO / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인: [스크린샷 1](artifacts/screenshots/53-15-mask-lock.png)
- CO / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 1](artifacts/screenshots/54-16-long-note.png)
- CO / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 2](artifacts/screenshots/55-16-long-note.png)
- BO / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지: [스크린샷 1](artifacts/screenshots/56-01-fast-input.png)
- BO / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합: [스크린샷 1](artifacts/screenshots/57-02-browser-composition.png)
- BO / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경: [스크린샷 1](artifacts/screenshots/58-03-cross-section.png)
- BO / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기: [스크린샷 1](artifacts/screenshots/59-04-edit-paste.png)
- BO / 가맹점 등록·수정 / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/60-09-existing-reopen.png)
- BO / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인: [스크린샷 1](artifacts/screenshots/61-15-mask-lock.png)
- BO / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 1](artifacts/screenshots/62-16-long-note.png)
- BO / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인: [스크린샷 2](artifacts/screenshots/63-16-long-note.png)
- ADMIN / 사용자 지정 가맹점 저장·원복 / 05 마지막 글자 입력 직후 저장·재진입: [스크린샷 1](artifacts/screenshots/64-05-saved-last-character.png)
- ADMIN / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [스크린샷 1](artifacts/screenshots/65-08-saved-selection-times.png)
- TA / 사용자 지정 가맹점 저장·원복 / 05 마지막 글자 입력 직후 저장·재진입: [스크린샷 1](artifacts/screenshots/66-05-saved-last-character.png)
- TA / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [스크린샷 1](artifacts/screenshots/67-08-saved-selection-times.png)
- ADMIN / 재QA 초기화 create / slow: [스크린샷 1](artifacts/screenshots/68-loading.png)
- ADMIN / 재QA 초기화 create / failure: [스크린샷 1](artifacts/screenshots/69-error-retry.png)
- ADMIN / 재QA 초기화 create / cancel: [스크린샷 1](artifacts/screenshots/70-loading.png)
- ADMIN / 재QA 초기화 edit / slow: [스크린샷 1](artifacts/screenshots/71-loading.png)
- ADMIN / 재QA 초기화 edit / failure: [스크린샷 1](artifacts/screenshots/72-error-retry.png)
- ADMIN / 재QA 초기화 edit / cancel: [스크린샷 1](artifacts/screenshots/73-loading.png)
- TA / 재QA 초기화 create / slow: [스크린샷 1](artifacts/screenshots/74-loading.png)
- TA / 재QA 초기화 create / failure: [스크린샷 1](artifacts/screenshots/75-error-retry.png)
- TA / 재QA 초기화 create / cancel: [스크린샷 1](artifacts/screenshots/76-loading.png)
- TA / 재QA 초기화 edit / slow: [스크린샷 1](artifacts/screenshots/77-loading.png)
- TA / 재QA 초기화 edit / failure: [스크린샷 1](artifacts/screenshots/78-error-retry.png)
- TA / 재QA 초기화 edit / cancel: [스크린샷 1](artifacts/screenshots/79-loading.png)
- CO / 재QA 초기화 create / slow: [스크린샷 1](artifacts/screenshots/80-loading.png)
- CO / 재QA 초기화 create / failure: [스크린샷 1](artifacts/screenshots/81-error-retry.png)
- CO / 재QA 초기화 create / cancel: [스크린샷 1](artifacts/screenshots/82-loading.png)
- CO / 재QA 초기화 edit / slow: [스크린샷 1](artifacts/screenshots/83-loading.png)
- CO / 재QA 초기화 edit / failure: [스크린샷 1](artifacts/screenshots/84-error-retry.png)
- CO / 재QA 초기화 edit / cancel: [스크린샷 1](artifacts/screenshots/85-loading.png)
- BO / 재QA 초기화 edit / slow: [스크린샷 1](artifacts/screenshots/86-loading.png)
- BO / 재QA 초기화 edit / failure: [스크린샷 1](artifacts/screenshots/87-error-retry.png)
- BO / 재QA 초기화 edit / cancel: [스크린샷 1](artifacts/screenshots/88-loading.png)
- ADMIN / [ADMIN] role / 재QA 수정 화면 편집 가능한 입력 회귀: [스크린샷 1](artifacts/screenshots/89-edit-input.png)
- TA / [TA] role / 재QA 수정 화면 편집 가능한 입력 회귀: [스크린샷 1](artifacts/screenshots/90-edit-input.png)
- CO / [CO] role / 재QA 수정 화면 편집 가능한 입력 회귀: [스크린샷 1](artifacts/screenshots/91-edit-input.png)
- BO / [BO] role / 재QA 수정 화면 편집 가능한 입력 회귀: [스크린샷 1](artifacts/screenshots/92-edit-input.png)
- BO / [BO] role / 기존 가맹점 수정 화면 진입·재조회 시 저장 정보 표시: [스크린샷 1](artifacts/screenshots/93-bo-isolation.png)
- CO / 사용자 지정 가맹점 저장·원복 / 05 마지막 글자 입력 직후 저장·재진입: [스크린샷 1](artifacts/screenshots/94-05-saved-last-character.png)
- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [스크린샷 1](artifacts/screenshots/95-screenshot.png)
- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [스크린샷 1](artifacts/screenshots/96-08-reentry.png)
- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [스크린샷 2](artifacts/screenshots/97-screenshot.png)

## 화면 재현 기록

- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/01-unblock-20261027-trace.zip)
- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/02-unblock-20261027-trace.zip)
- 화면 재현 기록은 기본적으로 실패/확인불가 항목에 한해 포함합니다. PASS 항목 trace까지 필요하면 `QA_PUBLISH_TRACE=1 npm run qa:report -- --issue <id> --env <env>`로 내부 제출용 산출물을 생성합니다.

## 실행 기록

- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [실행 기록 1](artifacts/logs/01-error-context.md)
- CO / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입: [실행 기록 1](artifacts/logs/02-error-context.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4373/dev/deployment-reqa.spec.ts / [dev] / [CO] role / 재QA 수정판 자산 확인 | PASS | 7971ms |  |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 OFF 1/5 | PASS | 19996ms | [스크린샷 1](artifacts/screenshots/01-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 OFF 2/5 | PASS | 17468ms | [스크린샷 1](artifacts/screenshots/02-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 OFF 3/5 | PASS | 16127ms | [스크린샷 1](artifacts/screenshots/03-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 OFF 4/5 | PASS | 13949ms | [스크린샷 1](artifacts/screenshots/04-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 OFF 5/5 | PASS | 13170ms | [스크린샷 1](artifacts/screenshots/05-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 ON 1/5 | PASS | 17024ms | [스크린샷 1](artifacts/screenshots/06-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 ON 2/5 | PASS | 12619ms | [스크린샷 1](artifacts/screenshots/07-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 ON 3/5 | PASS | 14489ms | [스크린샷 1](artifacts/screenshots/08-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 ON 4/5 | PASS | 13704ms | [스크린샷 1](artifacts/screenshots/09-long-note.png) |  |  |  |
| 4373/dev/long-note-reqa.spec.ts / [dev] / [CO] role / 재QA 긴 비고 / 계측 ON 5/5 | PASS | 13314ms | [스크린샷 1](artifacts/screenshots/10-long-note.png) |  |  |  |
| 4373/dev/holiday-warning.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 14 휴일정산 변경 안내 | PASS | 11532ms | [스크린샷 1](artifacts/screenshots/11-14-holiday-warning.png) |  |  |  |
| 4373/dev/holiday-warning.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 14 휴일정산 변경 안내 | PASS | 7594ms | [스크린샷 1](artifacts/screenshots/12-14-holiday-warning.png) |  |  |  |
| 4373/dev/holiday-warning.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 14 휴일정산 변경 안내 | PASS | 9207ms | [스크린샷 1](artifacts/screenshots/13-14-holiday-warning.png) |  |  |  |
| 4373/dev/holiday-warning.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 14 휴일정산 변경 안내 | SKIPPED | 9035ms |  |  |  | skip: NOT_APPLICABLE: BO에서 해당 시간·휴일정산 입력을 제공하지 않는 정상 권한 제한. 실행/성공으로 합산하지 않음. / original-skip-classification: BLOCKED: 휴일정산 수정 권한 없음 |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지 | PASS | 4215ms | [스크린샷 1](artifacts/screenshots/14-01-fast-input.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | PASS | 1822ms | [스크린샷 1](artifacts/screenshots/15-02-browser-composition.png) |  |  | scope: 실제 개발계 브라우저 한글 조합 보조검증. macOS/Windows 실제 OS 입력기 검증을 대체하지 않음. |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경 | PASS | 4488ms | [스크린샷 1](artifacts/screenshots/16-03-cross-section.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기 | PASS | 3855ms | [스크린샷 1](artifacts/screenshots/17-04-edit-paste.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 06 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | PASS | 2874ms | [스크린샷 1](artifacts/screenshots/18-06-other-fields.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 07 금액·수수료·결제한도·계좌번호 표시 형식 | PASS | 2017ms | [스크린샷 1](artifacts/screenshots/19-07-format.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제 | PASS | 2359ms | [스크린샷 1](artifacts/screenshots/20-13-validation.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지 | PASS | 2835ms | [스크린샷 1](artifacts/screenshots/21-10-preset.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | PASS | 8004ms | [스크린샷 1](artifacts/screenshots/22-08-unsaved-time-fields.png) |  |  | scope: 미저장 UI 유지 보조검증. 서버 저장·재진입은 QA 전용 데이터 사전조건 확인 필요. |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 09 기존 가맹점 수정 화면 진입·재조회 | PASS | 5470ms | [스크린샷 1](artifacts/screenshots/23-09-existing-reopen.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 11 다른 가맹점으로 이동할 때 미저장 입력 분리 | PASS | 3394ms | [스크린샷 1](artifacts/screenshots/24-11-isolation.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인 | PASS | 1957ms | [스크린샷 1](artifacts/screenshots/25-15-mask-lock.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [ADMIN] role / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인 | PASS | 7604ms | [스크린샷 1](artifacts/screenshots/26-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/27-16-long-note.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지 | PASS | 3291ms | [스크린샷 1](artifacts/screenshots/28-01-fast-input.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | PASS | 1309ms | [스크린샷 1](artifacts/screenshots/29-02-browser-composition.png) |  |  | scope: 실제 개발계 브라우저 한글 조합 보조검증. macOS/Windows 실제 OS 입력기 검증을 대체하지 않음. |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경 | PASS | 2939ms | [스크린샷 1](artifacts/screenshots/30-03-cross-section.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기 | PASS | 1558ms | [스크린샷 1](artifacts/screenshots/31-04-edit-paste.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 06 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | PASS | 1929ms | [스크린샷 1](artifacts/screenshots/32-06-other-fields.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 07 금액·수수료·결제한도·계좌번호 표시 형식 | PASS | 1673ms | [스크린샷 1](artifacts/screenshots/33-07-format.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제 | PASS | 2393ms | [스크린샷 1](artifacts/screenshots/34-13-validation.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지 | PASS | 2181ms | [스크린샷 1](artifacts/screenshots/35-10-preset.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | PASS | 7956ms | [스크린샷 1](artifacts/screenshots/36-08-unsaved-time-fields.png) |  |  | scope: 미저장 UI 유지 보조검증. 서버 저장·재진입은 QA 전용 데이터 사전조건 확인 필요. |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 09 기존 가맹점 수정 화면 진입·재조회 | PASS | 2525ms | [스크린샷 1](artifacts/screenshots/37-09-existing-reopen.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 11 다른 가맹점으로 이동할 때 미저장 입력 분리 | PASS | 2926ms | [스크린샷 1](artifacts/screenshots/38-11-isolation.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인 | PASS | 1461ms | [스크린샷 1](artifacts/screenshots/39-15-mask-lock.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [TA] role / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인 | PASS | 6792ms | [스크린샷 1](artifacts/screenshots/40-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/41-16-long-note.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지 | PASS | 1545ms | [스크린샷 1](artifacts/screenshots/42-01-fast-input.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | PASS | 1594ms | [스크린샷 1](artifacts/screenshots/43-02-browser-composition.png) |  |  | scope: 실제 개발계 브라우저 한글 조합 보조검증. macOS/Windows 실제 OS 입력기 검증을 대체하지 않음. |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경 | PASS | 3462ms | [스크린샷 1](artifacts/screenshots/44-03-cross-section.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기 | PASS | 2805ms | [스크린샷 1](artifacts/screenshots/45-04-edit-paste.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 06 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | PASS | 1807ms | [스크린샷 1](artifacts/screenshots/46-06-other-fields.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 07 금액·수수료·결제한도·계좌번호 표시 형식 | PASS | 1012ms | [스크린샷 1](artifacts/screenshots/47-07-format.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제 | PASS | 1010ms | [스크린샷 1](artifacts/screenshots/48-13-validation.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지 | PASS | 1289ms | [스크린샷 1](artifacts/screenshots/49-10-preset.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | PASS | 2218ms | [스크린샷 1](artifacts/screenshots/50-08-unsaved-time-fields.png) |  |  | scope: 미저장 UI 유지 보조검증. 서버 저장·재진입은 QA 전용 데이터 사전조건 확인 필요. |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 09 기존 가맹점 수정 화면 진입·재조회 | PASS | 4965ms | [스크린샷 1](artifacts/screenshots/51-09-existing-reopen.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 11 다른 가맹점으로 이동할 때 미저장 입력 분리 | PASS | 2202ms | [스크린샷 1](artifacts/screenshots/52-11-isolation.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인 | PASS | 1211ms | [스크린샷 1](artifacts/screenshots/53-15-mask-lock.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [CO] role / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인 | PASS | 6810ms | [스크린샷 1](artifacts/screenshots/54-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/55-16-long-note.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 01 빠른 상호명·비고 입력 유지 | PASS | 1291ms | [스크린샷 1](artifacts/screenshots/56-01-fast-input.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 02 보조검증: 브라우저 한글 조합·영문·숫자 혼합 | PASS | 1808ms | [스크린샷 1](artifacts/screenshots/57-02-browser-composition.png) |  |  | scope: 실제 개발계 브라우저 한글 조합 보조검증. macOS/Windows 실제 OS 입력기 검증을 대체하지 않음. |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 03 입력 직후 이체수수료·기본 수수료 변경 | PASS | 1711ms | [스크린샷 1](artifacts/screenshots/58-03-cross-section.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 04 문장 중간 삽입·삭제·붙여넣기 | PASS | 1379ms | [스크린샷 1](artifacts/screenshots/59-04-edit-paste.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 06 대표자·업종·업태·상세주소·연락처·상품명 빠른 입력 | SKIPPED | 389ms |  |  |  | skip: NOT_APPLICABLE: BO 마스킹 개인정보 입력은 정상 잠금 범위이므로 이 검사 그룹의 입력 검증에서 제외 |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 07 금액·수수료·결제한도·계좌번호 표시 형식 | SKIPPED | 1001ms |  |  |  | skip: NOT_APPLICABLE: BO 마스킹 계좌 입력은 정상 잠금 범위이므로 이 검사 그룹의 입력 검증에서 제외 |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 13 이메일·사업자등록번호 검증 메시지 표시·해제 | SKIPPED | 1039ms |  |  |  | skip: NOT_APPLICABLE: BO 마스킹 이메일·등록번호 입력은 정상 잠금 범위이므로 검증 메시지 검사에서 제외 |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 10 프리셋 적용 후 직접 수정값 유지 | SKIPPED | 1036ms |  |  |  | skip: NOT_APPLICABLE: BO는 프리셋 선택 메뉴 제공 대상 역할이 아니므로 적용 검사에서 제외 |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 08 보조검증: 선택·시간 입력 후 섹션 변경 유지 | SKIPPED | 1037ms |  |  |  | skip: NOT_APPLICABLE: BO에서 해당 시간·휴일정산 입력을 제공하지 않는 정상 권한 제한. 실행/성공으로 합산하지 않음. / original-skip-classification: BLOCKED: 해당 계정의 시간 입력 권한/조건 없음 |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 09 기존 가맹점 수정 화면 진입·재조회 | PASS | 3181ms | [스크린샷 1](artifacts/screenshots/60-09-existing-reopen.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 15 수정 화면 개인정보 마스킹 잠금 확인 | PASS | 957ms | [스크린샷 1](artifacts/screenshots/61-15-mask-lock.png) |  |  |  |
| 4373/dev/vendor-input.spec.ts / [dev] / [BO] role / 가맹점 등록·수정 / 16 긴 비고 입력과 등록 화면 구성 확인 | PASS | 4873ms | [스크린샷 1](artifacts/screenshots/62-16-long-note.png)<br>[스크린샷 2](artifacts/screenshots/63-16-long-note.png) |  |  |  |
| 4373/dev/vendor-save.spec.ts / [dev] / [ADMIN] role / 사용자 지정 가맹점 저장·원복 / 05 마지막 글자 입력 직후 저장·재진입 | PASS | 25391ms | [스크린샷 1](artifacts/screenshots/64-05-saved-last-character.png) |  |  |  |
| 4373/dev/vendor-save.spec.ts / [dev] / [ADMIN] role / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입 | PASS | 24122ms | [스크린샷 1](artifacts/screenshots/65-08-saved-selection-times.png) |  |  |  |
| 4373/dev/vendor-save.spec.ts / [dev] / [TA] role / 사용자 지정 가맹점 저장·원복 / 05 마지막 글자 입력 직후 저장·재진입 | PASS | 26501ms | [스크린샷 1](artifacts/screenshots/66-05-saved-last-character.png) |  |  |  |
| 4373/dev/vendor-save.spec.ts / [dev] / [TA] role / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입 | PASS | 26353ms | [스크린샷 1](artifacts/screenshots/67-08-saved-selection-times.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 create / slow | PASS | 11539ms | [스크린샷 1](artifacts/screenshots/68-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 create / failure | PASS | 12557ms | [스크린샷 1](artifacts/screenshots/69-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 create / cancel | PASS | 13781ms | [스크린샷 1](artifacts/screenshots/70-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 edit / slow | PASS | 8916ms | [스크린샷 1](artifacts/screenshots/71-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 edit / failure | PASS | 12714ms | [스크린샷 1](artifacts/screenshots/72-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 edit / cancel | PASS | 9673ms | [스크린샷 1](artifacts/screenshots/73-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 create / slow | PASS | 10042ms | [스크린샷 1](artifacts/screenshots/74-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 create / failure | PASS | 8450ms | [스크린샷 1](artifacts/screenshots/75-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 create / cancel | PASS | 11490ms | [스크린샷 1](artifacts/screenshots/76-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 edit / slow | PASS | 7613ms | [스크린샷 1](artifacts/screenshots/77-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 edit / failure | PASS | 10675ms | [스크린샷 1](artifacts/screenshots/78-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 edit / cancel | PASS | 8885ms | [스크린샷 1](artifacts/screenshots/79-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 create / slow | PASS | 7210ms | [스크린샷 1](artifacts/screenshots/80-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 create / failure | PASS | 7670ms | [스크린샷 1](artifacts/screenshots/81-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 create / cancel | PASS | 9763ms | [스크린샷 1](artifacts/screenshots/82-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 edit / slow | PASS | 8708ms | [스크린샷 1](artifacts/screenshots/83-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 edit / failure | PASS | 12375ms | [스크린샷 1](artifacts/screenshots/84-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 edit / cancel | PASS | 13628ms | [스크린샷 1](artifacts/screenshots/85-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [BO] role / 재QA 초기화 edit / slow | PASS | 10292ms | [스크린샷 1](artifacts/screenshots/86-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [BO] role / 재QA 초기화 edit / failure | PASS | 14815ms | [스크린샷 1](artifacts/screenshots/87-error-retry.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [BO] role / 재QA 초기화 edit / cancel | PASS | 8287ms | [스크린샷 1](artifacts/screenshots/88-loading.png) |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 create / refetch | PASS | 42761ms |  |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 초기화 edit / refetch | PASS | 11502ms |  |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 create / refetch | PASS | 9700ms |  |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [TA] role / 재QA 초기화 edit / refetch | PASS | 10014ms |  |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 create / refetch | PASS | 10679ms |  |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [CO] role / 재QA 초기화 edit / refetch | PASS | 10394ms |  |  |  |  |
| 4373/dev/loading-reqa.spec.ts / [dev] / [BO] role / 재QA 초기화 edit / refetch | PASS | 6798ms |  |  |  |  |
| 4373/dev/edit-input-reqa.spec.ts / [dev] / [ADMIN] role / 재QA 수정 화면 편집 가능한 입력 회귀 | PASS | 12712ms | [스크린샷 1](artifacts/screenshots/89-edit-input.png) |  |  |  |
| 4373/dev/edit-input-reqa.spec.ts / [dev] / [TA] role / 재QA 수정 화면 편집 가능한 입력 회귀 | PASS | 12698ms | [스크린샷 1](artifacts/screenshots/90-edit-input.png) |  |  |  |
| 4373/dev/edit-input-reqa.spec.ts / [dev] / [CO] role / 재QA 수정 화면 편집 가능한 입력 회귀 | PASS | 11064ms | [스크린샷 1](artifacts/screenshots/91-edit-input.png) |  |  |  |
| 4373/dev/edit-input-reqa.spec.ts / [dev] / [BO] role / 재QA 수정 화면 편집 가능한 입력 회귀 | PASS | 10858ms | [스크린샷 1](artifacts/screenshots/92-edit-input.png) |  |  |  |
| 4373/dev/preconditions.spec.ts / [dev] / [전체] role / 실제 OS 한글 입력기 / 02 macOS Chrome 개인확인 | MANUAL_CONFIRMED | 1ms |  |  |  | skip: MANUAL_CONFIRMED: 2026-10-27 요청자 김경주가 Mac도 개인 확인 완료라고 명시했다. 에이전트의 실제 OS 입력기 자동 실행 통과와 구분한다. |
| 4373/dev/preconditions.spec.ts / [dev] / [전체] role / 실제 OS 한글 입력기 / 02 Windows Chrome 개인확인 | MANUAL_CONFIRMED | 0ms |  |  |  | skip: MANUAL_CONFIRMED: 2026-10-27 요청자 김경주가 윈도우 환경은 확인 못하니까 개인확인으로 패스라고 명시했다. 에이전트의 실제 OS 입력기 자동 실행 통과와 구분한다. |
| 4373/dev/unblock-inquiry.spec.ts / [dev] / [ADMIN] role / 추가 확인 12 사용자 제공 계좌 예금주 조회·재입력 | PASS | 13438ms |  |  |  |  |
| 4373/dev/unblock-bo-isolation.spec.ts / [dev] / [BO] role / 추가 확인 11 복수 가맹점 미저장 입력 분리 | PASS | 16301ms | [스크린샷 1](artifacts/screenshots/93-bo-isolation.png) |  |  |  |
| 4373/dev/vendor-save.spec.ts / [dev] / [CO] role / 사용자 지정 가맹점 저장·원복 / 05 마지막 글자 입력 직후 저장·재진입 | PASS | 25121ms | [스크린샷 1](artifacts/screenshots/94-05-saved-last-character.png) |  |  |  |
| 4373/dev/vendor-save.spec.ts / [dev] / [CO] role / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입 | FAIL | 28220ms | [스크린샷 1](artifacts/screenshots/95-screenshot.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/01-unblock-20261027-trace.zip) | [로그 1](artifacts/logs/01-error-context.md) | Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true }) |
| 4373/dev/vendor-save.spec.ts / [dev] / [CO] role / 사용자 지정 가맹점 저장·원복 / 08 선택·거래가능 시간 저장·재진입 | FAIL | 34598ms | [스크린샷 1](artifacts/screenshots/96-08-reentry.png)<br>[스크린샷 2](artifacts/screenshots/97-screenshot.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4373/dev/artifacts/traces/02-unblock-20261027-trace.zip) | [로그 1](artifacts/logs/02-error-context.md) | Error: expect(locator).toHaveValue(expected) failed  Locator:  getByRole('dialog').last().getByRole('textbox', { name: '거래가능 시작 시간', exact: true }) |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- 검토 후 `qa:redmine:update`로 report/evidence를 업로드하고 QA subissue 상태를 갱신합니다.
