목록매일메일 (63)
종식당

🐪 Phantom Read란?Phantom Read는 트랜잭션이 동일한 조건의 쿼리를 반복 실행할 때, 나중에 실행된 쿼리에서 처음에는 존재하지 않았던 새로운 행이 나타나는 현상을 말한다.이는 주로 읽기 일관성(Read Consistency)을 유지하는 과정에서 발생할 수 있는 문재로, 데이터의 삽입이나 삭제가 다른 트랜잭션에 의해 이루어질 때 발생한다.-- 트랜잭션 A 시작START TRANSACTION;-- 트랜잭션 A 첫 번째 조회SELECT * FROM orders WHERE amount > 150;-- 트랜잭션 B 시작START TRANSACTION;-- 트랜잭션 B 새로운 행 삽입INSERT INTO orders (customer_id, amount) VALUES (4, 250);-- 트랜잭..

☘️ MVCC(Multi-Version Concurrency Control)MVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식이다. 각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않는다. 데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있다. 트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못한다. 또한, 읽기 작업 시 잠금을 사용하지 않아 높은 동시성을 제공한다. 읽기 작업이 잠금에 의해 지연되지 않아, 읽기 중심의 애플리케이션에서 우수한 성능을 보인다. 그리고 쓰기 작업과의 충돌이 줄어든다. 하지만 여러 버전의 데이터를 유지해..

🏦 멱등성연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 멱등성이라고 한다.HTTP메서드의 멱등성은 동일한 요청을 한번 보내는 것과 여러 번 보내는 것이 서로 동일한 효과를 지니며, 서버의 상태도 동일하게 남을 경우에 멱등하다고 이야기할 수 있다.대표적으로 멱등한 메서드는 GET, HEAD, PUT, DELETE, TRACE, OPTIONS가 있다.멱등성은 어떻게 활용될 수 있나요? 🤔모종의 이유로 전송 커넥션이 끊어졌을 때, 멱등성은 클라이언트가 다시 같은 요청을 해도 되는가에 대한 판단 근거가 될 수 있다. 멱등하다면 요청을 재시도할 때 같은 서버의 상태를 보장하기 때문에 문제가 없다. 반면, 멱등하지 않다면 재시도 요청 시 중복 요청을 보내 문제를 발생시킬 수 있다.예를 들어, 사용자가..

애플리케이션과 데이터베이스가 통신을 하기 위해서는 데이터베이스 커넥션이 필요하다.🎑 데이터베이스 커넥션의 생애주기데이터베이스 드라이버를 사용하여 데이터베이스에 연결데이터 읽기/쓰기를 위한 TCP소켓 열기소켓을 통한 데이터 읽기/쓰기연결 종료소켓 닫기커넥션 풀이 없다면 애플리케이션에서 데이터베이스에 접근해야 하는 요청을 할 때마다 커넥션을 새로 생성하여 연결하고 해제하는 과정을 반복해야 한다. 이 과정은 비용이 상당히 많이 들기 때문에 요청의 응답시간이 길어진다.또 동시에 많은 요청이 들어올 경우 매번 새로운 커넥션을 생성하게 되는데, 데이터베이스의 최대 연결 수를 초과할 수 있다. 데이터베이스는 일반적으로 동시에 처리할 수 있는 요청 개수에 제한이 있는데, 이 제한을 초과하면 요청이 거부되어 사라지거나..

스레드, 프로세스, 코어의 수가 많을수록 시스템 성능이 향상된다고 생각할 수 있지만, 실제로는 그렇지 않을 확률이 더 크다.🎡 스레드가 많으면?스레드가 지나치게 많아지면 운영체제가 스레드 간 콘텍스트 스위칭을 자주 수행해야 하여 CPU자원이 스레드 관리에 소모된다. 이로 인해 실제 작업 수행 효율이 떨어질 수 있으며, 많은 스레드가 동시에 실행될 경우 메모리나 캐시, 럭 등의 자원을 경쟁하게 되어 성능 저하나 데드 락이 발생할 가능성이 높아진다. 또한, 스레드가 많아지면 동기화와 상태 관리가 복잡해져 버그 발생 가능성도 커진다.🎪 프로세스가 많으면?각 프로세스는 독립된 메모리 공간을 가진다. 그래서 많은 프로세스가 동시에 실행되면 메모리 사용량이 급격히 증가할 수 있다. 또한, 프로세스를 생성하고 관..