성능 최적화 - 병목 구조 튜닝하기 (2)
·
데이터베이스
2025.03.31 - [spring] - 성능 최적화 - 성능 저하 원인 찾기 (1) 성능 최적화 - 성능 저하 원인 찾기 (1)느려진 성능 최적화 하기프로젝트를 살펴 보던 중, 펀드 부분에서 5년치 데이터를 조회하는 요청이 느려짐을 확인했습니다.그래서 어떤 원인일지, 정확한 원인을 추적해보고 최적화 하기로 했featherdale.tistory.com2025.04.04 - [ELK] - 성능 최적화 - 모니터링 시스템 구축 (3) 성능 최적화 - 모니터링 시스템 구축 (3)지난 포스팅 :2025.03.31 - [spring] - 성능 최적화 - 성능 저하 원인 찾기 (1) 성능 최적화 - 성능 저하 원인 찾기 (1)느려진 성능 최적화 하기프로젝트를 살펴 보던 중, 펀드 부분에서 5년치 데이터를 조fea..
[PostgreSQL] JPA의 비관적 락(Pessimistic Lock)은 PostgreSQL에서 어떻게 작동할까?
·
데이터베이스
동시성 문제를 해결하기 위해 JPA에서 @Lock(LockModeType.PESSIMISTIC_WRITE) 같은 어노테이션을 제공합니다. 그런데, 이 어노테이션은 내부적으로 어떻게 작동할까요? PostgreSQL과 함께 사용할 때 어떤 일이 벌어지는지 자세히 정리해보겠습니다.@Lock(LockModeType.PESSIMISTIC_WRITE)란?JPA에서 해당 어노테이션은 비관적 쓰기 락을 의미합니다. 이는 SQL로 변환될 때 다음과 같은 쿼리로 처리됩니다:SELECT * FROM user WHERE id = 1 FOR UPDATE;즉, 단순히 데이터를 조회하는 것이 아니라 행(row)에 락을 거는 SELECT 문이 되는 것이죠.PostgreSQL에서 FOR UPDATE는 무슨 일을 할까?PostgreSQ..