You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
post 작성시 요구사항
문제 발생
DB에 존재하지않던 해시태그로 동시에 글을 작성할경우 2개가 DB에 들어가서 해시태그가 unique제약이 걸려있기때문에 예외가 발생할것이다. 이 경우 어떻게 처리하는것이 깔끔할까?
tx 1
read hashtag => 존재하지않음
tx 2
read hashtag => 존재하지않음
tx 1
insert hashtag 성공후 커밋
tx 2
insert hashtag => 실패처리
문제발생 2
글 수정시 해시태그를 DB에서 삭제해야하는 순간 동시에 해시태그 조회하는 요청이온다면? => 문제가 되려나?
글 수정시 새롭게 추가된 해시태그가 DB에없어서 insert하려는순간, 해당 해시태그가 삽입된다면? => 요것도 같은맥락인듯?
락 관련으로 해결해야하나? 라는 생각이 가장먼저 들었고 학습후 락으로 해결하지않아도 될수있는 부분이라는걸 알게되었다.
생각 과정
분명히 동시성문제가 발생할수있지만 정말 가끔가다 한번씩 발생할 이슈라고 생각했습니다.
그렇게 생각한 이유
해시태그는 직접 DB에 저장안되더라도 사용자가 입력한 post는 DB에 작성되면 좋겠다는 요구사항이 생기면 실패 처리를 직접 해줘야 하기때문에 실패처리를 어떻게 해주는게 좋을지를 생각해 봐야했습니다.
여러 자료를 참고해봤을땐, 빈번하게 발생하는일은 아니기때문에 DataIntegrityViolationException 예외를 그냥 예외핸들러에 던져서 로그찍고 처리하는방법도 괜찮을것같은데 조금더 고민해봐야겠습니다.
참고 : https://www.inflearn.com/questions/59250/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-unique-index-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%80%EC%9E%A5%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4
https://kth990303.tistory.com/451
Beta Was this translation helpful? Give feedback.
All reactions