Database Lock 이란?
2024. 6. 18. 21:33
DB
제가 일하고 있는 분야에서 RDBMS 에 보단 NoSql(Elasticsearch) 를 주로 쓰다 보니 공부하는 겸 공유를 하게 되었습니다.예전부터 궁금했던것들중에 하나가 선착순으로 지급해주는 이벤트성은 DB에서 어떻게 처리할까? 였습니다. DB lock에서 어느정도 궁금증을 해소하게 되었습니다. 혹시나 저처럼 이러한 생각을 한 분들은 이미 DB lock에 대해서 공부를 하셨다고 생각이 들지만 그럼에도 글을 공유하게 되었습니다.DataBase는 데이터를 영속적으로 저장하는 시스템입니다. 즉 같은 자원에 대해서 동시에 접근하는 경우가 생길 수밖에 없습니다. Lock 이란 트랜잭션 처리의 순차성을 보장하는 방법이라고 했습니다. 트랜잭션이란 DB의 나누어지지 않는 최소한의 처리 단위입니다. 2가지의 lock ..
N+1 문제 해결: Java 백엔드 개발자를 위한 데이터베이스 쿼리 최적화
2024. 6. 5. 17:57
DB
오늘은 JPA N+1의 문제 해결에 대해서 글을 공유해드리려고 합니다. * Java 백엔드 개발자를 위한 데이터베이스 쿼리 최적화에 적합한 내용입니다.개발자가 직면하는 가장 일반적인 성능 병목 현상 중 하나가 N+1입니다. 애플리케이션이 단 한 번의 쿼리로 동일한 결과를 얻을 수 있는데도 N+1번의 데이터베이스 쿼리를 수행할 때 발생합니다. 과도한 데이터베이스 Hit는 느린 응답 시간, 높은 서버 부하, 열약한 사용자 경험으로 이어질 수 있습니다. 원인을 함께 파악해 보고 개발자가 이러한 문제를 어떻게 완화할지에 대해서 다양한 전략과 기법에 대해서 적어보겠습니다.앞서, N+1 문제가 무엇인지 알아보도록 하겠습니다.N+1 문제란 무엇인가?애플리케이션이 개체목록(예시: 제품, 사용자 또는 게시물 목록)을 가..