REST API
리소스 중심의 설계를 따르며, 각 리소스에 고유한 URI 각각의 엔드포인트에 맞는 DTO를 생성해서 관리 GraphQL
단일 엔드포인트 모든 요청은 graphql 엔드포인트의 쿼리로 처리 하나의 DTO만 생성 관리해야할 엔드포인트가 줄어듬 -> 유지보수에 용이 null에 대한 추가적인 처리가 필요할 수 있음 ex1) 게시판
유저 정보 조회 API
게시글 정보 조회 API
...
RestAPI는 다양한 정보가 필요하면 필요한만큼의 N번의 네트워크 요청을 하게 됨(설계에 따라) -> Under-Fetching 가능
Under-Fetching: 필요한 데이터를 한 번에 가져올 수 없음
네트워크 트래픽 증가 요청 대기시간 증가 GraphQL은 단일 쿼리를 통해 원하는 데이터를 한 번에 가져올 수 있음
RestAPI는 원하던 원치않던 불필요한 정보도 수신 가능(설계에 따라서) -> Over-Fetching 가능
Over-Fetching: 불필요한 데이터도 가져옴
네트워크 대역폭 증가 클라이언트에서 불필요한 데이터를 처리해야하는 부담 GraphQL은 쿼리를 통해 원하는 데이터만 지정해서 가져올 수 있음