Open grayroom opened 3 years ago
회원가입시에 userAuth는 등록되었지만 userInfo가 등록되지 않는문제가 간헐적으로 발견됨. signup페이지의 스크립트와 AccountAPI에서의 validation이 문제가 아니라면, 트랜잭션을 통해 해결해야할듯.
서버 로그 첨부 바람 @grayroom
트랜잭션은 이미 아이솔레이션 레벨 설정 해놔서 문제 없음.
- 회원탈퇴등에 의해 회원정보/작성글/댓글 등을 삭제하는 경우 -트랜잭션으로 해결할 대상 아님.
- 게시글/첨부파일/댓글/투표 데이터를 동시에 삭제하는 경우 -아이솔레이션 레벨이 설정되어 있을 뿐만 아니라 트랜잭션 내에서 쿼리가 한 개 밖에 없어서 발생할 일도 없음 (트랜잭션처리 대상이 아님).
- 게시글을 관리자와 작성자가 동시에 수정하는 경우 -이 또한 트랜잭션처리 대상도 아니고 처리하면 db성능이 박살남.
관련 개선사항
- 게시글을 삭제하는 경우, 첨부파일/댓글/투표 데이터를 삭제하지 않음. 특히 Q&A 게시글의 경우, 답변도 삭제할지 결정해야할듯. 아무튼 게시글 관련 데이터를 삭제하지 않아서 정식 서비스시에 서버/DB 저장용량이 부족해질 위험성이 있음. -이건 확실히 초기 설계부터 용량제한에 대해서 지적한 부분인데 흠..텍스트보단 미디어데이터의 저장공간 소모가 크기 때문에 삭제된 게시글에 대해 첨부파일을 삭제하는 로직이 필요해보임. +게시글은 보존 때문에 2년? 최대 5년 정도 지난 게시글에 대해 데이터 날려버리는것도 괜찮아보임. 답글, 댓글, 투표도 같이 날리는걸로.
유저 auth info 입력 박살난건 다시 구현하겠음. 망할 노트북 시foot
연속적으로 또는 동시에 DB에 접근하는 작업을 수행할 때, 악의적인 의도에 의해서든 에러에 의해서든 쿼리가 완전히 실행되지 않을 수 있음. 이 때, DB무결성을 위해서 서비스에 트랜잭션 처리를 해 주어야 할 것 같음. 우선 생각나는건 아래 경우들...
트랜잭션이 요구되는 상황
관련 개선사항