[GraphQL] 2. GraphQL의 메서드 query, mutation, subscription 에 대해 알아보자

2022. 3. 19. 16:38· Network/GraphQL
목차
  1. GraphQL의 요청 단위 종류 : query, mutation, subscription
  2. GraphQL의 query
  3. GraphQL의 mutation
  4. GraphQL의 subscription
  5.  
  6. 정리
반응형

GraphQL의 요청 단위 종류 : query, mutation, subscription

우리가 HTTP 요청을 할 때 GET, POST, DELETE, PATCH 등의 메서드가 제공되는 것처럼 GraphQL 또한 query, mutation, subscription 이라 불리는 세가지 요청 방식을 제공한다.

 

GraphQL의 query

 

그림1. GraphQL의 query

 

query은 읽기 전용으로 데이터를 가져오기 위한 메서드이다. query를 사용하는 경우는 데이터가 변화될 필요 없이 단순한 조회가 필요할 때이다. 예를 들어 View를 그리기 위한 정보 혹은 유저 정보를 가져오기 위한 경우에 사용한다.

 

 

GraphQL의 mutation

 

그림2. GraphQL의 mutation

 

 mutation은 데이터를 변경한 후 가져오기 위한 메서드이다. 요청으로 데이터를 변화시켜야 하는 경우에 사용한다. 예를들어 회원 가입을 통해 유저가 등록되어야 한다거나, 주문이 접수되어 유저의 주문 정보가 업데이트 되었을 경우 사용된다.

 

 

GraphQL의 subscription

 

그림3. GraphQL의 subscription

 

 마지막으로 subscription은 실시간으로 변경된 데이터를 가져오기 위한 요청 방식이다. GraphQL의 subscription은 웹소켓을 통해 소켓 통신을 열어두고 데이터 업데이트 시 알리는 방식으로 이루어진다. 만약 내부의 구현이 궁금하다면 아래 정보를 참고하기를 바란다. 

 

 

Subscriptions

Get real-time updates from your GraphQL server

www.apollographql.com

 

subscription은 리액티브 프로그래밍의 데이터 발행자와 매우 비슷한 역할을 하며, 데이터가 자주 업데이트 되어야 하는 View(예를 들어 Chatting 을 위한 View)라면 매번 상태가 업데이트 될 때마다 HTTP 요청을 보내는 것은 자원의 낭비가 심하므로 소켓통신으로 처리하는 것이 좋다. 이런 경우 사용되는 것이 바로 subscription이다.

 

 

정리

이번 글에서는 GraphQL의 메서드에 대해 간략하게 알아보았다. 데이터 읽기는 query, 데이터를 변화 시킨 후 응답은 mutation, 데이터 구독은 subscription 에서 GraphQL은 HTTP 통신과 다르게 메서드들이 클라이언트를 위해 매우 직관적으로 만들어졌음을 알 수 있다.  다음 글부터는 이들 각각이 어떻게 사용되고 구현되는지에 대해 더욱 자세히 알아볼 것이다.

 

 

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)
  1. GraphQL의 요청 단위 종류 : query, mutation, subscription
  2. GraphQL의 query
  3. GraphQL의 mutation
  4. GraphQL의 subscription
  5.  
  6. 정리


 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com

'Network/GraphQL' 카테고리의 다른 글
  • [GraphQL] 5. 단일 데이터를 가져오는 query와 다중 데이터를 가져오는 query의 제약
  • [GraphQL] 4. GraphQL의 introspective query(내향성 쿼리) 사용해 schema, field 정보 조회하기
  • [GraphQL] 3. GraphQL의 query 한 번에 정리하기
  • [GraphQL] 1. GraphQL 이란 무엇인가?
Dev.Cho
Dev.Cho
'조세영의 Kotlin World'는 Kotlin를 전문적으로 다루는 개인 기술 블로그입니다. Kotlin 세계에 대한 양질의 자료를 제공하며 Kotlin, Android, Spring, CI, CD 분야에 대해 다룹니다.
Dev.Cho
조세영의 Kotlin World
Dev.Cho
전체
오늘
어제

블로그 메뉴

  • LinkedIn
  • GitHub
  • 분류 전체보기 (491)
    • Kotlin (104)
      • Class and Interface (19)
      • Variable and Function (8)
      • Modifier (5)
      • Collection (14)
      • Time (8)
      • 동시성 제어 (7)
      • Reactive Programming (2)
      • Paradigm (2)
      • Kotlin 자료구조 (15)
      • Design Patterns (11)
      • Algorithm (3)
      • Exception (1)
      • 기타 (9)
      • Update History (0)
    • Coroutines (32)
      • Coroutine Basics (18)
      • Flow (9)
      • CoroutineScope (3)
      • Debugging (2)
    • Testing Codes (28)
      • Test 기본 (3)
      • JUnit5 (9)
      • MockK (6)
      • Testing Coroutines (1)
      • Testing Android (8)
      • Test 기타 (1)
    • Spring (50)
      • Dependency Injection (18)
      • Settings (5)
      • REST API (0)
      • DevTools (1)
      • MVC (18)
      • Error (2)
      • MongoDB (2)
      • Database (4)
    • Android (39)
      • Architecture (2)
      • Component (5)
      • Manifest (1)
      • Lifecycle (2)
      • Dependency Injection (17)
      • Resource (1)
      • Storage (1)
      • Security and Optimization (1)
      • WebView (2)
      • Error (6)
    • Android Jetpack Compose (33)
      • Compose (6)
      • Compose Modifier (13)
      • Compose Resource (4)
      • Compose State (4)
      • Compose Side Effect (6)
    • Android Jetpack Compose UI (48)
      • Compose Layout (14)
      • Compose Text (10)
      • Compose Button (5)
      • Compose Dialog (2)
      • Compose TextField (0)
      • Compose UIs (4)
      • Compose Animation (1)
      • Compose Canvas (12)
    • Android Jetpack (10)
      • Datastore (5)
      • ViewModel (4)
      • LiveData (1)
      • Paging (0)
    • KMP (5)
    • Programming (4)
    • Machine (9)
      • JVM (7)
      • Linux (2)
    • CI, CD (74)
      • Gradle (12)
      • Groovy Gradle (5)
      • Git (25)
      • Git Remote (5)
      • GitHub (5)
      • GitHub Actions (21)
    • Network (33)
      • GraphQL (12)
      • HTTP (11)
      • Basic (9)
    • 오픈소스 (3)
    • Database (3)
      • MongoDB (3)
    • IDE (6)
      • Android Studio (2)
      • Intellij (4)
    • Firebase (1)
    • Javascript (9)

공지사항

  • 코틀린 코루틴 완전 정복 강의 in 인프런 오픈
  • 코틀린 코루틴의 정석 책 출간
  • Kotlin Coroutines 공식 기술 문서 한국어 번⋯
  • GitHub에서 조세영의 Kotlin World를 Foll⋯
  • 문의&제안

인기 글

태그

  • flow
  • Spring
  • HTTP
  • 스프링
  • Android
  • Class
  • 안드로이드
  • github actions
  • Unit Testing
  • 코루틴
  • dagger2
  • junit5
  • junit4
  • gradle
  • Jetpack Compose
  • Spring boot
  • Coroutine
  • 유닛 테스팅
  • github
  • junit
  • java
  • 코틀린
  • GraphQL
  • Android Compose
  • 의존성 주입
  • Dependency Injection
  • kotlin spring
  • Kotlin
  • GIT
  • compose

최근 글

반응형
hELLO · Designed By 정상우.v4.3.0
Dev.Cho
[GraphQL] 2. GraphQL의 메서드 query, mutation, subscription 에 대해 알아보자
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.