Files
sodalive-backend-spring-boot/docs/20260328_콘텐츠조회파라미터제거및비로그인기본값고정.md

2.9 KiB

20260328 콘텐츠 조회 파라미터 제거 및 비로그인 기본값 고정

목적

  • 모든 API에서 isAdultContentVisible, contentType 요청 파라미터를 제거한다.
  • 비로그인 사용자는 항상 isAdultContentVisible = false, contentType = ContentType.ALL로 처리한다.
  • 로그인 사용자는 기존과 동일하게 MemberContentPreference 기반 로직을 유지한다.

구현 체크리스트

  • isAdultContentVisible, contentType를 받는 잔여 API 시그니처를 모두 제거한다.
    • QA: grep("@RequestParam(\"isAdultContentVisible\"|@RequestParam(\"contentType\")") 결과가 0인지 확인
  • 연관 서비스 메서드 시그니처/호출부를 정리한다.
    • QA: compileKotlin 성공으로 시그니처 불일치가 없는지 확인
  • 비로그인 기본값을 false/ALL로 고정한다.
    • QA: 익명 분기 ViewerContentPreference(false/ALL) 코드 확인 + 관련 테스트 통과
  • 로그인 분기는 기존 memberContentPreferenceService.resolveForQuery(member = member) 흐름을 유지한다.
    • QA: 관련 컨트롤러/서비스에서 로그인 분기 호출 유지 확인
  • 회귀 검증을 수행한다.
    • QA: ./gradlew test, ./gradlew build 성공

구현 완료 후 기록

1차 구현

  • 무엇을:
    • 잔여 API 파라미터를 전부 제거했다.
      • HomeController, LiveApiController, LiveRoomController, AudioContentController, AudioContentMainTabHomeController
    • 연관 서비스 시그니처와 호출부를 정리했다.
      • HomeService, LiveApiService, LiveRoomService
    • 비로그인 분기 기본값을 ViewerContentPreference(isAdultContentVisible = false, contentType = ContentType.ALL, isAdult = false)로 고정했다.
  • 왜:
    • 요청사항이 “모든 API에서 해당 파라미터 제거 + 비로그인 기본값 고정 + 로그인 기존 동작 유지”로 명확했기 때문이다.
  • 어떻게:
    • 명령:
      • ./gradlew compileKotlin compileTestKotlin
      • grep("@RequestParam(\"isAdultContentVisible\"|@RequestParam(\"contentType\")", include="*Controller.kt")
      • ast-grep: ViewerContentPreference(isAdultContentVisible = false, contentType = ContentType.ALL)
      • ./gradlew test
      • ./gradlew build
      • lsp_diagnostics(수정된 .kt 파일 대상)
    • 결과:
      • 컴파일 성공(compileKotlin, compileTestKotlin).
      • 컨트롤러의 @RequestParam("isAdultContentVisible"), @RequestParam("contentType") 검색 결과 0건.
      • 비로그인 기본값 고정 분기 5개 위치 확인(HomeService, LiveApiService, LiveRoomService, AudioContentController, AudioContentMainTabHomeController).
      • ./gradlew test 성공.
      • ./gradlew build 성공.
      • 현재 환경은 Kotlin LSP 서버 미구성으로 lsp_diagnostics(.kt) 실행 불가였고, Gradle 컴파일/테스트/빌드로 정합성 검증 완료.