Skip to content

refactor: 파일 공개 URL 공통화 및 file 도메인 분리 #80

Description

@jjunh33

어떤 기능인가요?

추가하려는 기능에 대해 간결하게 설명해주세요

파일·이미지의 공개 URL을 공통으로 조회할 수 있는 기능을 추가합니다. PR #69 리뷰에서 tnals0924님이 제안한 내용으로, ItemImageUrl처럼 응답마다 따로 만들던 URL 타입 대신 공통 FileUrl을 만들고, R2 연동(#59)은 이미 되어 있으니 key → 공개 URL 조립을 이 이슈에서 처리합니다.

📝 작업 상세 내용

  • core:domain:internal의 file 서브도메인을 core:domain:file 독립 모듈로 분리 (internal은 운영진 전용인데 file은 학생도 보는 이미지에 쓰여 위치가 안 맞음)
  • FileUrl(순수 URL)/FileInfo(파일명+URL) 신설
  • FileStorageClient/FileRepository/FileService에 key·id 기반 URL 조회 추가 (publicUrl(s), resolveUrl(s), resolveInfo(s))
  • infrastructure:db에 findAllByIdIn 배치 조회 추가 (N+1 방지)
  • infrastructure:client의 S3/Local 클라이언트에 공개 URL 조립 구현 + publicBaseUrl 설정값·환경변수 추가
  • 로컬 스토리지 공개 GET 서빙 추가 (정적 리소스 핸들러 + 인증 예외 경로)
  • api:admin-api의 internal/file 패키지를 file로 이동 (URL 경로는 유지)
  • 물품·공지 등 실제 응답 DTO에서 FileService를 호출해 공개 URL·파일명 채우기

📁 참고 자료 (선택)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions