2025/03 2

[DB] 트랜잭션 격리 수준과 부정합 문제 (2)

지난 포스팅에 이어 이번 글에서는 트랜잭션 격리 수준에 따른 부정합 문제에 대해 정리할 것이다.격리수준 별로 발생할 수 있는 부정합 문제들을 정리하고, 사례들을 직접 실습해볼 것이다.격리 수준과 부정합 문제DBMS의 부정합 문제는 다음과 같은 것들이 있다.1. Dirty Read : 하나의 트랜잭션에서 데이터의 상태를 변경한 후 커밋 또는 롤백하지 않은 상태에서 다른 트랜잭션이 변경된 데이터를 읽는 것을 의미한다.해당 트랜잭션이 롤백 되는 경우 치명적인 문제가 발생할 수 있다. 롤백이 이루어지기 전에 다른 트랜잭션이 변경된 데이터를 조회한 경우, 서로 바라보는 데이터의 상태에 차이가 발생하기 때문이다.2. Non-Repeatable Read : 하나의 트랜잭션 내에서 동일한 조건으로 조회를 시도했을 때 ..

[AMQP] RabbitMQ와 DLX/DLQ

개요AMQP (advanced message queuing protocol)란 메세지를 생산하는 Producer와 메세지를 소비하는 Consumer 사이에 메세지를 보관하는 Broker를 두어, 생산자와 소비자를 연결하는 네트워크 프로토콜을 의미한다. AMQP를 사용하는 대표적인 서비스로는 RabbitMQ가 있으며, 구성요소는 다음과 같다.Exchange : 메세지 생산자인 Producer는 메세지를 발행할 때 Queue가 아닌, Exchange에 메세지를 저장한다. Exchange에 저장된 메세지는 Binding Key를 사용하여 사전에 정의된 바인딩 규칙에 따라 적절한 Queue로 옮겨진다.Queue : Queue는 Exchange로 부터 이동해온 메세지들을 보관하는 저장소로서, 메세지 소비자인 Co..

CS 2025.03.24