Files
sodalive-backend-spring-boot/docs/20260619_cdn_url_공통화/prd.md

1.6 KiB

PRD: CDN URL 변환 공통화

1. Overview

v2 서비스에서 중복 선언된 String?.toCdnUrl() 확장 함수를 공통 유틸로 분리한다.

2. Problem

  • CreatorChannelHomeQueryService, CreatorChannelLiveQueryService, CreatorChannelAudioQueryService, CreatorRankingQueryService에 유사한 CDN URL 변환 로직이 private 함수로 중복되어 있다.
  • ranking 구현은 절대 URL을 그대로 유지하지 않아 다른 3곳과 동작이 다르다.

3. Goals

  • 4개 서비스가 하나의 공통 toCdnUrl 함수를 사용한다.
  • null 또는 blank 입력은 null을 반환한다.
  • http://, https:// 절대 URL은 그대로 반환한다.
  • 상대 path는 cloudFrontHost/path 형식으로 반환한다.

4. Non-Goals

  • QueryDSL 조회 로직이나 공개 API 스키마는 변경하지 않는다.
  • 기존 CDN host 설정 방식은 변경하지 않는다.
  • 다른 레거시 CDN URL 조합 코드는 이번 범위에서 정리하지 않는다.

5. Core Features

Feature A: 공통 CDN URL 변환

Requirements

  • kr.co.vividnext.sodalive.v2 하위 공통 패키지에 재사용 가능한 함수를 둔다.
  • 기존 서비스 매핑 흐름은 유지하고 private 중복 함수만 제거한다.

Edge Cases

  • null, "", " " 입력은 null이어야 한다.
  • https://..., http://... 입력은 host를 덧붙이지 않아야 한다.
  • "profile/a.png" 입력은 "https://cdn.test/profile/a.png"가 되어야 한다.

6. Technical Constraints

  • Kotlin 확장 함수로 구현한다.
  • 테스트는 JUnit 5로 작성한다.