[DB] 트랜잭션과 동시성 제어
·
Computer Science/Database
Introduce결제 시스템을 구축하면서 동시성 문제를 경험한 적이 있다. 여러 사용자가 동시에 결제를 시도할 때, 예상하지 못한 데이터 불일치와 정합성 문제가 발생했으며, 이를 해결하기 위해 다양한 접근 방식을 고민해야 했다. 이러한 동시성 문제는 단순히 결제 시스템에서만 발생하는 것이 아니다. 데이터베이스에서 트랜잭션이 동시에 실행될 때, 공유 자원의 일관성과 무결성이 깨지는 문제는 모든 시스템에서 중요한 고려 사항일 것이다. 동시성이란 여러 주체가 하나의 공유 자원에 동시에 접근하여 의도하지 않은 결과를 발생시키는 것을 의미하며, 식사하는 철학자 문제가 유명한 예시이다. 즉, 데이터베이스에서 동시성 문제란 여러개의 트랜잭션이 동시에 실행되어, 공유 자원의 일관성과 무결성을 깨뜨리는 문제를 말한다. ..
[DB] Lock을 사용하여 동시성 제어하기 (+ 2PL Protocol)
·
Computer Science/Database
Introduce 결제 시스템을 구축하면서 동시성 문제를 해결하기 위해 비관적 락, 낙관적 락, 분산락과 같은 다양한 락킹 기법들을 검토하게 되었다. 하지만 이를 효과적으로 적용하기 위해서는 데이터베이스에서 제공하는 기본적인 락킹 기법을 먼저 이해하는것이 우선이라는 생각이다. 따라서 이번 글에서는 데이터베이스의 Lock의 종류, 발생할 수 있는 이상 현상, 해결 기법 들을 다루고자 한다. Concurrency📌 동시성 Concurrency(동시성) 이란 여러개의 작업(트랜잭션, 요청, 스레드 등)이 동시에 실행되는 상태를 의미한다. 즉, 하나의 시스템에서 여러 개의 프로세스 또는 스레드가 동일한 자원을 공유하며 실행되는 모든 상황을 의미한다. 즉, 데이터베이스에서 동시성 제어란 여러 개의 트랜잭션이 동..
브라우저는 google.com을 입력하면 어떤 일을 처리하지?
·
Computer Science/Network
Introduce 최근에 네트워크나 운영체제 쪽으로 CS 지식이 부실하다는 생각이 든다. 전공 수업에서 다 배웠던 내용이긴 하지만 시간이 좀 지나기도 했고, 그때는 단지 시험에서 점수를 잘 받기 위해서 공부했었던 것 같아서 이번에 짬짬이 정리해보고 CS 지식들을 리마인드 해보고자 한다. 그래서 어떻게 리마인드 할까? 무작정 다시 외워야 할까? 그냥 무작정 다시 외우기만 하면 금방 까먹을 것 같다는 생각이 든다. 그래서 내가 선택한 방법은 특정 주제를 던지고 그 주제에 대해서 최대한 스토리를 그려보며 공부해보고자 한다. 이번 게시글의 주제는 www.google.com 을 브라우저에 입력했을때 어떤일이 일어날까? 이다.  1. 사용자가 브라우저에 www.google.com 을 입력한다. 2. 브라우저는 캐싱..