기존의 RESTFul API 생태계에서는 보통의 경우 Server와 Client의 통신이 있어서 Server에 Template하게 구현된 API에 맞게 특정 EndPoint를 Client가 호출하여 데이터를 가져옵니다. 원하는 결과를 얻기 위해서 한번 또는 그 이상의 API 통신을 통해 원하는 데이터 결과를 도출할 수 있습니다. 이는 성능에 부정적인 영향을 미칠 수 있는 Over-Fetch 또는 Under-Fetch로 이어질 수 있습니다.
이러한 한계를 극복하기 위해 등장한 것이 GraphQL입니다. GraphQL은 고객이 한 번의 요청으로 필요한 데이터만 요청할 수 있게 함으로써 이러한 한계를 극복하기 위해 개발되었습니다. 이는 사용 가능한 데이터와 작업을 정의하는 강력한 유형의 Schema와 Client가 원하는 데이터를 정확하게 지정할 수 있는 Query Language를 사용하여 동작하는 서버측 런타임입니다. GraphQL을 사용하면 클라이언트는 필요한 데이터만 요청할 수 있으며 서버는 해당 데이터로 정확하게 응답하므로 네트워크를 통해 불필요한 데이터를 전송할 필요가 없습니다.
또한 GraphQL은 Schema를 검사하여 사용 가능한 데이터와 작업을 검색할 수 있는 기능, 기존 클라이언트를 손상시키지 않고 새 필드와 유형을 쉽게 추가할 수 있는 기능 같은 다양한 이점도 제공합니다. 요약하자면, GraphQL은 REST API의 일부 한계를 해결하고 데이터를 보다 유연하고 효율적으로 쿼리할 수 있는 방법을 제공하기 위해 개발되었다.
'Computer Science > Programming' 카테고리의 다른 글
Interpreter와 Compiler (0) | 2023.04.21 |
---|---|
Process & Thread (0) | 2023.02.07 |
초보자를 위한 Linux 기초 명령어 (0) | 2022.09.25 |
Base64란? (2) | 2022.09.19 |
암호화 (0) | 2022.09.15 |
댓글