Files
sodalive-ios/docs/20260327_제외API콘텐츠설정파라미터제거.md

4.6 KiB

20260327 제외 API 콘텐츠 설정 파라미터 제거

개요

  • PATCH /member/content-preference를 제외한 모든 API 요청에서 isAdultContentVisible, contentType 파라미터를 제거한다.
  • 콘텐츠 설정 동기화 API(PATCH /member/content-preference)의 요청/응답 구조와 호출 흐름은 유지한다.

요구사항 요약

  • 유지 대상 API: PATCH /member/content-preference
  • 제거 대상: 유지 대상 API를 제외한 나머지 API 요청 파라미터의 isAdultContentVisible, contentType

완료 기준 (Acceptance Criteria)

  • AC1: PATCH /member/content-preference 외 API 정의에서 isAdultContentVisible/contentType 요청 파라미터가 제거된다.
  • AC2: 제거에 따라 연쇄되는 Repository/Request 모델 시그니처가 정합성 있게 정리된다.
  • AC3: PATCH /member/content-preference 요청/응답 필드(isAdultContentVisible, contentType)는 유지된다.
  • AC4: 정적 진단/빌드/수동 QA(검색 검증) 결과가 통과 또는 사유와 함께 기록된다.

구현 체크리스트

  • API 타깃(HomeApi, LiveApi, SearchApi, ContentApi, SeriesApi, SeriesMainApi, ExplorerApi) 파라미터 제거
  • 연관 Repository 메서드 시그니처 및 호출부 인자 정리
  • PATCH /member/content-preference 체인(UserApi, UpdateContentPreferenceRequest/Response, ContentSettingsViewModel) 유지 확인
  • 진단/빌드/수동 QA 실행
  • 검증 기록 문서화

검증 계획

  • 정적 진단:
    • lsp_diagnostics on modified Swift files
  • 빌드:
    • 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
  • 수동 QA:
    • grep 기반으로 /member/content-preference PATCH 외 API 요청 파라미터 잔존 여부 확인

검증 기록

  • 일시: 2026-03-27

    • 무엇: 제외 API 콘텐츠 설정 파라미터 제거 작업 계획 문서 작성
    • 왜: 변경 범위와 완료 기준을 선행 고정해 요청사항을 정확히 반영하기 위함
    • 어떻게: docs 규칙에 맞춰 완료 기준/체크리스트/검증 계획 수립
    • 실행 명령/도구: apply_patch(문서 생성)
    • 결과: 구현 계획 문서 생성 완료
  • 일시: 2026-03-27

    • 무엇: PATCH /member/content-preference 제외 API의 isAdultContentVisible/contentType 요청 파라미터 제거
    • 왜: 콘텐츠 설정 PATCH API를 제외한 다른 API에서 두 파라미터를 전송하지 않도록 하기 위함
    • 어떻게:
      • API 타깃(HomeApi, LiveApi, SearchApi, ContentApi, SeriesApi, SeriesMainApi, ExplorerApi) case 시그니처와 task 파라미터 딕셔너리에서 두 필드를 제거
      • 연관 Repository 호출부에서 UserDefaults 기반 인자 전달 제거
      • GetRoomListRequestisAdultContentVisible 필드 및 LiveViewModel 생성 인자 제거
      • PATCH /member/content-preference 체인(UserApi.updateContentPreference, UpdateContentPreferenceRequest/Response) 유지 검증
    • 실행 명령/도구:
      • 정적 진단: 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
      • 수동 QA(검색 검증):
        • grep("isAdultContentVisible\\s*:", path="SodaLive/Sources")
        • grep("contentType\\s*:", path="SodaLive/Sources")
        • grep("updateContentPreference|member/content-preference", path="SodaLive/Sources/User/UserApi.swift")
    • 결과:
      • 빌드: SodaLive, SodaLive-dev Debug 빌드 모두 BUILD SUCCEEDED
      • 테스트: 두 스킴 모두 Scheme ... is not currently configured for the test action으로 실행 불가(테스트 액션 미구성)
      • lsp_diagnostics: SourceKit 환경에서 외부 모듈(Moya, CombineMoya) 해석 한계로 모듈 미해결 에러가 반환됨
      • 수동 QA: isAdultContentVisible/contentType는 설정 동기화 체인과 응답 모델/화면 상태에만 남고, /member/content-preference PATCH 외 API 요청 파라미터에서는 제거됨