🔙뒤로가기

Query

데이터를 읽는 데 사용되는 작업이다. REST에서의 GET 메소드와 유사한 개념이다. 쿼리를 통해 클라이언트는 서버로부터 필요한 데이터만을 정확하게 요청하고, 서버는 해당 쿼리에 따라 데이터를 반환한다.

예를 들어, 사용자의 이름과 이메일만을 요청하는 쿼리는 아래와 같이 작성될 수 있다.

query {
  user(id: "1") {
    name
    email
  }
}

Mutation

서버에 있는 데이터를 변경할 때 사용된다. 즉, 데이터의 생성, 갱신, 삭제 등을 담당하며, REST에서 POST, PUT, PATCH, DELETE 등의 메소드에 해당한다.

예를 들어, 새로운 사용자를 생성하는 뮤테이션은 아래와 같이 작성될 수 있다.

mutation {
  createUser(name: "John", email: "[email protected]") {
    id
    name
    email
  }
}

Subscription

서버에서 실시간으로 데이터를 받아올 때 사용된다. WebSocket과 같은 실시간 통신 기술을 이용하여, 서버에서 특정 이벤트가 발생했을 때 클라이언트로 데이터를 전달할 수 있다.

예를 들어, 새로운 사용자가 생성될 때마다 알림을 받기 위한 구독은 아래와 같이 작성될 수 있다.

subscription {
  userCreated {
    id
    name
    email
  }
}