본문 바로가기

Paging2

[커뮤니티 서비스] 포럼 조회시 페이징 반환 Slice로 처리 커뮤니티 서비스의 포럼 채널FitTrip의 커뮤니티 서비스에는 서버가 존재한다.서버 안에는 또 여러 개의 채널들이 존재한다. 채널채팅 채널음성 채널포럼 채널 여기서, 포럼 채널은 사용자의 일상, 챌린지 등 다양한 사진과 함께 간단 포스팅이 가능한 채널이다.(서버에 접속한 사람들끼리의 채팅도 가능하다.) 인스타그램, 페이스북 포스팅이라고 생각하면 간단할 것이다.  포럼 채널 페이징포럼 채널에는 카테고리마다 수많은 포럼이 존재할 수 있기 때문에 굉장히 많은 포럼들이 존재한다.따라서, 커뮤니티 서비스는 해당 포럼 채널을 적절히 페이징 처리를 해서 보내줘야 한다. 페이징을 해야하는 이유수많은 데이터가 DB에 있을 때 페이징 처리를 하지 않으면 데이터들을 DB로 가져오는데 너무 많은 비용과 시간 소모많은 데이터를.. 2024. 7. 18.
[SpringBoot] JPA Collection 페치 조인 최적화 Collection은 @ManyToOne가 아닌 @OneToMany를 사용하는 변수에 사용된다. 하지만, @OneToMany. 즉, 일대다 관계에서 Collection을 조회하면 데이터가 뻥튀기가 된다. 예를 들어, Order(주문), OrderItem(주문된 아이템)이 있다고 했을 때 관계의 주인은 OrderItem이다. 하지만, 관계의 주인(외래키)은 N인 OrderItem이 갖고 있으므로, Order를 기준으로 조인을 진행하면 데이터가 늘어난다. 그렇기에 반환시 중복된 데이터가 나오게 된다. 따라서, 기존의 페치 조인 최적화 쿼리와는 달리 jpql 혹은 querydsl에서 distinct를 추가 해주어야 한다. @Override public List findAllWithItem() { QOrder .. 2024. 1. 29.