Files
sodalive-ios/docs/20260327_캐릭터상세진입인증국가분기적용.md

4.4 KiB

20260327 캐릭터 상세 진입 인증 국가 분기 적용

개요

  • 캐릭터(또는 크리에이터) 터치로 상세 페이지로 이동할 때 수행되는 인증 체크를 접속국가 기준으로 분기한다.
  • 한국(KR) 사용자는 기존 본인인증 체크를 유지하고, 비한국 사용자는 콘텐츠 보기 설정 경로를 안내하는 기존 정책과 동일하게 맞춘다.

요구사항 요약

  • 대상: 캐릭터 상세 진입 탭 핸들러의 인증 가드 로직
  • 변경 사항:
    • KR(정규화 기준, 빈값 포함) 사용자: 기존 본인인증 체크 유지
    • non-KR 사용자: 인증 대신 콘텐츠 보기 설정 유도 정책 적용

완료 기준 (Acceptance Criteria)

  • AC1: 캐릭터 상세 진입 인증 가드에서 국가코드 정규화(trim + uppercased)가 적용된다.
  • AC2: 한국 사용자는 기존 본인인증 체크 흐름이 유지된다.
  • AC3: 비한국 사용자는 콘텐츠 보기 설정 유도 분기로 동작한다.
  • AC4: 기존 네비게이션/팝업 흐름과 충돌 없이 동작한다.
  • AC5: 빌드/진단/테스트 시도 결과가 문서에 기록된다.

구현 체크리스트

  • 캐릭터 상세 진입 인증 체크 위치 식별
  • 기존 국가 분기 정책 스니펫 확인 및 재사용 지점 선정
  • 탭 핸들러 분기 로직 변경
  • 수정 파일 진단 및 워크스페이스 빌드/테스트 실행
  • 검증 기록 문서화

검증 계획

  • 정적 진단: 수정 파일 lsp_diagnostics
  • 빌드:
    • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build
    • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
  • 테스트 시도:
    • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test
    • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test

검증 기록

  • 일시: 2026-03-27

    • 무엇: 캐릭터 상세 진입 인증 국가 분기 적용 작업 계획 문서 작성
    • 왜: 구현 전 변경 범위와 완료 기준을 고정해 요청사항을 정확히 반영하기 위함
    • 어떻게: docs 규칙에 맞춰 요구사항/완료기준/검증계획을 체크리스트로 구성
    • 실행 명령/도구: apply_patch(문서 생성)
    • 결과: 구현 계획 문서 생성 완료
  • 일시: 2026-03-27

    • 무엇: 캐릭터 상세 진입 인증 체크를 국가코드 기준(KR/non-KR)으로 분기 적용
    • 왜: 기존 “모든 국가 auth 필수” 로직을 정책 변경사항(한국은 본인인증, 비한국은 콘텐츠 보기 설정 유도)에 맞추기 위함
    • 어떻게:
      • ChatTabView.handleCharacterSelection(_:)HomeTabView.handleCharacterSelection(_:)countryCode 정규화(trim + uppercased) 추가
      • isKoreanCountry일 때만 기존 auth == false 본인인증 팝업(isShowAuthConfirmView) 흐름 유지
      • !isKoreanCountry && !UserDefaults.isAdultContentVisible() 조건에서
        • AppState.shared.errorMessage = I18n.Settings.adultContentEnableGuide
        • AppState.shared.isShowErrorPopup = true
        • AppState.shared.setAppStep(step: .contentViewSettings) 로 유도하고 상세 진입 차단
    • 실행 명령/도구:
      • 탐색: task(subagent_type="explore", description="Find character detail auth gate"), task(subagent_type="explore", description="Find country branch conventions")
      • 진단: lsp_diagnostics(ChatTabView.swift), lsp_diagnostics(HomeTabView.swift)
      • 빌드: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build, xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
      • 테스트 시도: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test, xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test
    • 결과:
      • 두 스킴 Debug 빌드 모두 BUILD SUCCEEDED
      • 테스트는 두 스킴 모두 Scheme ... is not currently configured for the test action으로 실행 불가(테스트 액션 미구성)
      • lsp_diagnostics는 SourceKit 환경에서 No such module 'Bootpay'를 보고하지만 실제 xcodebuild는 통과하여 컴파일 정상 확인
      • 수동 QA는 현재 CLI 환경에서 UI 탭/팝업 플로우 실행이 불가하여 미실행(실기기/시뮬레이터에서 KR/non-KR 분기 확인 필요)