🌱 spring
-
MVCC🌱 spring 2022. 10. 5. 18:58
동시성 제어 (Concurrency Control) ❓동시성 제어 ❗DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭 작용에서 DB를 보호하는 것. 동시성을 허용하면 일관성이 낮아진다. 비관적 동시성 제어 사용자들이 같은 데이터를 동시에 수정할 것이라고 가정 SELECT 시점에 Lock을 걸어 트랜잭션이 완료될 때 까지 유지한다. ⇒ 시스템 동시성을 심각하게 떨어뜨린다 → wait 또는 no wait 옵션 사용 낙관적 동시성 제어 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정 데이터 조회(SELECT)시 Lock을 걸지 않는다. ⇒ 수정 시점에 다른 사용자에 의해 값이 변경됐는지 검사가 필요하다. 목표 동시에 실행되는 트랜잭션 수를 최대화하면서 입력, 수정, 삭제,..
-
QueryDSL🌱 spring 2022. 10. 5. 18:57
❓QueryDSL 💡 QueryDSL은 정적 타입을 이용해 SQL과 같은 쿼리를 생성할 수 있도록 해주는 프레임워크 사용하는 이유? 실제로 Query를 작성하다보면 수 많은 쿼리를 수작업으로 생성해야 한다. 또한, 사람이 작성하면 Query는 컴파일 단계에서 오류가 있는지 없는지 알 수 없다. JPQL JPQL ( Java Persistence Query Language ) 는 엔티티 객체를 조회하는 객체지향 쿼리이다. 테이블이 아닌 객체를 검색하는 객체지향 쿼리 SQL을 추상화 하여 특정 데이터베이스에 의존하지 않는다. 데이터베이스의 방언이 바뀌어도 수정하지 않아도 된다. JPA는 JPQL을 분석하여 SQL을 생성한 후 DB에서 조회한다. 특징 SQL을 추상화한 JPA의 객체지향 쿼리 Table이 아닌..