Over-fetching vs Under-fetching
- 코딩/Spring
- 2022. 11. 22.
Over-fetching vs Under-fetching 알아보기
1. Over fetching
Over-fetching은 클라이언트가 필요로 하지 않는 정보를 서버에서 받아오는 것을 의미합니다. 예를 들어, 클라이언트가 사용자 이름만 필요한데, 서버에서는 사용자 정보의 모든 필드를 반환하는 경우입니다. 이 경우, 클라이언트는 필요하지 않은 데이터를 받아와서 불필요한 데이터 전송량이 증가하게 되고, 서버 부하가 증가합니다.
2. Under fetching
Under-fetching은 클라이언트가 필요로 하는 정보를 얻기 위해 여러 번의 요청을 보내야 하는 것을 의미합니다. 예를 들어, 사용자 정보를 조회하는 API가 있다고 가정해봅시다. 이 API에서는 사용자 정보와 함께 해당 사용자의 게시글 목록도 반환합니다. 하지만, 클라이언트가 필요한 것은 사용자 정보뿐이고, 게시글 목록은 필요하지 않은 경우입니다. 이 경우, 클라이언트는 사용자 정보를 얻기 위해 여러 번의 요청을 보내야 하므로 성능 저하가 발생합니다.
3. Over fetching과 Under fetching 해결방법
- Over-fetching: 필요한 필드만 선택하여 반환하도록 API를 설계합니다. 이를 위해 GraphQL이나 RESTful API의 필드 선택 기능 등을 사용할 수 있습니다.
- Under-fetching: 클라이언트가 필요로 하는 데이터를 한 번에 모두 반환할 수 있도록 API를 설계합니다. 이를 위해 예를 들어, 사용자 정보와 게시글 목록 정보를 한 번에 반환하는 API를 만들 수 있습니다.
따라서, Over-fetching과 Under-fetching은 RESTful API 디자인에서 발생하는 성능 문제이며, 이를 해결하기 위해서는 필요한 필드만 선택하여 반환하거나, 한 번에 모든 필드를 반환하도록 API를 설계해야 합니다.
'코딩 > Spring' 카테고리의 다른 글
[Spring] JPA In 절 사용하기 (1) | 2022.11.29 |
---|---|
[Spring] DB커넥션풀과 Hikari CP란? (0) | 2022.11.23 |
[Spring] default_batch_fetch_size의 작동원리 (0) | 2022.11.22 |
[Spring] ModelMapper를 이용해 DTO와 Entity 변환 방법 (0) | 2022.11.18 |
Spring @Cacheable을 내부 메서드에 쓰면 안되는 이유 (0) | 2022.11.16 |