Why GraphQL?

Taegyung Gong·2020년 11월 19일
0

GraphQL

목록 보기
1/3
post-thumbnail

GrapqhQL 시작하기

GraphQL은 페이스북에서 만든 쿼리 언어입니다.
등장한지 얼마되지 않았음에도 불구하고, GraphQL의 인기는 점점 올라가고 있다는 사실을 감안했을 때 도전적으로 배워보기에 상당히 괜찮은 기술 스택같아 보입니다.



GrapqhQL 이란?

GraphQL은 Structed Query Language(sql)와 마찬가지로 쿼리 언어입니다.

gql과 sql의 언어적 구조 차이와 쓰이는 방식의 차이도 상당히 큽니다.

sql

SELECT plot_id, species_id, sex, weight, ROUND(weight / 1000.0, 2) FROM surveys;

gql

{
  user {
    name
    friends {
      name
    }
  }
}

sql의 문장(statement)은 주로 백앤드 시스템에서 작성하고 호출 하는 반면, gql의 문장은 주로 클라이언트 시스템에서 작성하고 호출 합니다.


Why GraphQL?

End-Point

하나End-Point를 지니는 GraphQL

그림을 보면 GraphQL의 컨셉은 매우 간단합니다.
하나의 End-Point모든 질의-응답을 시행한다는 것이 상당히 매력적입니다😊


Itrospection

이전 프로젝트 협업 방식에서는 API 명세서를 주고 받는 절차가 반드시 필요 했습니다. 이 API 명세서는 수정이 필요했을 때 때때로 관리가 제대로 되지 않거나 수정을 화지 못해 제 타이밍에 전달 못했었 던 적이 있습니다.

이러한 REST의 API 명세서 공유와 같은 문제를 해결하는 것이 gql의 인트로스펙션 기능 입니다. gql의 인트로스펙션은 서버 자체에서 현재 서버에 정의된 스키마의 실시간 정보를 공유를 할 수 있게 합니다. 클라이언트 사이드에서는 실시간으로 현재 서버에서 정의하고 있는 스키마를 의심 할 필요 없이 받아들이고, 그에 맞게 쿼리문을 작성하면 됩니다.

웹 IDE 화면



마치며

GraphQL을 찾아봤을 때 GraphQL Server와 Client에 관련한 러닝 커브가 존재한다는 점을 봤을 때 프로젝트를 시작하면서 배우면서 시작하기에 다소 무거워 보이는 주제이긴 합니다.

개인적으로는 자료를 찾아보고 공부했을 때 End-point가 하나라는 점, API 명세서의 관리가 단순화된다는 점에서 프로젝트를 시작하고 협업하는 지금은 상당히 매력적인 장점 같아 보입니다.

물론 아직 GraphQL을 배우기 시작하는 단계라 장단점을 판단하기 어렵고 프로젝트를 진행하면서 할 수 있다, 할 수 없다 등 단순하게 결론을 내릴 수 없지만 네이버 부스트 캠프에서 만난 멋진 팀원들과 함께라면 많은 것들을 같이 공유하고 배울 수 있어 보입니다.😊

프로젝트를 진행하면서 사용하다 보면 장단점을 직접 느낄 수 있지 않을까 또 그 경험 속에서 많은 것들을 배울 수 있지 않을까 하는 기대감 속에 열심히 공부할 예정입니다.😁

참고

Kakao Tech Blog
참고 블로그
참고 블로그

profile
Web developer🐳

0개의 댓글