Image
Network/GraphQL

[GraphQL] 7. GraphQL 의 Query Alias(별칭) 사용해 필드명 바꾸기

서버 통신 시 Alias의 필요성

안드로이드 개발을 할 때 우리가 Retrofit + Gson(혹은 Moshi) 라이브러리를 사용해 서버와 통신할 때 서버의 이름이 우리가 쓰는 클래스의 필드명과 일치하지 않을 경우가 있다. 이런 경우 데이터 처리를 위해 @SerializedName("[서버의 필드명]")을 사용해 서버의 필드명을 클래스의 필드명에 대입시킨다. 이렇게 하는 이유는 서버의 필드명이 클라이언트의 필드명과 일치하지 않을 경우 데이터 처리가 복잡해지기 때문이다.

 

서버의 필드명이 강제되는 REST API와는 달리 GraphQL은 우리가 쿼리를 만들어 낼 수 있어 쿼리단에서 데이터의 필드명 자체를 변경할 수 있다. 따라서 아예 서버에서 데이터를 받아온 후 필드명을 바꿀 필요 없이 데이터를 받아올 때 필드의 명칭 자체를 변경시킬 수 있다. 이때 이용하는 것이 바로 alias이다.

 

GraphQL의 Alias

GraphQL은 SQL의 Alias 기능 처럼 처음 가져올 때 필드명을 변경하는 Alias 기능을 제공한다. 예를 들어보자. 아래 그림1과 같은 쿼리를 날릴 경우 title 필드는 title로 데이터가 온다.

 

그림1. GraphQL의 필드

 

이 경우 우리는 다음의 방식으로 필드의 Alias를 지정할 수 있다.

 

[Alias] : [Field Name]

 

예를 들어 위 [그림1]의 쿼리에서 title이 아니라 filmTitle로 데이터를 받아야 하는 경우 [그림2]와 같이 필드를 지정하면 된다.

 

그림2. Query Alias

 

그러면 [그림1]에서 title로 오던 데이터가 filmTitle로 오는 것을 [그림3]에서 확인할 수 있다.

 

그림3. Query Alias 예시

 

Alias를 지정하면 서버가 Alias를 이요해 새로운 필드 명칭을 반환한다. 

반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

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

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

open.kakao.com