DB Lock을 처음 경험한 날
나의 업무 중에 특정 CSV 파일을 읽어, 데이터를 파싱하고 테이블에 풀리프레쉬 방식으로 삽입하는 작업이 있다.백엔드 개발자의 요청으로 해당 스크립트를 실행했는데, 데드락에 걸리는 상황이 발생했다. 일단 원인은 나의 스크립트 안에 테이블을 삭제하고 다시 생성하는 코드가 포함되어 있는데, 이 타이밍에 백엔드 개발자가 데이터를 조회했기 때문에 락(Lock)이 발생했다. 위 이미지는 `t_pole_image`라는 테이블에 `AccessExclusiveLock`이 걸린 모습이다.`AccessExclusiveLock`은 가장 강력한 테이블 락(Lock)으로, 해당 테이블의 모든 작업을 차단한다.빨간색 박스 안에 있는 두 줄을 살펴보면, 하나의 세션에서는 `AccessExclusiveLock`을 획득(`grante..