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

근것님의 프로필 이미지
근것

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. Transaction을 간단히 설명해 주세요. (외 2문제) [ ACID ]

동시성 제어와 트랜잭셩 격리 수준

해결된 질문

작성

·

477

1

동시성제어를 통해 갱신손실을 미리 막을 수 있다고 하셨는데 여기서 동시성 제어 방식 중 lock 기법으로 설명해주신 거 같습니다.

궁금한 점은 트랜잭션 격리 수준이랑 동시성 제어와의 연관성이 어떻게 이뤄지는지 궁금합니다.

답변 1

0

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 seyoung5744님. 답이 많이 늦었습니다ㅜ 죄송합니다.

질문에 대한 답을 드릴게요! 동시성 제어와 트랜잭션의 격리 수준은 밀접한 관련이 있습니다. 동시성 제어는 여러 트랜잭션을 동시에 처리할 때 데이터의 일관성을 보장하는 방법을 제공하고, 트랜잭션의 격리 수준은 한 트랜잭션에서 다른 트랜잭션이 변경하거나 생성한 데이터를 어느 정도 보거나 영향을 받을 수 있는지를 결정합니다.

SQL 표준에서는 4개의 트랜잭션 격리 수준이 정의되어 있습니다:

  1. READ UNCOMMITTED(가장 낮은 격리 수준)

  2. READ COMMITTED( 다른 트랜잭션에서 이미 커밋된 데이터만 볼 수 있다)

  3. REPEATABLE READ

  4. SERIALIZABLE.(가장 높은 격리 수준으로, 트랜잭션들이 순차적으로 실행되는 것처럼 보인다. 이 격리 수준에서는 동시성 제어가 가장 엄격하게 적용됩니다. )

동시성 제어 메커니즘 중 하나인 '잠금(lock)'은 위에 언급해드린 각각의 격리 수준을 지원하기 위해 사용된다고 생각하시면 됩니다. 어떤 수준의 격리가 필요한지, 어떤 동시성 문제가 발생할 수 있는지를 고려하여 트랜잭션의 격리 수준을 적절히 선택해야 합니다.

질문에 대한 답이 됐을까요!!?

더 궁금하신점이 있다면 자유롭게 질문 주세요 :)

근것님의 프로필 이미지
근것

작성한 질문수

질문하기