GraphQL
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
Categories
- async-graphql - The GraphQL server library implemented by rust
- GraphJin - 빠른 GraphQL API 만들기
- Graphqurl
- tuql - SQLite DB에서 GraphQL 서버를 자동생성하는 도구
- Graphweaver - 여러 데이터소스를 하나의 GraphQL API로 묶기
GraphQL은 훌륭하지만, 좀 과장된 것 같음
GraphQL은 훌륭하지만, 좀 과장된 것 같음. 초보~중급 개발자는 유튜브 보고 GraphQL을 사용하게 되는 것 같은데, 이건 잘못된 듯.
장점
- 원하는 데이터를 쉽게 설명 가능
- 대역폭을 절약. 원하는 만큼 한번에 가져올 수 있음
- 데이터 소비자를 위한 문서 만들기 쉬움
- 구독을 더 쉽게 사용 가능
- API 호출을 묶는게 가능
단점
- 실제로 사용하기 고통스러움. 사용하는 백엔드에 따라 당신의 언어로 생성해주지 않으면 2개 또는 그 이상의 타입시스템을 관리해야함
- 맵/테이블/딕셔너리를 지원하지 않음. 이게 정말 큼. 하고 싶지 않지만 어디선가에선
{[key: string] : T}
를 쓰게됨 - API 버전 관리에 대한 명확한 방법이 없음. 끝내는 MyQueryV1.01 MyQueryV1.02 MyQueryV1.03 처럼 하게 될 것
페이스북이 GraphQL을 위해 의도한 솔루션/문제 세트를 당신이 처리하는게 아니라면 GraphQL을 사용하지 마세요. 다른 시니어 개발자들은 어떤 현명한 말들로 신입 개발자들이 이 수렁에 빠지는 걸 구해주실 수 있을까요?