
[장애회고] ORM(JPA) 사용 시 예상치 못한 쿼리로 인한 HikariCP 이슈
Order API 서버에서 CPU와 메모리 과부하 장애가 발생했고, JPA와 HikariCP 조합에서 예상치 못한 쿼리가 원인으로 지목되었습니다. 실제 생성 쿼리와 DB 연결 풀 영향을 함께 점검할 필요를 정리했습니다.

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 등 데이터베이스 동작 원리를 심화 학습했습니다.