Files
sodalive-android/docs/20260402_쿠폰등록해외사용자본인인증예외.md

4.5 KiB

쿠폰 등록 버튼 노출 및 해외 사용자 본인인증 예외 수정

작업 목표

  • 마이페이지 btnCoupon 터치 시 한국 사용자는 기존처럼 본인인증이 필요하고, 한국이 아닌 사용자는 본인인증 없이 쿠폰 등록 화면으로 이동하도록 수정한다.
  • 마이페이지 btnCoupon은 한국이 아닌 사용자에 한해 민감한 콘텐츠 보기 설정이 켜져 있을 때만 화면에 보이도록 수정한다.

체크리스트

  • AC1: countryCode == "KR" 이고 isAuth == false인 경우 기존처럼 인증 필요 토스트와 showAuthDialog()가 실행된다.
    • QA: 한국 사용자 분기에서 기존 인증 요구 동작 유지 코드 확인
  • AC2: countryCode != "KR" 이고 isAuth == false인 경우에도 CanCouponActivity로 이동한다.
    • QA: 쿠폰 버튼 분기가 isAuth || !isKoreanUser 조건으로 허용되는지 코드 확인
  • AC3: 이미 인증된 사용자는 국가와 무관하게 기존처럼 CanCouponActivity로 이동한다.
    • QA: 인증 완료 사용자의 쿠폰 등록 진입 동작 유지 코드 확인
  • AC4: 변경 파일 진단/검증 명령 결과를 기록한다.
    • QA: lsp_diagnostics, 관련 Gradle 검증 명령 결과 기록
  • AC5: countryCode != "KR" 이고 SharedPreferenceManager.isAdultContentVisible == true인 경우에만 btnCoupon이 화면에 보인다.
    • QA: 비한국 사용자에서 btnCoupon.root.visibility가 민감한 콘텐츠 보기 설정값에 따라 제어되는지 코드 확인
  • AC6: countryCode != "KR" 이고 SharedPreferenceManager.isAdultContentVisible == false인 경우 btnCoupon이 화면에 보이지 않는다.
    • QA: 비한국 사용자에서 쿠폰 버튼이 View.GONE 처리되는지 코드 확인
  • AC7: countryCode == "KR" 인 경우 쿠폰 버튼 노출과 기존 한국/비한국 클릭 분기는 유지된다.
    • QA: 한국 사용자에서는 버튼이 계속 보이고, 클릭 시 기존 인증 분기가 유지되는지 코드 확인

검증 기록

  • 2026-04-02
    • 무엇/왜/어떻게: MyPageFragment의 쿠폰 등록 버튼은 기존에 isAuth만으로 진입 가능 여부를 판단해서 해외 사용자도 본인인증이 강제됐다. 한국 사용자만 인증이 필요하도록 if (it.isAuth || !isKoreanUser) 조건으로 최소 수정했다.
    • 실행 명령/도구:
      • apply_patch(app/src/main/java/kr/co/vividnext/sodalive/mypage/MyPageFragment.kt)
      • read(app/src/main/java/kr/co/vividnext/sodalive/mypage/MyPageFragment.kt)
      • lsp_diagnostics(app/src/main/java/kr/co/vividnext/sodalive/mypage/MyPageFragment.kt)
      • ./gradlew :app:testDebugUnitTest :app:assembleDebug
    • 결과:
      • btnCoupon 분기가 it.isAuth || !isKoreanUser로 반영되어 비한국 사용자는 미인증 상태에서도 CanCouponActivity로 진입하게 됐다.
      • 한국 사용자이면서 미인증인 경우의 토스트 노출과 showAuthDialog() 호출 로직은 그대로 유지됐다.
      • .kt 파일 대상 lsp_diagnostics는 현재 환경에 Kotlin LSP가 없어 실행 불가(No LSP server configured for extension: .kt)였다.
      • :app:testDebugUnitTest, :app:assembleDebug 실행은 BUILD SUCCESSFUL로 완료됐다.
  • 2026-04-02
    • 무엇/왜/어떻게: 추가 요구사항에 따라 쿠폰 버튼 자체 노출은 한국이 아닌 사용자에게만 민감한 콘텐츠 보기 설정을 따르도록 조정했다. isKoreanUser면 항상 버튼을 보여 주고, 비한국 사용자는 SharedPreferenceManager.isAdultContentVisibletrue일 때만 버튼을 보이게 하며, 숨겨질 때는 return@observe로 클릭 설정도 중단했다.
    • 실행 명령/도구:
      • apply_patch(app/src/main/java/kr/co/vividnext/sodalive/mypage/MyPageFragment.kt)
      • read(app/src/main/java/kr/co/vividnext/sodalive/mypage/MyPageFragment.kt)
      • lsp_diagnostics(app/src/main/java/kr/co/vividnext/sodalive/mypage/MyPageFragment.kt)
      • ./gradlew :app:testDebugUnitTest :app:assembleDebug
    • 결과:
      • 비한국 사용자는 SharedPreferenceManager.isAdultContentVisible 값에 따라 btnCoupon.root.visibilityView.VISIBLE 또는 View.GONE으로 제어된다.
      • 한국 사용자는 쿠폰 버튼이 계속 노출되고, 기존 인증 기반 클릭 분기도 유지된다.
      • .kt 파일 대상 lsp_diagnostics는 현재 환경에 Kotlin LSP가 없어 실행 불가(No LSP server configured for extension: .kt)였다.
      • :app:testDebugUnitTest, :app:assembleDebug 실행은 BUILD SUCCESSFUL로 완료됐다.