개발 Q&A

제목 데이터베이스 트랜잭션 질문...
카테고리 DB
글쓴이 아주머니 작성시각 2019/11/25 15:39:18
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 9218   RSS

안녕하세요,

디비 트랜잭션할 때 질문이 있습니다..

 

예시를 1만건으로 썼지만, 쿼리시간 1초정도 걸리는거라고 생각해주시면 될 것 같아요.

상황은 A테이블에 데이터를 1만건 넣어져있고, 매 주마다 새로운 1만건+@이 들어오면 테이블 데이터가 통째로 교체가 되어야해요.

예1) A에 있던 1만건 삭제 후(DELETE), 새로운 1만건+@ 추가(INSERT).

 

예1 일 때, 조회하는 쪽에서 타이밍이 삭제->추가 사이에 조회하면 오류가 날 수 있어서, 여기서 궁금한것이

트랜잭션을 써서 begin -> 삭제(create) -> 추가(insert) -> done(rollback or commit) 을 하면

조회하는쪽에서는 done(commit or rollback)이 되기 전까진 이전 데이터가 보이고, commit 되는 순간 새 데이터가 조회되는게 맞는건지 궁금합니다.

 

단순히 여러개 쿼리를 다 성공하거나 되돌리거나 용도로만 쓰는게 맞는건지, 제가 상상한 저 상황처럼도 가능한건지..

테스트를 해보려는데 테스트상황 만들어보기도 쉽지가 않네요..

 

읽어주셔서 감사합니다.(__)

 

 다음글 https 적용 후,리디렉션된 url을 보니 갑자기 왠... (1)
 이전글 SSL(https) 적용 관련해서, 제가 생각하는게 맞... (2)

댓글

kaido / 2019/11/25 15:47:43 / 추천 0

네. 예상하신 대로 작동합니다.

이론적으로 로직상은 그렇습니다.

다만 서버 환경에 따라서 예상하지 못하게 작동할 수도있습니다.

이론적으로는 맞지만, 실제로는 테스트해 보셔야 합니다. 

[관련해서 이번에 한번 데였거든요 ㅋㅋ]

아주머니 / 2019/11/25 16:31:57 / 추천 0

로직 테스트는 시간이나 속도 관계없이 로직만 봐서 기대하는 테스트가 되는데, 디비 입력 트랜잭션은 테스트도 쉽지 않더라구요..

적어도 트랜잭션에 대한 예상작동이 맞다면, 기능에 대한 신뢰를 가지고 진행해봐야겠네요..

답변 감사합니다. (__)

kaido / 2019/11/25 16:50:27 / 추천 0

로직 테스트로 충분하게 검증만 제출 한다면 사실 백엔드 개발자가 할일은 다 한것입니다.

나머지는 인프라 관리 영역이긴 합니다.

트래픽 테스트 툴로는 스트레스 유닛 툴등이나 제이미터 같은것으로 상황을 설정해서 로그를 남기는 방법이 있습니다.

충분한 증거 자료만 있으면 니탓(?) 니스트에게 당할 염려는 줄어듭니다 ㅎㅎ