GraphQL-아키텍처
GraphQL은 GraphQL 서버의 동작을 설명하는 사양입니다. 지원되는 프로토콜, 서버에서 수락 할 수있는 데이터 형식, 서버에서 반환하는 응답 형식 등과 같이 요청 및 응답을 처리하는 방법에 대한 일련의 지침입니다. 클라이언트가 GraphQL에 보내는 요청 서버를 쿼리라고합니다. GraphQL의 또 다른 중요한 개념은 전송 계층 불가지론입니다. TCP, websocket 또는 기타 전송 계층 프로토콜과 같은 사용 가능한 네트워크 프로토콜과 함께 사용할 수 있습니다. 또한 데이터베이스에 중립적이므로 관계형 또는 NoSQL 데이터베이스와 함께 사용할 수 있습니다.
GraphQL Server는 아래 나열된 세 가지 방법 중 하나를 사용하여 배포 할 수 있습니다.
- 연결된 데이터베이스가있는 GraphQL 서버
- 기존 시스템을 통합하는 GraphQL 서버
- 하이브리드 접근
연결된 데이터베이스가있는 GraphQL 서버
이 아키텍처에는 통합 데이터베이스가있는 GraphQL 서버가 있으며 종종 새 프로젝트와 함께 사용할 수 있습니다. 쿼리를 받으면 서버는 요청 페이로드를 읽고 데이터베이스에서 데이터를 가져옵니다. 이를 쿼리 해결이라고합니다. 클라이언트에 반환 된 응답은 공식 GraphQL 사양에 지정된 형식을 따릅니다.
위의 다이어그램에서 GraphQL 서버와 데이터베이스는 단일 노드에 통합되어 있습니다. 클라이언트 (데스크톱 / 모바일)는 HTTP를 통해 GraphQL 서버와 통신합니다. 서버는 요청을 처리하고 데이터베이스에서 데이터를 가져와 클라이언트에 반환합니다.
기존 시스템을 통합하는 GraphQL 서버
이 접근 방식은 레거시 인프라와 다양한 API가있는 회사에 유용합니다. GraphQL은 기존 시스템에서 마이크로 서비스, 레거시 인프라 및 타사 API를 통합하는 데 사용할 수 있습니다.
위의 다이어그램에서 GraphQL API는 클라이언트와 기존 시스템 간의 인터페이스 역할을합니다. 클라이언트 애플리케이션은 GraphQL 서버와 통신하여 쿼리를 해결합니다.
하이브리드 접근
마지막으로 위의 두 가지 접근 방식을 결합하여 GraphQL 서버를 구축 할 수 있습니다. 이 아키텍처에서 GraphQL 서버는 수신 된 모든 요청을 해결합니다. 연결된 데이터베이스 또는 통합 API에서 데이터를 검색합니다. 이것은 아래 그림에 나와 있습니다.