[장애회고] ORM(JPA) 사용 시 예상치 못한 쿼리로 인한 HikariCP 이슈
Order API 서버에서 CPU와 메모리 과부하 장애가 발생했고, JPA와 HikariCP 조합에서 예상치 못한 쿼리가 원인으로 지목되었습니다. 실제 생성 쿼리와 DB 연결 풀 영향을 함께 점검할 필요를 정리했습니다.
ORM 태그가 달린 국내 IT 기업 기술 블로그 글을 최신순으로 모았습니다.
7개 표시
Order API 서버에서 CPU와 메모리 과부하 장애가 발생했고, JPA와 HikariCP 조합에서 예상치 못한 쿼리가 원인으로 지목되었습니다. 실제 생성 쿼리와 DB 연결 풀 영향을 함께 점검할 필요를 정리했습니다.
Django ORM의 `defer()`로 특정 컬럼을 제외한 조회와 저장 동작을 설명했습니다. 제외 필드 접근 시 지연 로딩 쿼리가 발생하는 점을 주의해야 합니다.

Django ORM의 `only()`로 필요한 컬럼만 조회하고 저장 쿼리를 줄이는 방식을 살펴봤습니다.\n미조회 필드 접근 시 lazy loading 추가 쿼리가 발생하므로 필드 선택에 주의해야 합니다.

Django ORM의 `_meta.related_objects`로 특정 모델을 참조하는 역방향 외래 키를 찾는 방법을 설명했습니다. 중복 데이터를 병합할 때 모든 참조를 갱신한 뒤 삭제하는 흐름을 제시했습니다.
Django Manager와 커스텀 QuerySet으로 반복 ORM 쿼리를 줄이는 방법을 소개했습니다.\ndefault manager의 우선순위와 데이터 누락 위험을 고려한 팀 컨벤션의 필요성을 설명합니다.

Django ORM Cookbook을 스터디하며 한국어 번역 문서를 오픈소스로 제작한 과정을 소개했습니다.\nSphinx·Read the Docs 기반 빌드와 한글 PDF 변환 시 유의점을 정리했습니다.
Django ORM의 쿼리 작성, 예외 처리, 인덱스와 트랜잭션을 스터디로 정리했습니다. Explain과 ACID 등 데이터베이스 동작 원리를 심화 학습했습니다.