86 lines
4.5 KiB
Markdown
86 lines
4.5 KiB
Markdown
# Phase 10 연락처·운송장 검증 리뷰
|
|
|
|
## 1. 리뷰 정보
|
|
|
|
| 항목 | 내용 |
|
|
|---|---|
|
|
| 리뷰 대상 | Phase 10 / `P10-T1`~`P10-T5` 코드·정적 범위 |
|
|
| 기준 commit 또는 working tree | working tree |
|
|
| 리뷰 일자 | 2026-10-08 |
|
|
| 리뷰어 | Oracle 요구사항 리뷰, Oracle UI 정적 리뷰 |
|
|
| 기준 문서 | `prd.md`, `plan-task.md` |
|
|
| 리뷰 상태 | 수정 검증 완료, runtime visual gate 미완료 |
|
|
|
|
## 2. 리뷰 목적과 범위
|
|
|
|
- 이름의 한글 IME 보호, 휴대폰 `010` 11자리 제출, 운송장 숫자 10~14자리 제출 계약을 검토한다.
|
|
- 기존 request·mutation·navigation과 입력 화면의 layout·copy·타이포그래피 정책 보존 여부를 검토한다.
|
|
- 실제 한글 조합, 키보드, 붙여넣기, Dynamic Type, VoiceOver, screenshot fidelity는 부팅된 인증 실행 환경 부재로 제외한다.
|
|
|
|
## 3. 검토한 근거
|
|
|
|
| 검증 | 결과와 근거 |
|
|
|---|---|
|
|
| `bash work/tests/check-gift-contact-input.sh` | 80 assertions와 양 폼·ViewModel source contract 성공 |
|
|
| `bash work/tests/check-gift-recipient-address.sh` | 실제 recipient ViewModel 280 assertions 성공 |
|
|
| `GiftTrackingRegistrationCheck.swift` harness | 142 assertions 성공 |
|
|
| address/recipient-form 회귀, Swift/shell parse, project lint, `git diff --check` | 성공 |
|
|
| `SodaLive-dev`, `SodaLive` generic iOS Debug build | 각각 `BUILD SUCCEEDED` |
|
|
| 기능 독립 리뷰 | `APPROVE`, 차단 결함 없음 |
|
|
| UI 정적 리뷰 | `REQUEST_CHANGES`, `REV-P10-001` 확정 |
|
|
|
|
## 4. 발견 사항 요약
|
|
|
|
| ID | 심각도 | 상태 | 제목 | 소유 Task |
|
|
|---|---|---|---|---|
|
|
| `REV-P10-001` | Medium | 수정 완료 | 연락처 UIKit 필드가 기존 언어별 폰트 정책을 우회함 | `P10-R1` |
|
|
|
|
## 5. 발견 사항 상세
|
|
|
|
### REV-P10-001 — 연락처 UIKit 필드가 기존 언어별 폰트 정책을 우회함
|
|
|
|
- **심각도:** Medium
|
|
- **상태:** 수정 완료
|
|
- **관련 요구사항:** `SEND-007`, `RECV-007`
|
|
- **소유 Task:** `P10-R1`
|
|
|
|
**관찰 내용**
|
|
|
|
`GiftContactTextField`가 `Pretendard-Regular`를 직접 지정해, 한국어는 Pretendard, 일본어는 NotoSansJP, 기타 언어는 system font를 선택하는 기존 `.appFont(.body3)` 정책을 따르지 않는다.
|
|
|
|
**근거**
|
|
|
|
- 코드: `SodaLive/Sources/V2/Gift/Components/GiftContactTextField.swift`의 `UIFont(name: Font.preRegular.rawValue, ...)`.
|
|
- 비교 기준: `SodaLive/Sources/Extensions/FontModifier.swift`의 localized `fontName` 해석과 `FontModifier.body`.
|
|
- 테스트: `work/tests/check-gift-contact-input.sh`에는 IME·키보드·폼 연결 검사는 있으나 localized font 사용 검사가 없다.
|
|
|
|
**영향**
|
|
|
|
일본어와 기타 언어에서 이름·휴대폰 입력란만 주변 SwiftUI 입력/텍스트와 다른 font family를 사용할 수 있다. 입력 검증 자체와 데이터 전송에는 영향이 없다.
|
|
|
|
**권장 조치**
|
|
|
|
기존 `FontModifier`의 언어 해석을 UIKit에서도 재사용할 최소 진입점을 제공하고, 연락처 필드가 `.body3` 크기·weight로 이를 사용하도록 한다. 다른 UIKit wrapper와 전역 폰트 정책은 변경하지 않는다.
|
|
|
|
## 6. plan·goal 전환
|
|
|
|
확정 항목을 구현 전에 `plan-task.md`의 `P10-R1`로 전환했다. focused RED/GREEN과 양 스킴 build 후 이 문서에 수정 검증 결과를 누적한다.
|
|
|
|
### 수정 검증 — 2026-10-08
|
|
|
|
- source contract에서 `Font.preRegular` 직접 사용과 공용 resolver 미연결을 RED로 확인했다.
|
|
- `SodaTypography.localizedFontName`이 기존 localized `fontName`에 위임하고, `GiftContactTextField`가 `.body3` 이름·크기와 system regular fallback을 사용하도록 수정했다.
|
|
- contact 80 assertions와 localized typography contract, recipient 280 assertions, tracking 142 assertions, Swift/shell parse, `git diff --check`, 양 스킴 generic iOS Debug build가 성공했다.
|
|
- Oracle 정적 재리뷰 결과 `APPROVE_STATIC`, 추가 코드 수정 사항 없음.
|
|
|
|
## 7. 리뷰 종료 판정
|
|
|
|
| 판정 항목 | 결과 | 근거 |
|
|
|---|---|---|
|
|
| 요구사항·검증 로직 | 충족 | 기능 리뷰 `APPROVE`, focused checks |
|
|
| 확정 결함 plan 반영 | 충족 | `P10-R1` |
|
|
| 확정 결함 수정 | 충족 | `P10-R1`, focused RED/GREEN, 재리뷰 `APPROVE_STATIC` |
|
|
| runtime visual/accessibility QA | 미충족 | 부팅된 인증 실행 환경과 fresh screenshot 부재 |
|
|
|
|
**최종 결론:** Phase 10 코드·정적 gate와 `REV-P10-001` 수정 검증은 완료했다. 실제 입력·시각·접근성 gate는 실행 환경 확보 후 재개한다.
|