Files
sodalive-ios/docs/20261006_선물_UI_추가/reviews/phase10-contact-tracking-validation.md
T

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 보호, 휴대폰 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는 실행 환경 확보 후 재개한다.