4.5 KiB
4.5 KiB
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 보호, 휴대폰
01011자리 제출, 운송장 숫자 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의 localizedfontName해석과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이 기존 localizedfontName에 위임하고,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는 실행 환경 확보 후 재개한다.