이전 상황 정리 이전 글은 Data JPA를 사용해서 Delete를 진행했을 때, N+1이 발생해서, 성능 저하가 발생했었고, `delete where in ...` 쿼리를 직접 작성하는 것으로 엄청난 성능 향상을 가져왔었다. 이젠 이 쿼리를 프로젝트에 적용하고 성능을 체크해보자. 적용 프로젝트에 적용하기에 앞서, 다시 한번 관계를 확인하겠습니다. Feed를 삭제하면 다음과 같은 관계를 갖습니다. 삭제 성능을 확인하기 위해, 테스트 데이터를 집어넣고 삭제를 진행해보자. 테스트 코드가 상당히 길어서 대충 정리하면 Feed는 10개, Comment는 각 Feed당 100개, Reply는 각 Comment당 100개, ReplyLike는 각 Reply당 10개씩 있어서, ReplyLike가 총 100만개정도 ..
delete
웹 백엔드 프로젝트를 진행하면, 많은 분들이 `Java`언어와 `Spring Boot` + `JPA` 혹은 `MyBatis` 조합을 사용해서 개발을 진행합니다. 저 역시 지금껏 Spring Boot를 활용해서 개발을 했었고, `JPA`와 `MyBatis` 모두 사용해 보았지만, 최근엔 `JPA`를 주로 사용하며 개발을 했습니다. `JPA`를 선택하면, 많은 편의성이 있지만, 가장 와닿는 점은 쿼리를 직접 작성하지 않아도 된다는 점이라고 생각합니다. 하지만 `JPA`가 직접 작성해 주는 쿼리는 저희의 생각과는 다르게 동작하는 경우도 존재합니다. 이 글은 `JPA`의 Delete 쿼리를 사용하면서 발견한 의아한 부분을 발견하고, 더 효율적인 방법을 찾아보려고 했던 내용에 대해서 다룹니다. 배경 최근 한 프로..