[BE] Image 패키지 리팩터링
junpakPark opened this issue · comments
🛠️ 작업 대상
- Image 패키지
- 흩어져있는 Image 관련 로직이나 클래스를 Image 패키지로 모은다.
- Image 패키지 내의 각 클래스들이 적절한 레이어에 위치하도록 이동시킨다.
- 해당 패키지를 의존하는 모든 패키지
- S3 Upload 과정과 DB Transaction 과정을 분리하기 위해 이벤트를 사용한다.
- S3 업로드 과정의 경우, RDB가 아니기 때문에 트랜잭션 경계 설정 내부에 있어도 Rollback이 되지 않는다.
- S3 업로드 과정이 트랜잭션 경계 설정 내부에 있는 경우 트랜잭션이 지연되는 결과를 가져온다.
- S3 Upload 과정과 DB Transaction 과정을 분리하기 위해 이벤트를 사용한다.
✅ 작업 내용
Image 패키지 내부 리팩터링
- Image 패키지 레이어 재분배
- Image 클래스 common에서 Image 패키지로 이동
- 불필요 의존성 제거
- domain 리팩터링
- 관련 커스텀 예외 구현
- Infrastructure 리팩터링
- tempFile 대신 InputStream을 이용한 방식으로 변경
- try-with-resource 적용
- 불필요 클래스 삭제
Image 패키지 의존 Service 리팩터링
- 스프링 이벤트를 이용하여, S3 Upload 과정과 DB Transaction 과정 분리
- 패키지별 Info 수정 시, 사진 변경 기능 구현
📎 참고 자료
⏰ 추정 시간
낙관적 : 8시간
비관적 : 16시간