Why GraphQL?
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을 배우기 시작하는 단계라 장단점을 판단하기 어렵고 프로젝트를 진행하면서 할 수 있다, 할 수 없다 등 단순하게 결론을 내릴 수 없지만 네이버 부스트 캠프에서 만난 멋진 팀원들과 함께라면 많은 것들을 같이 공유하고 배울 수 있어 보입니다.😊
프로젝트를 진행하면서 사용하다 보면 장단점을 직접 느낄 수 있지 않을까 또 그 경험 속에서 많은 것들을 배울 수 있지 않을까 하는 기대감 속에 열심히 공부할 예정입니다.😁
참고
Author And Source
이 문제에 관하여(Why GraphQL?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@taeg92/GraphQL-Getting-Started저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)