강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

신나는 라이언님의 프로필 이미지
신나는 라이언

작성한 질문수

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

4-3. 그런데, 여러 트랜잭션이 붙으면?

트랜잭션 커밋 관련 질문드립니다.

작성

·

4

0

4-3 강의를 들으며 궁금한게 있어서 질문드립니다.

은행 예시에서 언커밋 상태가 존재하기때문에 대출 심사 과정에서 부정확한 정보를 가져왔는데, 처음부터 언커밋 업데이트를 안하면 안되나요?

진짜 출금된게 아닌 상황이니까 그냥 그대로 천만원으로 두면 대출 심사 과정에서도 잘못 조회하는 경우가 없지않은지 궁금해서 여쭤봅니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 신나는 라이언님.

트랜잭션에서 언커밋된 데이터를 다룰 때 발생할 수 있는 문제에 대해 궁금하신 것 같습니다. 이를 해결하기 위해 데이터베이스에서 사용하는 트랜잭션 격리 수준을 이해하는 것이 중요합니다.

트랜잭션 격리 수준

  1. 언커밋 상태:

    • 트랜잭션이 진행 중일 때 데이터는 ‘언커밋 상태’에 있으며, 다른 트랜잭션에서 이를 읽을 경우 ‘더티 리드’ 문제가 발생할 수 있습니다.
    • 언커밋된 상태에서는 데이터의 일관성이 보장되지 않아 잘못된 정보가 전달될 수 있습니다. 이러한 문제를 방지하기 위해 대부분의 데이터베이스는 기본적으로 읽기 작업에서 커밋된 데이터만 읽도록 제공합니다.
  2. 격리 수준:

    • READ UNCOMMITTED: 언커밋된 변경 사항을 읽을 수 있습니다. 발생할 수 있는 문제: 더티 리드.
    • READ COMMITTED: 다른 트랜잭션이 커밋한 변경 사항만 읽을 수 있습니다. 대부분의 데이터베이스에서 기본 설정.
    • REPEATABLE READ: 트랜잭션이 시작된 시점에서의 데이터 상태를 그대로 유지, 다른 트랜잭션의 변경을 읽지 않음.
    • SERIALIZABLE: 대부분의 격리 수준 중 가장 엄격하며 완전한 일관성을 보장합니다.

대출 심사나 중요한 금융 프로세스에서는 대개 READ COMMITTED 이상의 격리 수준을 적용하여 정확한 데이터 읽기를 보장합니다. 따라서 트랜잭션 중에 데이터가 언커밋 상태로 남아있지 않게 관리되고, 데이터 일관성을 유지하기 위한 설계를 고려해야 합니다.

참고 자료

비슷한 질문이 트랜잭션 격리성의 실제 사례와 적용 가이드에서 다루어지고 있습니다. 이를 통해 트랜잭션에서 언커밋 데이터 문제를 맞닥뜨렸을 때의 실질적인 접근 방식을 이해할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

신나는 라이언님의 프로필 이미지
신나는 라이언

작성한 질문수

질문하기