1. 동시성(Concurrency)이란? 동시성은 여러 스레드가 동시에 실행될 때 발생합니다. 각 스레드는 독립적으로 작업을 수행하지만, 때때로 공유 자원(예: 데이터베이스)에 접근할 필요가 있습니다. 이때, 올바른 동시성 관리 없이 여러 스레드가 동시에 같은 자원에 접근하면 데이터 무결성을 위협하고 예측 불가능한 결과를 초래할 수 있습니다. 동시성 문제를 해결하지 못하면 데이터 불일치, 교착 상태(Deadlock), 성능 저하 등의 문제가 발생할 수 있습니다. 정확하고 효율적인 데이터 처리를 위해 이러한 문제들을 관리하는 것이 필요합니다. 2. 원자성과 가시성 1) 원자성(Atomicity) 원자성은 어떤 작업이 '전부 아니면 전혀'의 상태로만 존재한다는 원칙입니다. 은행 계좌에서 돈을 이체할 때로 예..
Java의 ArrayList는 Array와 다르게 사이즈를 정해주지 않아도 데이터를 추가할 수 있습니다. 그렇다면 ArrayList는 어떻게 사이즈를 정해주지 않아도 데이터를 추가할 수 있는 것인지 알아보도록 하겠습니다. 1. add(e) Method의 구조 add(e) 메서드는 다음과 같이 구성되어 있습니다. add(e, elementData, size) add(e, elementData, size)는 실제로 요소를 추가하는 내부 메서드입니다. e : 추가될 요소 elementData : 요소들을 저장하는 내부 배열 size : 리스트의 현재 크기를 나타냅니다. elementData에 대해서 좀 더 알아보도록 하겠습니다. JavaDoc의 설명을 보면 다음과 같은 내용들을 확인할 수 있습니다. Arra..