# pre-staging 수동 점검 체크리스트

작성일: 2026-07-06
상태: v0.2 현재 상태 반영

목적: `tdc114plus` 신규 전화번호 승인 로그인 기능을 staging 반영 전에 로컬 runtime, Android target, 문서 기준으로 점검할 항목을 고정한다.

## 1. 사용 시점

아래 상황에서 이 문서를 사용한다.

- 팀장에게 staging 반영 검토를 요청하기 전
- Android target 기준 수동 점검을 다시 수행할 때
- local runtime과 staging runtime의 차이를 설명해야 할 때

## 2. 진행 순서

아래 순서로 점검한다.

1. 로컬 구현 고정 상태 확인
2. 자동화 테스트 재확인
3. 로컬 API 계약 점검
4. Android target UI 점검
5. Android target 실사용 흐름 점검
6. 예외 시나리오 점검
7. staging 반영 직전 확인

## 3. 점검 항목

### 3.1 로컬 구현 고정 상태

- [x] 신규 로그인 흐름이 기존 원본 소스에 직접 덮어쓰지 않고 신규 API 경로 중심으로 분리되었는가
- [x] 기존 직원검색, 조직도, 직원 상세, 즐겨찾기 흐름이 회귀하지 않았는가
- [x] 변경 파일 목록과 영향 범위를 설명할 수 있는가

현재 판단:

- 앱과 backend 모두 기존 `phone-login`을 직접 덮어쓰지 않고 headless 승인 계약 기준으로 재정렬하는 방식으로 진행했다.
- 회귀 여부는 Flutter test, backend test, Android target 기준 직원검색 진입 확인으로 1차 검증했다.

### 3.2 자동화 테스트 재확인

- [x] Flutter unit test 통과
- [x] Flutter widget test 통과
- [x] backend handler/server test 통과
- [x] `scripts/api-smoke.sh` 기본 검증 통과
- [ ] Android integration test 재실행 결과 기록 완료

현재 판단:

- 단위/위젯/backend/smoke 기준의 기본 자동화는 확보되었다.
- Android integration test 재실행은 시도했고, 결과도 로그에 남겼다.
- 다만 2026-07-06 재시도는 `172.21.128.1:5555 offline`으로 Android target 연결이 실패해 기능점검 통과로는 반영하지 못했다.

### 3.3 로컬 API 계약 점검

- [x] headless 로그인 시작/승인조회 계약 존재 확인
- [x] 레거시 경로와 신규 계약의 차이 설명 가능
- [x] invalid 요청 기준 validation 응답 확인
- [x] 임의 `pendingRef` 기준 expired 또는 pending 응답 확인
- [x] local runtime에서 실제 승인 완료 E2E가 막히는 원인을 설명할 수 있는가

설명 기준:

- local Baron SSO runtime 안에 테스트 번호의 identity/user mirror가 없으면, 번호가 운영 또는 다른 환경에 등록되어 있어도 local 승인 완료 검증은 끝까지 진행되지 않는다.

### 3.4 Android target UI 점검

- [x] 로그인 화면이 정상 표시되는가
- [x] 빈 전화번호 validation이 동작하는가
- [x] `Baron SSO로 로그인` 버튼이 Hosted Login 화면을 여는가
- [ ] 인증 대기 중 문구가 자연스럽게 표시되는가
- [ ] 로딩 상태가 과도하게 길거나 멈춘 것처럼 보이지 않는가
- [ ] 오류 메시지가 내부 시스템 상세를 노출하지 않는가

현재 판단:

- 로그인 화면, 입력, 버튼 동작 자체는 확인했다.
- 승인 대기 중 문구와 장시간 polling 체감, generic 오류 문구는 현재 단계에서 다시 한 번 화면 기준 점검이 필요하다.

### 3.5 Android target 실사용 흐름 점검

- [x] 로그인 성공 후 `직원검색` 첫 화면으로 진입하는가
- [x] `검색 결과`와 기본 직원 목록이 표시되는가
- [x] 직원 상세 화면 진입이 되는가
- [x] 즐겨찾기 저장이 되는가
- [x] 전화/문자 버튼이 노출되는가
- [ ] 앱 재실행 후 세션 복원이 되는가
- [ ] 인증 만료 시 재로그인 유도 흐름으로 돌아가는가

현재 판단:

- 로그인 이후 핵심 탐색 흐름은 1차 확인했다.
- 세션 복원과 인증 만료 후 복귀 흐름은 실제 기기/에뮬레이터 기준으로 한 번 더 확인이 필요하다.

로그인 완료 가정 점검 절차:

1. 실기기 우선이면 `scripts/.env.android-device.local`, emulator fallback이면 `scripts/.env.android-emulator.local`에 API base와 테스트 번호가 준비되어 있는지 확인한다.
2. 필요 시 `TDC114_SMOKE_ASSUME_LOGGED_IN=1`을 사용해 테스트용 세션 bootstrap을 활성화한다.
3. `./scripts/integration_tests.sh`를 Android target 연결 상태에서 실행한다.
4. 앱이 로그인 화면이 아니라 `직원검색`으로 바로 진입하는지 확인한다.
5. 직원 목록, 즐겨찾기, 직원 상세, 전화/문자 버튼 노출까지 이어서 확인한다.

보조 메모:

- local runtime이 유효 세션을 내주지 못하면, 기능점검용으로 mock directory fallback을 사용한다.
- 이 경우에도 점검 목적은 "로그인 이후 앱 기능 확인"이며, 실제 승인 완료 검증을 대체하지는 않는다.

2026-07-06 추가 메모:

- local Baron SSO runtime에 테스트 번호 `010-9136-5338`용 identity/local user를 맞춘 뒤 host 기준 `./scripts/api-smoke.sh`는 다시 통과했다.
- 확인 완료:
  - `phone-login` HTTP 200
  - headless 로그인 시작 HTTP 200
  - `link/poll` 첫 응답 `authorization_pending`
- 추가 완료:
  - Windows emulator `emulator-5556 device` 복구
  - Windows `5557 -> 127.0.0.1:5557` portproxy 추가
  - `TDC114_ADB_CONNECT_ADDRESS=172.21.128.1:5557 ./scripts/integration_tests.sh` 통과

### 3.6 예외 시나리오 점검

- [ ] 미등록 번호 입력 시 generic 실패 안내가 보이는가
- [x] 만료된 `pendingRef`에서 poll 종료 처리가 자연스러운가
- [ ] polling 간격이 짧을 때 제한 또는 지연 안내가 되는가
- [ ] 로그인 성공 직후 directory API 401 없이 첫 화면이 유지되는가

현재 판단:

- 만료 `pendingRef`에 대한 backend 응답 자체는 확인했다.
- 다만 앱 화면에서 그 응답이 자연스럽게 보이는지, 미등록 번호와 polling 제한이 generic UX로 이어지는지는 아직 미완료다.

### 3.7 staging 반영 직전 확인

- [ ] 정확한 staging `TDC114_API_BASE`를 확보했는가
- [ ] staging에 headless 로그인 API와 `link/poll` API가 실제 반영되었는가
- [ ] 테스트 번호로 실제 링크 수신이 가능한가
- [ ] staging 로그 확인 위치와 담당자를 알고 있는가
- [x] 실패 시 롤백 또는 회귀 확인 방법을 문서화했는가

현재 판단:

- `https://sso.hmac.kr`는 현재 확인 기준으로 `tdc114plus` API base가 아니므로, 정확한 staging base는 아직 미확보다.
- staging 반영 실패 시 local 회귀 확인과 반영 전 점검 순서는 문서화되었지만, 실제 staging 담당자/로그 위치 확인은 남아 있다.

## 4. 현재 상태 메모

2026-07-06 현재 기준 메모:

- 앱과 backend의 기본 구현은 상당 부분 완료되었다.
- local runtime에서 API route와 기본 오류 응답은 확인했다.
- Android target 기준 로그인 화면과 직원검색 진입, 목록/상세/즐겨찾기/전화문자 버튼 노출은 1차 확인했다.
- local runtime에는 이제 테스트 번호 `010-9136-5338`의 identity/local user가 맞춰져 있어 최소 로그인 시작 단계 검증은 가능하다.
- 다만 실제 승인 완료 E2E는 여전히 staging 또는 동등 환경 검증이 필요하다.

## 5. 결과 기록 위치

점검 결과는 아래 문서에 누적한다.

- `docs/test-logs/2026-07-test-execution-log.md`
- 필요 시 `docs/daily-issues/YYYY-MM-DD.md`
