October 27, 2024
동시성 이슈가 뭐고 발생하는 원인이 뭔가요? 동시성 이슈는 다음 세 가지 조건이 충족될 때 발생할 수 있습니다. 공유 자원에 접근한다. 동기화 없이 접근한다. 적어도 하나의 스레드가 자원을 변경한다. 이 세 가지 조건이 충족되면 스레드가 변경한 값을 다른 스레드가 읽으면서 발생하는 문제, 데드락, 기아 현상 등 다양한 동시성 이슈가 발생할 수 있습니다. …
October 28, 2024
자바에서의 동기화 기법 - 메모리 영역 자바에서 하나의 프로세스는 메모리를 점유하고 있으며, 그 프로세스 내의 여러 스레드가 자원을 공유하게 됩니다. 여기서 공유되는 자원은 주로 힙 영역에 존재하는 객체와 변수 값입니다. 이 코드의 기대 결과는 이지만, 실제로는 20000보다 작은 값이 나올 수 있습니다. 이유는 두 스레드가 방식으로 겹쳐 실행되기 때…
October 29, 2024
데이터베이스에서 트랜잭션을 하나씩 순차적으로 실행하면 동시성 문제가 발생하지 않습니다. 그러나 이 방법은 성능 저하를 초래할 수 있습니다. 현실적으로는 여러 서버에서 네트워크를 통해 다수의 트랜잭션이 동시에 데이터베이스에 접근합니다. 따라서 동시성 문제를 해결하는 다른 방법이 필요합니다. 동시성 문제를 해결하면서 성능을 유지하는 방법 동시에 여러 트랜잭션…
October 30, 2024
데이터베이스가 2대 이상 있는 상황이나 NoSQL과 서로 다른 DBMS을 사용하는 상황일때, 트랜잭션 하나를 앞서 비관적락이나 낙관적락으로 해결할 수 없는 상황이 많습니다. 이런 분산데이터베이스 혹은 분산환경에서 CAP 이론이 적용됩니다. CAP 이론이란 Consistency(일관성): 모든 노드가 동일한 시점에 동일한 데이터를 볼 수 있습니다. 즉 데…