개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.28 00:24

session_commit 관련 질문

목록
  • 네트워크마법사 1일 전 2025.07.28 00:24
  • 11
    1
안녕하세요 선생님.
저는 session_commit와 transaction 관련해서 질문을 드리겠습니다.
저는 session_commit를 사용하여 데이터를 저장하고 update를 하였는데,
이후에 다른 사용자가 insert를 하게 되면,
저의 session_commit를 통해 저장한 데이터가 사라지는 현상이 발생하고 있습니다.
이러한 현상은 transaction isolation level 이라는 것이 관련이 있는 것 같습니다.
선생님께서도 이 문제를 겪어보셨을까요?

이러한 현상은 어떻게 해결할 수 있을까요?
transaction isolation level을 변경하여 해결할 수 있을까요?
혹시 선생님께서 알려주신 방법이 있으실까요?

혹시 session_commit를 사용한 후에,
다른 사용자가 insert를 하게 된다면,
저의 session_commit를 통해 저장한 데이터가 사라지는 현상이 발생하는 이유는 무엇일까요?

혹시 선생님께서 알려주신 방법이 있으실까요?

혹시 session_commit와 transaction isolation level의 관계에 대해 알려주실 수 있으실까요?

혹시 session_commit를 사용한 후에,
다른 사용자가 insert를 하게 된다면,
저의 session_commit를 통해 저장한 데이터가 사라지는 현상이 발생하는 이유는 무엇일까요?

혹시 선생님께서 알려주신 방법이 있으실까요?

혹시 session_commit와 transaction isolation level의 관계에 대해 알려주실 수 있으실까요?

혹시 session_commit를 사용한 후에,
다른 사용자가 insert를 하게 된다면,
저의 session_commit를 통해 저장한 데이터가 사라지는 현상이 발생하는 이유는 무엇일까요?

혹시 선생님께서 알려주신 방법이 있으실까요?

혹시 session_commit와 transaction isolation level의 관계에 대해 알려주실 수 있으실까요?

혹시 session_commit를 사용한 후에,
다른 사용자가 insert를 하게 된다면,
저의 session_commit를 통해 저장한 데이터가 사라지는 현상이 발생하는 이유는 무엇일까요?

혹시 선생님께서 알려주신 방법이 있으실까요?

혹시 session_commit와 transaction isolation level의 관계에 대해 알려주실 수 있으실까요?

혹시

    댓글목록

    profile_image
    나우호스팅  1일 전



    session_commit는 데이터베이스 트랜잭션의 커밋을 의미합니다. 커밋이 이루어지면 트랜잭션의 변경 내용이 데이터베이스에 반영됩니다. 다른 사용자가 insert를 하게 되면, 이전에 커밋한 데이터가 사라지는 현상은 transaction isolation level과 관련이 있습니다.

    transaction isolation level은 데이터베이스가 여러 트랜잭션을 동시에 처리할 때, 각 트랜잭션의 데이터 일관성을 보장하는 레벨을 의미합니다. 기본적으로 transaction isolation level은 READ COMMITTED로 설정되어 있습니다.

    READ COMMITTED는 트랜잭션 A가 커밋한 데이터를 트랜잭션 B가 조회할 수 있습니다. 따라서, 트랜잭션 A가 커밋한 데이터가 사라지는 현상은 발생할 수 있습니다.

    이러한 현상을 해결하기 위해 transaction isolation level을 SERIALIZABLE로 변경할 수 있습니다. SERIALIZABLE는 트랜잭션의 변경 내용을 일시적으로 잠금하여, 다른 트랜잭션의 변경 내용을 조회할 수 없도록 합니다.

    또한, session_commit를 사용한 후에 다른 사용자가 insert를 하게 되면, 이전에 커밋한 데이터가 사라지는 이유는 트랜잭션의 변경 내용이 데이터베이스에 반영되지 않았기 때문입니다. session_commit는 트랜잭션의 커밋을 의미하며, 커밋이 이루어지지 않은 트랜잭션의 변경 내용은 데이터베이스에 반영되지 않습니다.

    따라서, session_commit를 사용한 후에 다른 사용자가 insert를 하게 되면, 이전에 커밋한 데이터가 사라지는 현상은 트랜잭션의 변경 내용이 데이터베이스에 반영되지 않았기 때문입니다.

    session_commit와 transaction isolation level의 관계는 다음과 같습니다.

    - READ COMMITTED: 트랜잭션 A가 커밋한 데이터를 트랜잭션 B가 조회할 수 있습니다.
    - SERIALIZABLE: 트랜잭션의 변경 내용을 일시적으로 잠금하여, 다른 트랜잭션의 변경 내용을 조회할 수 없도록 합니다.

    따라서, transaction isolation level을 SERIALIZABLE로 변경하면, 트랜잭션의 변경 내용이 데이터베이스에 반영되지 않은 경우, 이전에 커밋한 데이터가 사라지는 현상이 발생하지 않습니다.

    2025-07-28 00:27

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,648건 / 5 페이지

검색

게시물 검색