작성일 댓글 남기기

GraphQL이란?

1. GraphQL이란 무엇인가?

GraphQL은 서버에서 클라이언트에게 데이터를 제공하는 방법 중 하나입니다. REST API를 들어보셨다면, 그와 비슷한 역할을 한다고 보시면 됩니다. 하지만 REST API와 달리 GraphQL은 클라이언트가 원하는 데이터만 정확하게 요청하고 받을 수 있는 쿼리 언어입니다.

왜 GraphQL을 사용하나요?

기존의 REST API는 데이터를 받아올 때 필요한 것보다 더 많은 정보를 가져오거나, 여러 번 요청해야 할 때가 많았습니다. 이 때문에 데이터 전송 효율이 떨어질 수 있죠. GraphQL은 이런 문제를 해결해 필요한 데이터만 효율적으로 받을 수 있도록 해줍니다.

2. GraphQL의 기본 개념

GraphQL의 중요한 개념들을 하나씩 살펴볼게요.

1) 쿼리 (Query)

쿼리는 클라이언트가 서버에서 데이터를 요청할 때 사용하는 언어입니다. 쿼리를 통해 원하는 데이터를 정확하게 요청할 수 있죠. 예를 들어, 사용자 정보 중 이름과 나이만 요청하고 싶을 때 이렇게 쓸 수 있어요:

query {
user(id: 1) {
name
age
}
}

위의 쿼리에서는 user라는 데이터를 가져오는데, 그 중에서도 nameage만 요청하고 있습니다. 그러면 서버는 요청한 데이터만 정확하게 반환하게 됩니다.

2) 뮤테이션 (Mutation)

뮤테이션은 데이터를 변경할 때 사용됩니다. 데이터를 추가하거나 수정하거나 삭제하는 등의 작업을 할 때 뮤테이션을 사용합니다.

mutation {
addUser(name: "John", age: 30) {
id
name
}
}

이 예제에서는 addUser라는 뮤테이션을 통해 새로운 사용자를 추가하고, 그 사용자의 idname을 반환받고 있습니다.

3) 스키마 (Schema)

GraphQL의 핵심은 스키마라는 개념입니다. 스키마는 어떤 데이터를 요청할 수 있고, 그 데이터가 어떤 형식인지를 서버가 정의해 둔 설계도 같은 것입니다. 스키마를 통해 클라이언트는 어떤 요청을 할 수 있는지 미리 알 수 있죠.

예를 들어, 스키마에서 user라는 타입이 있고 그 안에 name, age, email 등의 필드가 있다고 정의되어 있으면, 클라이언트는 user 타입에서 해당 필드들만 요청할 수 있습니다.

3. GraphQL과 REST API의 차이점

  • 엔드포인트: REST API에서는 여러 엔드포인트(URL)를 통해 데이터를 요청합니다. 하지만 GraphQL은 하나의 엔드포인트만 사용해 데이터를 요청합니다.
  • 데이터 요청 방식: REST API는 정해진 데이터를 항상 반환하지만, GraphQL은 클라이언트가 원하는 데이터만 정확하게 요청할 수 있습니다. 이로 인해 불필요한 데이터 전송을 줄일 수 있습니다.

4. 간단한 예제

우리가 사용자 정보와 그 사용자가 작성한 게시물 정보를 가져오고 싶다고 해볼게요. REST API에서는 두 번의 요청을 해야 할 수도 있지만, GraphQL에서는 한 번의 요청으로 가능합니다.

query {
user(id: 1) {
name
posts {
title
}
}
}

이렇게 요청하면 서버는 사용자 이름과 그 사용자가 작성한 게시물의 제목들을 반환해 줍니다.


결론

GraphQL은 클라이언트가 필요한 데이터만 요청할 수 있는 효율적인 API입니다. REST API보다 데이터 전송이 최적화되고, 여러 요청을 하나로 통합할 수 있다는 장점이 있습니다.

작성일 댓글 한 개

노안

오늘은 노안에 대해서 이야기 해보겠습니다.

제 친구 중 한 놈은 중학생때 쯤부터 노안이었습니다.
누가봐도 중학생으로 안 봤죠.
30년쯤 지나서야 제 나이로 보입니다.
그동안 더 늙지는 않아서 다행입니다?

저는 동안입니다.
엄청난 동안이었고 지금은 조금 동안입니다.
나이 서른 넘어서도 술 살 때 민증 요구 받았다니까요.
안 믿어도 상관없습니다.
진실은 변하지 않아요.
마트캐셔 그 분은 진지했습니다.

아 사실 그 노안 말고 시력 얘기할려고 한겁니다.
저는 남들보다 노안이 일찍 시작되었습니다.
하루 죙일 컴퓨터를 쳐다봐서 그런건지
좀 일찍 만진 스마트폰을 하루 죙일 들여다봐서 그런지
나이 먹고 오버워치를 3년쯤 해서 눈이 힘들어했는지
원래 그러려고 했던 눈이었는지는 모르겠습니다.

전에 안과에 가서 왼쪽눈이 가까운 것을 또렷이 못 본다고 했더니 원시라고 하더군요.
노안 얘기는 안해서 그냥 원시구나 했습니다.
근데 지금은 그냥 노안 같아요.

자기계발에 게을러진 핑계 하나 대자면 노안 때문에 책을 안 보게 됩니다.
뿐만 아니라 사용설명서라던가 제품설명서라던가 하여간 자잘한 글씨 보기가 귀찮아집니다.
눈에 집중력이 안 생기는 것 같습니다.
사실 자잘하지 않은 글씨도 대충 읽어서 오독하는 경우가 자주 있습니다.
눈이 흐리멍텅하니 머리도 흐리멍텅하게 되는 것 같습니다.

근래 몇년간은 매일 아침부터 잠들 때까지 노안을 의식하면서 살았습니다.
요즘은 스마트폰 사용이 삶의 큰 비중을 차지하므로 더욱 그랬습니다.
아침에 일어나 스마트폰으로 알림 온 것을 확인하는 것으로 하루를 시작하고 뉴스도 보고 sns도 하고 구글링도 하고 그러죠.
스마트폰으로 게임은 안 합니다.
아마도 스마트폰을 볼 일만 없어도 노안을 이다지 신경쓰고 있지는 않았을 것 같습니다.

노안 초반에는 꽤 우울했습니다.
나이 먹고 체력 떨어지는거는 그냥 그러려니 했는데 노안은 타격이 꽤 크더군요.
지금은 적응이 되서 우울하진 않습니다.
볼 수 있다는 것만으로 이 얼마나 행복한가 생각함으로 가끔 기분전환을 합니다.
뭐 너무 불편하면 안경을 쓰면 되겠죠.

몇십년 후에는 노안에 대한 획기적인 대책이 발명될까요?
수술이 아닌 간단한 약물주사나 먹는 약으로 눈의 근력을 회복시키고 원하는 시력을 얻을 수 있을까요?
제가 죽을 날까지는 별 기대는 안됩니다.
그러나 급격히 발전하는 세상이니 뭐 모르죠.