인프런 커뮤니티 질문&답변
단순히 엔티티(테이블)의 저장된 값이 아닌 연관된 통계 값(?) 등을 같이 조회할 경우는 어떤 패턴을 사용하나요?
작성
·
199
0
안녕하세요.
예를 들어 상품 리스트 api 를 구현한다고 했을 때, 상품별 데이터에 추가로 api를 조회하는 회원이 해당 상품을 좋아요(찜, 장바구니 담기 등) 했는지 여부, 그리고 해당 상품이 현재까지 구매된 건수(또는 구매한 회원수) 등을 같이 내려줘야한다면 보통 어떤 식으로 구현을 하시나요?
이런 값들은 기본적으로 각 엔티티(상품?)에 관계매핑이 될만한 것들은 아닌 것으로 판단되는데요, 그리고 이런 값들은 간단하게 (위의 예를 기준으로)상품 리스트를 조회할 때 한번에 같이 뽑아지기 어려운 경우가 대부분일 것 같습니다.
아직 저희는 JPA 를 실무에 도입하기 전이기도 한데, 보통 이런 경우 상품 정보 리스트를 뽑아오고 해당 상품 번호 리스트로 해당 부가적은 데이터를 한번 더 조회한 후, 두 리스트 값으로 내려줄 값을 한번더 가공하는 방식을 사용합니다. 물론 한방 쿼리로 다 가져올 수 있는 경우는 (아직 JPA 를 도입하기 전이라) 하나의 쿼리로 만들어 내려주기도 하구요.
보통 JPA를 사용하는 실무에서 이런 케이스는 어떻게 구현을 하시는지요?
퀴즈
API 개발에서 JPA 엔티티 객체를 요청 파라미터나 응답 값으로 직접 사용하는 것을 지양해야 하는 주된 이유는 무엇일까요?
데이터베이스 성능이 저하되기 때문입니다.
API의 스펙이 엔티티의 변화에 직접적으로 영향을 받기 때문입니다.
클라이언트 측의 데이터 파싱 로직이 복잡해지기 때문입니다.
네트워크 전송량이 불필요하게 증가하기 때문입니다.
답변 1
0
안녕하세요. happylabo.m님, 공식 서포터즈 David입니다.
.
복잡한 통계의 경우는 별도로 쿼리로 뽑아내고 엔티티와 함께 통계 데이터를 내려주면 될 것 같습니다.
아래 글 답변 참고 부탁드립니다:)
https://www.inflearn.com/questions/120529





