Files
sodalive-backend-spring-boot/docs/20260223_크리에이터상세정보조회api추가.md

2.2 KiB

크리에이터 상세정보 조회 API 추가 작업 계획

  • ExplorerController에 크리에이터 상세정보 조회 엔드포인트 추가
  • ExplorerService에 상세정보 조회 비즈니스 로직 추가
  • ExplorerQueryRepository에 데뷔일/활동요약 조회 쿼리 추가
  • 응답 DTO 추가 및 Member SNS URL 매핑 연결
  • 3차 수정: 미래 라이브만 있는 크리에이터의 음수 D+ 노출 방지
  • 정적 진단/테스트/빌드 검증 및 결과 기록

검증 기록

  • 무엇을:
    • 1차 구현: 크리에이터 상세정보 조회 API(/explorer/profile/{id}/detail)와 응답 DTO를 추가하고, 데뷔일(라이브 beginDateTime/콘텐츠 releaseDate 최솟값), D+N, 활동요약, SNS URL 반환을 구현했다.
    • 2차 수정: 상세 조회에 차단 관계 검사를 추가하고, 활동요약의 contentCount를 오픈된 콘텐츠(releaseDate <= now) 기준으로 집계하도록 기존 쿼리를 보정했다.
    • 3차 수정: 라이브 데뷔 후보 조회에서 미래 beginDateTime을 제외하고, D+ 계산 결과가 음수인 경우 ""을 반환하도록 상세 조회 로직을 보정했다.
  • 왜:
    • 1차 구현: 탐색 화면에서 크리에이터 기본 정보·활동 통계·데뷔 정보·SNS를 한 번에 조회할 수 있어야 했다.
    • 2차 수정: 차단 관계에서도 상세정보가 노출되는 우회가 있었고, 예약 공개 콘텐츠가 포함되어 요구사항의 “오픈한 콘텐츠 수”와 불일치할 수 있었다.
    • 3차 수정: 오픈된 콘텐츠 없이 미래 예약 라이브만 있을 때 D+-N이 내려가 요구사항의 “오늘 기준 데뷔일로부터 며칠째(D+N)” 표현과 불일치했다.
  • 어떻게:
    • 1차 구현/2차 수정 모두 Kotlin LSP 부재로 lsp_diagnostics는 불가를 확인했다.
    • 1차 구현 시점과 2차 수정 시점에 각각 ./gradlew ktlintCheck test build를 실행해 정적검사/테스트/빌드 성공(Exit code 0)을 확인했다.
    • 3차 수정 시점에도 Kotlin LSP 부재로 lsp_diagnostics는 불가를 확인했고, ./gradlew ktlintCheck test build를 실행해 정적검사/테스트/빌드 성공(Exit code 0)을 확인했다.