[SpringBoot] 9. OSIV 설정을 통한 쿼리 최적화 방안 고찰


[SpringBoot] 9. OSIV 설정을 통한 쿼리 최적화 방안 고찰

[배경] 기존 시큐리티 필터에서는 Role-based access control를 담당하고 있다. [관리자등급 -> 운영진 -> 일반회원] 과 같은 역할기반 접근 제어 말고, 다른 특성으로 권한을 검사해야하는 경우가 있다. 예를 들어, 강의를 개설한 뒤에 강의자만 접근할 수 있는 api 가 있다면 매번 데이터베이스에 쿼리를 날려서 강의자인지 확인하고 인가를 해주어야한다. [문제] 위와 같이 해도 주요 기능은 제대로 수행하고 있지만, 트랜젝션이 2번 실행되는 점을 고려해야한다. 트랜젝션이 끝나면 영속성 컨텍스트에서 관리되던 엔티티들은 detached 되어 다른 트랜젝션이 수행될 때는 다시 db로부터 조회해서 영속화를 또 해주어야하는 중복이 발생한다. 강의실 정보를 수정하기 위한 api를 호출할 때, 강의자..


원문링크 : [SpringBoot] 9. OSIV 설정을 통한 쿼리 최적화 방안 고찰