강의

멘토링

커뮤니티

Inflearn Community Q&A

jyl088405481's profile image
jyl088405481

asked

Learning Spring Web Project with Code - Intermediate

Processing posts with attachments

첨부파일 트랜잭션

Written on

·

62

0

현재 코드가 board 컨트롤러에 있습니다.

List<AttachVO> attachVOList = upDownUtil.upload(files);

 

하지만 그 아래

boardService.register(boardVO);

코드에는 (서비스 코드에는 트랜잭션 처리가 되어있음)

 

여기서 register 할떄 오류가나면 트랜잭션 처리로 디비에는 등록되지않지만 파일이 로컬에 저장되는건 막을수가 없는건가요 ?

 

image.png

 

 

 

 

 

 

jspspringxmlspring-securityajaxmybatis

Answer 1

1

zk202308a5410님의 프로필 이미지
zk202308a5410
Instructor

말씀하신대로 서비스 쪽에서는 트랜잭션으로 처리되어서 문제가 발생하면 롤백되겠지만

 

파일 시스템쪽은 그렇지 않습니다.

 

이를 제대로 처리하려면 우선 서비스에서 예외를 던지게 설계하고 컨트롤러에서 예외가 발생했을 경우에는 업로드된 파일들을 삭제하시는 방법이 가장 깔끔할 것입니다.

 

아니면 서비스쪽에서 리턴 값을 주고 컨트롤러에서 원하는 리턴값이 안나오는 경우에 업로드된 파일들을 삭제하는 방법도 고려해 볼 수 있을 듯 하네요..

 

이와는 별개로 스케줄러를 이용해서 데이터베이스에 없는 파일들을 주기적으로 삭제하는 방법도 나쁘지 않습니다.

jyl088405481's profile image
jyl088405481

asked

Ask a question