1分で分かる!graphqlとは?
う~ん。どうすればいいんだろう…。
ことりん君、なにか悩みごとかな?
あ、ジャバード先生!実はそうなんだ。
いったいどうしたの??
以前、ひまわりミュージックさん、音楽のストリーミング配信事業をやってるって話したよね?
あぁ、たしかKubernetesをオススメしたときの話だね。その配信事業で何か問題があったの?
そうなんだ。その配信サイトのパフォーマンスが悪化しているみたいなんだよね。最初はそんなことなかったんだけど、リリースしたときよりもコンテンツ数が増えたみたいだし、いろんな機能も追加されているから仕方ないのかなぁ。
なるほどね。それはひまわりミュージックさんも困っているだろうね。ほかに何か情報はあるかな?
あ、そういえばその配信サイトは、社内のデータ基盤チームが開発したAPIを使ってデータの操作をしているとかいってたな。そのAPIのパフォーマンスが劣化しているかも?っていってた気がする。
ふむふむ。APIね…。ちょっと詳しいことはわからないけど、将来を見据えてGraphQL (グラフキューエル)を採用してみるのも面白いかもね。
ぐらふきゅーえる?なにそれ?
GraphQLは、Meta社(旧:Facebook社)が開発したAPI用の言語だよ。規格みたいなものと理解してもらえるといいかな。
Facebookって、SNSだけを開発しているのかと思ったけど、結構いろんな技術を開発しているんだね。それで、そのGraphQLを使うとどうなるの?
現在、APIの規格としてはREST-APIというやつがスタンダードなんだ。そのREST-APIと比較すると、GraphQLはかなりシンプルになるんだよ。
シンプル?
そうそう。REST-APIは対象のリソースごとにリクエストするURLを分ける必要があるんだ。たとえば、「音楽情報を扱うURL」、「アーティスト情報を扱うURL」、「レコード会社情報を扱うURL」といった感じだね。
あぁ、それは結構複雑になりそうだね。
GraphQLは、URLで分ける必要がなくて、そのURLにリクエストするときに渡す情報でどんなデータを取得するかを指示するんだ。だからAPIを実装する側は開発対象が減るし、APIを利用する側もいろんなAPIを呼ぶ必要がなくなるというわけだ。
あぁ、なんかだいぶ楽になりそう!
あとREST-APIの場合は、不要なデータも含めて取得してきちゃうんだ。だから「音楽情報の中のタイトルとアーティスト名だけ取得」みたいなことができないんだよ。
あぁ、いらないデータもまるごと取得しちゃうというわけだね。
そう!つまりREST-APIは、不要なデータを取得しちゃったり、1ページに表示するデータ取得のために、何回もAPIを呼ぶ必要があるというわけだ。こういったポイントの積み重ねがパフォーマンスを劣化させてしまう原因になっているかもしれないね。
じゃあ、GraphQLだとそのあたりを解決することができるってことだね!
そのとおり!GraphQLについてなんとなくわかったかな?
うん!GraphQLがどんなものかわかったよ!ジャバード先生ありがとう!
はーい!ひまわりミュージックさん、喜んでくれるといいね!
GraphQLとは?採用に役立つ基礎知識
GraphQLとは、Meta社(旧:Facebook社)が開発したAPI用言語です。2015年、GraphQLはオープンソースソフトウェアとして公開されました。それ以降、Web業界では新たなAPIの形として大きな注目を集めています。
GraphQLを利用することで、開発生産性の向上、高度な柔軟性の実現、あるいはアプリケーションのパフォーマンス改善を期待できます。一方で、まだまだ新しい技術であることから、日本語での情報が極端に少ないという問題もあります。
GraphQLを使うエンジニア
GraphQLは、Web APIに関する規格です。そのため、Web APIを開発するサーバーサイド(バックエンド)エンジニアが開発します。
GraphQLを使うエンジニアの特徴と在籍業界
GraphQLを使うエンジニアの特徴としては、新しいものが好きという傾向があります。また、既存のライブラリやフレームワークなど、具体的な課題などを解消できるできる
なお、 GraphQLを使うエンジニアは、主にWeb業界に在籍しています。ただし、Web業界のみにしか在籍していないというわけではなく、さまざまな業界やさまざまな企業で働いています。
採用する時に知っておくとよいこと
GraphQLの学習コストと人気度
GraphQLは、比較的新しい技術であるため、あまり耳にしたことがないという方も多いかもしれません。ただ、学習コストはあまり高くないため、比較的容易に習得ができるといわれています。
何よりも、これまで一般的であったREST-APIよりも圧倒的にシンプルとなるため、いわゆる「爆速開発」しやすくなります。
現在、GraphQLの人気は上昇しつつあります。今後も注目の技術といえるでしょう。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス
GraphQLの豆知識
GraphQLを採用しているサービス
ここではGraphQLを採用している企業やサービスを紹介します。
Netflix社
Netflix社については、もはや説明不要かと思いますが、同社の動画配信サービスは、先進的なアーキテクチャによって、競争力を高めています。Netflix社では、GraphQLを採用することで、開発生産性をはじめとする様々な課題を解決しているようです。
ヤフー株式会社 GYAO!
GYAO!は、ヤフー株式会社が開発・運営している動画配信サービスです。GYAO!のトップページは、表示時のパフォーマンスやAPIの拡張性低下という問題を抱えていたそうですが、GraphQLの採用などにより、解決へ導いたようです。
GraphQL関連のイベント
ここではGraphQLに関するイベントを紹介します。
GraphQL Summit
GraphQL Summitは、Apollo GraphQLという組織によって主催されている世界最大級のGraphQLのイベントです。このイベントは2日間を通して、トークセッションやワークショップが行われます。
GraphQLConf
GraphQLConfは、ドイツのソフトウェア企業であるGraphCMS社とCommercetools社が主催するGraphQLに特化したイベントです。このイベントにはスピーカーとして、主催している2社のエンジニアなどはもちろん、GitHub、LinkedIn、Netflixといったテック企業のエンジニアが参加しています。
参考:GraphQLConf