👣 개요 해당 게시글은 JPA에서의 '트랜잭션과 락'과 '2차 캐시'에 대해 서술할 계획이다. JPA는 대부분의 DB는 READ COMMITTED 수준의 격리 수준을 요구한다. 이것은 성능 상 큰 이점을 줄 수 있어도 정확도 면에서는 손해를 볼 수 있다. JPA는 부분적으로 해당 격리 수준 이상의 격리 수준을 제공할 수 있다. Lock이 그 역할을 수행하고 이것을 심도있게 살펴본다. JPA는 영속성 컨텍스트를 이용해 요청 범위 내에서 같은 엔티티를 DB 2번 이상 호출하지 않도록 1차 캐시를 제공한다. 해당 캐시 덕분에 성능이 크게 늘어났지만 안타깝게도 '요청과 응답 사이'의 캐시를 도와주는 것이지 'Web App 차원'에서의 캐시를 제공하는 것은 아니기에 이전 요청을 위해 DB에서 조회했던 엔티티를 이..