n+1 2

지피지기 백전불태(부제 : JPA의 오해와 사실)

사내 팀 내 개발 문화를 도입하면서 공유한 내용입니다.  간단하게 어떤 개발문화를 도입했는지에 설명하자면 다음과 같습니다. - 팀원들 개인의 경험 공유 및 지식 나눔으로 매주 목요일 번갈아가며 진행- 발표자는 자유 주제로 팀원들과 소통- 무거운 주제도 괜찮지만 되도록 가벼운 주제로- 다른 개발의 영역이라도 자유롭게 참가 가능- 주 목적은 같이 성장하기 이미 여러 다른 회사들에서는 이러한 개발문화를 도입했을겁니다.이는 팀 내의 역량을 증진하고 더 나아가 발표를 하기 위해, 발표를 듣기 위해 자신의 지식을 점검하며 같이 성장하기에 주 목적이 있습니다   간단한 설명은 이쯤에서 끝내고 발표 준비한 내용을 공유도록 하겠습니다. 목차N+1 문제의 흔한 착각여러분은 Page와 Slice를 아시나요?DirtyChec..

스프링/JPA 2024.10.20

JPA의 N+1 문제

사건의 발단은 이랬다. 어드민은 현재 모든 Thread를 조회해야하는 시점에서, 그냥 List를 그대로 호출해버리니 N+1 문제가 발생하였다. 사실상 어드민 기능에서는 성능적으로 크게 이슈가 없다 → 기존의 다른 서비스 같은 경우 어드민 기능을 하는 서버를 따로 띄운다. → 그래서 리소스 관련해서 크게 신경쓸 필요가 없는데 → 우리 서비스 같은 경우에는 한 서버에 다 띄우기에 만약에 다량의 쿼리가 발생해서 서버가 터져버리면? 이라는 생각으로 성능 개선을 해보려고 한다. 또한 어드민은 특정 사용자만 이용하기에 다른 서비스 기능에 비해선 크게 걱정할 필요가 없다고 생각한다. 하지만 기술적인 깊이와 코드에 깊이를 가지고, 직면한 문제를 직접 해결함으로써 성장하기 위해서 확인 차 기능을 제작했다. 현재로서는 데..