JavaScript/NodeJs

[GraphQL] Over-fetching과 Under-fetching?

Hyo Kim 2020. 8. 27. 16:03
728x90
반응형

기술스택을 늘리고 싶다는 생각만으로 GraphQL을 공부하려고 했다.

하려고 찾아보니 기존 RESTAPI에 있는 문제점인 Over-fetching과 Under-fetching를 해결하기 위해

나온 API 쿼리언어라는 것을 알게 되었다.

 

그럼 Over-fetching과 Under-fetching이 뭔지 알아야 좀 더 효율적으로 사용할 수 있을 것 같아

정리를 해보려고 한다.

 


Over-fetching

 

API를 호출 시 필요없는 데이터(?) 사용하지 않을 데이터까지 딸려오는 것을 말한다.

 

만약 내가 유저의 정보 중에서 유저의 이름만을 원한다고 하면 어떨까?

{
  user: [
  {
    "id": 1,
    "name": "dong",
    "email": "naver.com",
    "age" : 23,
  }, 
  {
      "id": 2,
      "name": "hyo",
      "email": "gmail.com",
      "age": 20,
  }
  ]
}

여기서 name만 가져오고 싶지만 실상 데이터를 받게 되면 id, email, age들도 같이 받게 되어

불필요한 데이터들 때문에 네트워크가 지연이 될 수 있습니다.


Under-fetching

 

 

하나의 endpoint를 통해서가 아닌 두 개 이상의 호출을 통해서 필요한 정보를 받는 것을 말합니다.

 

예를 들면, 유저의 정보와 게시물정보 댓글 정보를 같이 불러오게 된다면

3개의 API를 호출하게 됩니다.

이렇게 되면 단일 호출에 비해 네트워크가 더 지연이 될 수 밖에 없는 현상이 발생됩니다.


이 두가지를 해결하도록 나온 것이 GraphQL !!

한번 공부를 해보도록 하겠숩니다..!

728x90
반응형