Open seokjin8678 opened 5 months ago
이미지 URL을 가진 엔티티들에 모든 이미지 URL을 반환하는 메서드를 추가합니다.
이유는 이미지 URL을 사용하는 클라이언트가 대상으로 하는 엔티티의 이미지 URL에 대해 강한 결합을 가지고 있기 때문입니다.
public class AsyncSchoolUploadImagesStatusChangeEventListener { ... @TransactionalEventListener(value = SchoolCreatedEvent.class, phase = TransactionPhase.AFTER_COMMIT) public void changeAttachedStatusSchoolImagesEventHandler(SchoolCreatedEvent event) { School school = event.school(); Long schoolId = school.getId(); List<String> imageUris = List.of(school.getBackgroundUrl(), school.getLogoUrl()); uploadFileStatusChangeService.changeAttached(schoolId, SCHOOL, imageUris); } @TransactionalEventListener(value = SchoolUpdatedEvent.class, phase = TransactionPhase.AFTER_COMMIT) public void changeRenewalStatusSchoolImagesEventHandler(SchoolUpdatedEvent event) { School school = event.school(); Long schoolId = school.getId(); List<String> imageUris = List.of(school.getBackgroundUrl(), school.getLogoUrl()); uploadFileStatusChangeService.changeRenewal(schoolId, SCHOOL, imageUris); } }
학교가 가진 이미지의 상태를 변경하는 클래스인 AsyncSchoolUploadImagesStatusChangeEventListener의 메서드를 보면, getBackgroundUrl(), getLogoUrl() 같은 메서드를 호출하는 것을 볼 수 있습니다.
AsyncSchoolUploadImagesStatusChangeEventListener
getBackgroundUrl()
getLogoUrl()
그런데 굳이 이런 이미지의 구체적인 형식을 클라이언트는 알 필요가 없습니다. (코드의 중복도 생기는건 덤이구요 😂)
따라서 이미지 URL을 가지는 엔티티에 대해 다음과 같은 메서드를 추가해서 사용하면 좋을 것 같습니다.
public class School { ... public List<String> getImageUrls() { return List.of(backgroundUrl, logoUrl); } ... }
20분
✨ 세부 내용
이미지 URL을 가진 엔티티들에 모든 이미지 URL을 반환하는 메서드를 추가합니다.
이유는 이미지 URL을 사용하는 클라이언트가 대상으로 하는 엔티티의 이미지 URL에 대해 강한 결합을 가지고 있기 때문입니다.
학교가 가진 이미지의 상태를 변경하는 클래스인
AsyncSchoolUploadImagesStatusChangeEventListener
의 메서드를 보면,getBackgroundUrl()
,getLogoUrl()
같은 메서드를 호출하는 것을 볼 수 있습니다.그런데 굳이 이런 이미지의 구체적인 형식을 클라이언트는 알 필요가 없습니다. (코드의 중복도 생기는건 덤이구요 😂)
따라서 이미지 URL을 가지는 엔티티에 대해 다음과 같은 메서드를 추가해서 사용하면 좋을 것 같습니다.
⏰ 예상 소요 시간
20분