모아온 조회 API 성능 개선기 (2) - OOM 문제 해결
·
개발/기타
들어가며앞선 모아온 조회 API 성능 개선기 (1) - 700만 건 테스트 데이터 생성에서 조회 성능 테스트를 위한 데이터 세팅 과정을 다뤘다.700만 건의 테스트 데이터를 생성하고 나서 가장 먼저 마주한 문제는 Out Of Memory 에러였다.이 글에서는 조회 API에서 발생한 OOM 문제의 원인과 해결 과정을 정리한다.이 글에서 다루는 내용페이징 API에서 발생할 수 있는 OOM 문제COUNT 쿼리를 잘못 사용한 사례fetch().size() vs COUNT 쿼리 비교예상 독자Spring Boot와 MySQL, QueryDSL을 사용하는 백엔드 개발자1️⃣ Timeout 문제 발생100만 건의 아티클 데이터를 넣고 다양한 케이스로 테스트하던 중, 특정 API 요청에서 5분이 지나도 응답이 오지 않아..
[우테코 Lv3] 레벨3 회고 (3) - 기술적 도전과 선택
·
후기 or 회고/우아한테크코스
눈 깜짝할 사이에 레벨 3가 끝났다.2달간의 치열했던 과정을 끝내고 돌아봤을 때, 나에게 의미 있었던 것들을 모아서 글로 정리해보려고 한다. 세 번째 주제는 기술적 도전과 선택이다. 2달간 모아온 프로젝트를 개발하며 마주했던 기술적 과정들을 되돌아보려 한다. 백엔드 기술에 한정해서 작성했다. #1 엔티티 구조와 객체지향모아온은 MySQL와 JPA를 사용하고 있다. 프로젝트 초기, 도메인/엔티티 모델을 설계할 때 객체지향적 구조와 데이터베이스 지향적 구조 중 어떤 것을 선택할지 고민하게 되었다.데이터베이스 지향적 구조는, 데이터베이스의 ERD를 먼저 설계한 후, 테이블과 1:1 매핑되는 엔티티를 작성하는 방식이다. 지금까지 진행했던 프로젝트는 모두 데이터베이스 지향적 구조를 선택했다.객체지향적 구조는, ..