강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

jyl08840님의 프로필 이미지
jyl08840

작성한 질문수

코드로 배우는 스프링 웹 프로젝트 - Intermediate

첨부파일이 있는 게시물 등록 처리

첨부파일 트랜잭션

작성

·

61

0

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

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

 

하지만 그 아래

boardService.register(boardVO);

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

 

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

 

image.png

 

 

 

 

 

 

답변 1

1

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

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

 

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

 

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

 

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

 

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

jyl08840님의 프로필 이미지
jyl08840

작성한 질문수

질문하기