카
카카오헤어샵
April 5, 20211회
JPA Dirty Checking사용시 주의점 - JPA를 사용한 업데이트 연산을 믿지 말자.

간단 소개
JPA Dirty Checking 사용 시 성능 문제를 개선하기 위해 Bulk Update를 적용한 사례와 주의점을 설명합니다.
AI Summary
- JPA Dirty Checking의 함정
- JPA의 Dirty Checking 기능은 편리하지만, 과도하게 사용하면 성능 저하를 유발할 수 있음.
- 특히, 많은 엔티티를 수정할 때 각 엔티티마다 Update 쿼리가 실행되어 응답 속도가 느려질 수 있음.
- 개선 방안: Bulk Update 활용
- Chunk Size 단위로 나누어 Update In 쿼리를 사용하여 쿼리 실행 횟수를 줄임.
- Bulk Update는 영속성 컨텍스트의 관리를 받지 않으므로, 업데이트 후 엔티티 조회가 필요할 수 있음을 유의해야 함.
- 결론
- JPA 사용 시 Dirty Checking의 동작 방식을 이해하고, 필요에 따라 Bulk Update를 활용하여 성능을 최적화해야 함.
- MySQL In query의 Chunk Size 제한(기본 1000개)을 고려하여 Chunk Size를 설정해야 함.
Next Feeds
카나리 테스트와 함께하는 안전한 서버 배포
타다 서버의 Spring Boot 버전 업그레이드를 안전하게 배포하기 위해 Kubernetes 환경에서 카나리 배포를 적용한 경험을 공유합니다.
카나리 배포KubernetesHelmIstioSpring Boot
2021. 4. 5.
VCNC

Flask, marshmallow, apispec으로 API 문서화 자동화하기
Flask, Marshmallow, Apispec을 활용한 API 문서 자동화 방법과 플러그인 개발 사례를 소개합니다.
FlaskMarshmallowApispecAPI 문서 자동화OpenAPI Specification
2021. 3. 23.
스포카

제3회 스포카콘 후기 및 발표 자료 공유
스포카콘 Always Evolving! 웨비나 후기: 성공적인 온라인 컨퍼런스 개최 및 발표 자료 공유, 식자재 시장 디지털화 목표.
스포카콘웨비나Always Evolving기술 공유식자재 디지털화
2021. 3. 5.
스포카

사전예약 서버 프로파일링으로 서버 병목찾아 개선하기
쿠키런 킹덤 시민권 발급 서버의 성능 개선 과정을 프로파일링 도구를 활용하여 분석하고 최적화한 사례 연구.
프로파일링성능 개선Node.jslinux perfFlamegraph
2021. 2. 28.
데브시스터즈

CSS in JS 라이브러리에서 Typesafe하게 Theme 관리하기
CSS in JS 라이브러리 emotion과 Typescript를 사용하여 Typesafe하게 Theme를 관리하고 확장하는 방법을 제시합니다.
CSS in JSTypescriptThemeemotionReact Context API
2021. 2. 16.
데브시스터즈

두려움 없이 성장하는 뱅크샐러드
뱅크샐러드의 Fearlessness 문화를 바탕으로 테크 리드가 두려움을 극복하고 성장하는 과정을 소개합니다.
Fearlessness테크 리드두려움 극복조직 문화5 Whys 기법
2021. 2. 15.
뱅크샐러드