Skip to content

[PRODUCT-195] [Refactor] 이미지 도메인 객체 도입 #96

@leegwichan

Description

@leegwichan

🏷️ 상위 작업 (Ticket Number)

PRODUCT-119

🚀 구현 내용

  • 이미지 도메인 객체를 추가하여, ExternalImageStorage의 책임을 분할한다.
public class Image {

   private final MultipartFile multipartFile;
   private final ImageDomain domain;

   public Image(MultipartFile multipartFile, ImageDomain domain) {
       // multipartFile 이미지 유효성 검사 (파일 확장자 검사, )
   }
}

@Getter
@Embeddable
public ImageKey {

      private final String imageKey;
      ....
}
public class ImageStorage {

       public ImageKey upload(Image image) {
               // 현재 PR의 ExternalImageStorage , CachePreSignedUrlStorage를 이용한 로직
       }
}

public class ExternalImageStorage {

       public ImageKey upload(Image image) {
           // 이미지 key 생성 로직
           // FileClient 를 통한 업로드
       }
}

public class FileClient { // 이름은 고민 중입니다...
        
        public String upload(MultipartFile file, String key) {
         // AWS SDK 의 s3Client를 이용해 파일 업로드
        }
}

📅 마감일

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions