-
Notifications
You must be signed in to change notification settings - Fork 0
[BE] 트랜잭션은 쿼리문만 다루지, 스토리지는 신경 쓰지 않아요
Kyungmi, Park edited this page Apr 4, 2024
·
4 revisions
- 클라이언트 측에서 게시글/타임라인/유저 정보 수정 시 변경된 내용만 파악하여 전달해주기에 에너지가 많이 든다고 말씀하심!
- 따라서 update용 메서드는 부분만 수정하는 PATCH가 아니라, 전체 필드를 받아들이는 PUT으로 결정!
이 때문에 크나큰 이슈가 발생하는데…
- 예를 들어 타임라인 수정 작업에는
- 실제 id에 해당하는 타임라인 유무 확인을 위한 SELECT 작업
- 타임라인 UPDATE 작업
- 게시글 썸네일 UPDATE 작업
- 총 3가지 DB 작업이 필요하므로, 무결성 유지를 위해 트랜잭션이 필요함
- 당연히 오브젝트 스토리지에는 트랜잭션 적용 안 됨!
- 만약 사진을 오브젝트에 스토리지에 저장하고, 새로운 이미지 경로로 타임라인을 update한 다음에, 게시글의 썸네일을 update 과정에서 에러가 난다면
- 타임라인에서 경로가 udpate 됐던 쿼리문은 취소가 되지만
- 오브젝트 스토리지에는 이미 기존 이미지가 삭제되고, 새로운 이미지가 업로드된 채로 복구되지 않음,,,^^;;
https://github.com/boostcampwm2023/iOS07-traveline/pull/392
참고해주세영... (나중에 정리하겠스빈다..)