SlideShare a Scribd company logo
1 of 45
Download to read offline
NuxtJS + REST APIで
運用中サービスをNuxtJS + GraphQL
に変更したことによる光と影
アウモ株式会社 エンジニアチームマネージャー 村田翔
自己紹介
2
• 名前
• 村田 翔
• 担当
• サーバーサイド兼フロントエンドエンジニア
• メインはRuby on Rails
• aumo歴
• 3年弱(サーバーサイドでは最古参)
• 旅行好きなのもあって、aumoに長らく在籍
3
ⓘ Start presenting to display the poll results on this slide.
aumoはご存知ですか?
• おでかけ領域をメインに、旅行やグルメ情報をお届けするメディア
• アプリ
• Webサービス
aumoはご存知ですか?
4
記事サイト 比較サイト <- 今回NuxtJS + GraphQLに変更した対象
5
記事 × SNS
iOS
Android
6
記事 × ユーザー生成コンテンツ
7
記事 × ユーザー生成コンテンツ × ホテル × 宿泊プラン横断検索
8
記事 × ユーザー生成コンテンツ × グルメ
9
記事 × ユーザー生成コンテンツ × レジャー・ショッピング
1.なぜREST APIからGraphQLに変更したのか
2.GraphQL化して見えたこと
• 光
• エンドポイント
• 仕様変更
• 影
• N+1
• エラーハンドリンク
• ログ解析
今日お伝えすること
10
1.なぜREST APIからGraphQLに変更したのか
2.GraphQL化して見えたこと
• 光
• エンドポイント
• 仕様変更
• 影
• N+1
• エラーハンドリンク
• ログ解析
今日お伝えすること
11
12
ⓘ Start presenting to display the poll results on this slide.
GraphQL使っていますか?
• バックエンド
• Ruby on Rails
• REST API
• GraphQL
• graphql
• graphql-batch
• graphiql-rails
• フロントエンド
• NuxtJS
• ログ監視
• Papertrail
• Sentry
構成
13
構成
14
Amazon EC2 Amazon EC2ELB
サブドメインで
3サイトを同一インスタンスに搭載
フロントエンド バックエンド
構成
15
Amazon EC2 Amazon EC2ELB
サブドメインで3サイト搭載
• middlewareでFQDN毎にパスチェック
• 各トップページはFQDNを元にコンポーネント出しわけ
• 各詳細ページはNuxtJSのディレクトリ規約に沿って設置
フロントエンドでのサイト分割
● エンドポイントを極力増やしたくない
● 工数削減
16
初期から3サイト作成
という要件なのかというと...
17
初期要件
18
• ホテルの比較サイトを作りましょう
• 単一サイトなので既存の記事サイト同様にバックエンドはREST API
でいいか
• グルメのサイトも作りましょう
• バックエンドはAPIのエンドポイント増やして対応すればいいか
要件追加
19
要件追加
20
• レジャー・ショッピングのサイトも作りましょう
• さらに別ジャンルで展開する可能性出てくるなこれ🤔
• APIのエンドポイントを都度増やしていくのは何だかなぁ
要件追加
21
• 各サイトを巡回されるような動線になる要素欲しいですね
• 各サイト用に用意しているAPIエンドポイントそれぞれ修正いるな
• API多いと作業煩雑だし、また類似の要件追加くるだろなこれ 🤔
そこで...
22
• クエリ言語
• エンドポイント単一
• 必要な情報だけ取得できる
• クエリで指定したフィールドのみ返却される
• Facebook社が2012年から開発
• 採用している組織はFacebook、GitHub、PayPalなど数百を越す
GraphQLとは
23
各サイトで必要な情報を共通のエンドポイントで
網羅できるのは、実装が楽になりそうな予感!
※新しい技術を取り入れたい欲有あり
24
実際にREST API -> GraphQL化してみた
25
1.なぜREST APIからGraphQLに変更したのか
2.GraphQL化して見えたこと
• 光
• エンドポイント
• 仕様変更
• 影
• N+1
• エラーハンドリンク
• ログ解析
今日お伝えすること
26
エンドポイント
27
[GET] /api/v1/hotels
[GET] /api/v1/hotels/{hotel_id}
[GET] /api/v1/hotels/search
[GET] /api/v1/gourmets
[GET] /api/v1/gourmets/{gourmet_id}
・
・
・
ルーティング追加して、
コントローラー追加して、
ビュー追加して・・・
• サイト追加毎に増えていくエンドポイント...
• エンドポイント単一
エンドポイント
28
[GET] /api/v1/hotels
[GET] /api/v1/hotels/{hotel_id}
[GET] /api/v1/hotels/search
[GET] /api/v1/gourmets
[GET] /api/v1/gourmets/{gourmet_id}
・
・
・
ルーティング追加して、
コントローラー追加して、
ビュー追加して・・・
[POST] /graphql
スキーマとフィールド更新のみ
×
• 各サイトの詳細ページに周辺施設情報の要素追加したい
画面仕様変更への対応
仕様変更
29
• REST APIの場合
• バックエンド
• 対象エンドポイントのレスポンスに要素追加 or エンドポイント追加
• フロントエンド
• 新規要素表示
• エンドポイント追加の場合は新たに呼び出し追加
各サイトの詳細ページに周辺施設情報の要素追加したい
仕様変更
30
• GraphQLの場合
• バックエンド
• スキーマとフィールド更新
• フロントエンド
• 新規要素表示
• クエリに新規で追加する要素を追記
各サイトの詳細ページに周辺施設情報の要素追加したい
仕様変更
31
追加の場合はあまり工数的にかわらなそう 🤔
各サイトの詳細ページに周辺施設情報の要素追加したい
仕様変更
32
• REST APIの場合
• バックエンド
• 対象のエンドポイントのレスポンスから削除 or エンドポイント追加
• フロントエンド
• 要素削除
各サイトの詳細ページに周辺施設情報の要素削除したい
仕様変更
33
各サイトの詳細ページに周辺施設情報の要素削除したい
仕様変更
34
• GraphQLの場合
• バックエンド
• そのまま
• フロントエンド
• 要素削除
各サイトの詳細ページに周辺施設情報の要素削除したい
仕様変更
35
• 要素削除の場合はフロントエンドの修正だけでいける
• バックエンドは対象の要素をクエリで指定されない限り、その要素を
取得する処理は走らないため無駄が出ない
1.なぜREST APIからGraphQLに変更したのか
2.GraphQL化して見えたこと
• 光
• エンドポイント
• 仕様変更
• 影
• N+1
• エラーハンドリンク
• ログ解析
今日お伝えすること
36
• スキーマ毎にクエリが走る
associationが適切なタイミングでeager loadされていない
N+1
37
• loadの該当fieldを要求されたときだけeager loadが走り、事
後でWHERE INされる
graphql-batchを導入
N+1
38
• フロントエンドでレスポンスステータスによるエラーハンドリ
ングができない
GraphQLは常にレスポンスステータス200を返却する
エラーハンドリング
39
×
• catchの中でerror関数を呼ぶ
レスポンスステータスによるエラーハンドリングは行わない
エラーハンドリング
40
• エンポイントが単一なため全て request_uri: /graphql
• レスポンス速度の調査などで問題箇所の洗い出しが困難
リクエストパス毎の解析ができない
ログ解析
41
• リクエストボディ毎に分けることで呼び出し箇所の分類できる
• レスポンス速度などに問題がある箇所の特定できる
リクエストボディまでログに出力する
ログ解析
42
まとめ
43
● エンドポイントを極力増やしたくない
○ 同じ情報を複数サービスで使い回す場合に有効
● 工数削減
○ 画面要件が頻繁に変わるサービスでは効果高い
44
達成
達成
45

More Related Content

What's hot

Xamarin + Azure Mobile Appsの現実
Xamarin + Azure Mobile Appsの現実Xamarin + Azure Mobile Appsの現実
Xamarin + Azure Mobile Appsの現実Kazuyuki Miyake
 
「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyoMasahiro NAKAYAMA
 
サバ缶のない世界でスカイアーチはこの先生きのこれるのか考える
サバ缶のない世界でスカイアーチはこの先生きのこれるのか考えるサバ缶のない世界でスカイアーチはこの先生きのこれるのか考える
サバ缶のない世界でスカイアーチはこの先生きのこれるのか考える真吾 吉田
 
モバイルゲームにおけるAWSの泥臭い使い方
モバイルゲームにおけるAWSの泥臭い使い方モバイルゲームにおけるAWSの泥臭い使い方
モバイルゲームにおけるAWSの泥臭い使い方Junpei Nakada
 
クラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYS
クラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYSクラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYS
クラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYSHideki Ojima
 
Moderator Slide for Global Azure Bootcamp 2019@Sapporo
Moderator Slide for Global Azure Bootcamp 2019@SapporoModerator Slide for Global Azure Bootcamp 2019@Sapporo
Moderator Slide for Global Azure Bootcamp 2019@SapporoYasuaki Matsuda
 
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyoBluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyoMasahiro NAKAYAMA
 
グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!Kazuki Morozumi
 
現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターン現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターンcmaraiyusuke
 
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事Hiroyuki Hiki
 
AWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのことAWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのこと真吾 吉田
 
jaws-ug kansai-special_kinesis_20150207
jaws-ug kansai-special_kinesis_20150207jaws-ug kansai-special_kinesis_20150207
jaws-ug kansai-special_kinesis_20150207Toshiyuki Konparu
 
20141017 あなたのword pressに捧げる3つの法要
20141017 あなたのword pressに捧げる3つの法要20141017 あなたのword pressに捧げる3つの法要
20141017 あなたのword pressに捧げる3つの法要Seiji Akatsuka
 
Asp.netとbluemixで遊んでみたお話
Asp.netとbluemixで遊んでみたお話Asp.netとbluemixで遊んでみたお話
Asp.netとbluemixで遊んでみたお話Kazunori Hamamoto
 
懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた裕之 木下
 
AWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYSAWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYS崇之 清水
 
Jawsug osaka10 service&regions
Jawsug osaka10 service&regionsJawsug osaka10 service&regions
Jawsug osaka10 service&regionsTakuro Sasaki
 

What's hot (20)

Xamarin + Azure Mobile Appsの現実
Xamarin + Azure Mobile Appsの現実Xamarin + Azure Mobile Appsの現実
Xamarin + Azure Mobile Appsの現実
 
「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo
 
サバ缶のない世界でスカイアーチはこの先生きのこれるのか考える
サバ缶のない世界でスカイアーチはこの先生きのこれるのか考えるサバ缶のない世界でスカイアーチはこの先生きのこれるのか考える
サバ缶のない世界でスカイアーチはこの先生きのこれるのか考える
 
モバイルゲームにおけるAWSの泥臭い使い方
モバイルゲームにおけるAWSの泥臭い使い方モバイルゲームにおけるAWSの泥臭い使い方
モバイルゲームにおけるAWSの泥臭い使い方
 
クラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYS
クラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYSクラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYS
クラウドとコミュニティのこれまでとこれから 20150322_#JAWSDAYS
 
Moderator Slide for Global Azure Bootcamp 2019@Sapporo
Moderator Slide for Global Azure Bootcamp 2019@SapporoModerator Slide for Global Azure Bootcamp 2019@Sapporo
Moderator Slide for Global Azure Bootcamp 2019@Sapporo
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
 
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyoBluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
 
グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!
 
現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターン現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターン
 
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
 
Free
FreeFree
Free
 
AWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのことAWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのこと
 
jaws-ug kansai-special_kinesis_20150207
jaws-ug kansai-special_kinesis_20150207jaws-ug kansai-special_kinesis_20150207
jaws-ug kansai-special_kinesis_20150207
 
20141017 あなたのword pressに捧げる3つの法要
20141017 あなたのword pressに捧げる3つの法要20141017 あなたのword pressに捧げる3つの法要
20141017 あなたのword pressに捧げる3つの法要
 
Asp.netとbluemixで遊んでみたお話
Asp.netとbluemixで遊んでみたお話Asp.netとbluemixで遊んでみたお話
Asp.netとbluemixで遊んでみたお話
 
懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた懲りずにazure functionsでlinebotを作ってみた
懲りずにazure functionsでlinebotを作ってみた
 
AWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYSAWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYS
 
Jawsug osaka10 service&regions
Jawsug osaka10 service&regionsJawsug osaka10 service&regions
Jawsug osaka10 service&regions
 

Similar to NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影

比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)gree_tech
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressTakahiro YAMAGUCHI
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編Kentaro Yoshida
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うかYutaka Tachibana
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組みJJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組みRecruit Technologies
 
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)LIFULL Co., Ltd.
 
Visualize terms network in Lucene index
Visualize terms network in Lucene indexVisualize terms network in Lucene index
Visualize terms network in Lucene indexKoji Sekiguchi
 
Life and how_to_live_it
Life and how_to_live_itLife and how_to_live_it
Life and how_to_live_itToshiro Yagi
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値Keisuke Nishitani
 
【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性Koji Asaga
 
S14 t3 yosuke_yamashita
S14 t3 yosuke_yamashitaS14 t3 yosuke_yamashita
S14 t3 yosuke_yamashitaTakeshi Akutsu
 
About rails 3
About rails 3About rails 3
About rails 3issei126
 
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話Sadao Tokuyama
 
広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼン広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼンKakigi Katuyuki
 

Similar to NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影 (20)

比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
Staticwp 20131013
Staticwp 20131013Staticwp 20131013
Staticwp 20131013
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
俺とAngular JS 2
俺とAngular JS 2俺とAngular JS 2
俺とAngular JS 2
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組みJJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
 
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
 
Visualize terms network in Lucene index
Visualize terms network in Lucene indexVisualize terms network in Lucene index
Visualize terms network in Lucene index
 
Life and how_to_live_it
Life and how_to_live_itLife and how_to_live_it
Life and how_to_live_it
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値
 
Ruby on Rails on Azure
Ruby on Rails on AzureRuby on Rails on Azure
Ruby on Rails on Azure
 
【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性
 
S14 t3 yosuke_yamashita
S14 t3 yosuke_yamashitaS14 t3 yosuke_yamashita
S14 t3 yosuke_yamashita
 
About rails 3
About rails 3About rails 3
About rails 3
 
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
 
広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼン広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼン
 

More from gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介gree_tech
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてgree_tech
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験gree_tech
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組みgree_tech
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違いgree_tech
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介gree_tech
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてgree_tech
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーgree_tech
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-gree_tech
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話gree_tech
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行gree_tech
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜gree_tech
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)gree_tech
 
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-gree_tech
 

More from gree_tech (20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
 

NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影