알파카 개발 블로그

동시성 제어 - 데이터베이스

이전 글 동시성 제어 - 프로그래밍 언어에서는 자바에서 동시성 문제를 해결하는 방법을 알아보았다. 이번에는 데이터베이스 수준에서 동시성 문제를 해결하는 방법을 알아보자. 데이터베이스 수준에서는 잠금과 트랜잭션 격리 수준을 이용하여 동시성 문제를 해결한다. 먼저 잠금에 대해 알아보자. 데이터베이스에서도 잠금을 이용해 동시성 문제를 해결한다. 데이터...

동시성에서 발생할 수 있는 문제들

동시성에서 발생할 수 있는 문제는 원자성과 가시성의 문제로 설명할 수 있다. 원자성 원자성이란 하나의 작업이 완전히 실행되거나 전혀 실행되지 않는 성질이다. 멀티 쓰레드 환경에서는 여러 스레드가 동시에 실행되기 때문에 원자성을 지키지 못한다면 데이터의 무결성이 깨질 수 있다. int형 변수에 1을 더하는 작업을 생각해보자.(i++) 이 작업은 1...

동시성이란

동시성이란? 동시성이란 여러 작업을 동시에 수행하는 것을 말한다. 만약 동시성 개념이 갑자기 없어졌다고 가정해보자. 그러면 우리가 인터넷 브라우저에서 무엇인가를 다운 받거나 검색할 때 그 작업이 끝날 때까지 다른 어떠한 작업도 할 수 없다. 동시에 다른 작업을 할 수 없기 때문에 한 스레드가 작업을 수행하는 동안 다른 스레드는 대기해야하기 때문이다....