[{"data":1,"prerenderedAt":1865},["ShallowReactive",2],{"/ja-jp/blog/what-is-graphql":3,"navigation-ja-jp":1092,"banner-ja-jp":1513,"footer-ja-jp":1522,"blog-post-authors-ja-jp-GitLab Team":1763,"blog-related-posts-ja-jp-what-is-graphql":1779,"blog-promotions-ja-jp":1803,"next-steps-ja-jp":1856},{"id":4,"title":5,"authors":6,"body":8,"category":1071,"date":1072,"description":1073,"extension":1074,"externalUrl":1075,"featured":1076,"heroImage":1077,"meta":1078,"navigation":1079,"path":1080,"seo":1081,"slug":1083,"stem":1084,"tags":1085,"template":1089,"updatedDate":1090,"__hash__":1091},"blogPosts/ja-jp/blog/what-is-graphql.md","【入門編】GraphQLとは？RESTとの主な違いや特徴をわかりやすく解説",[7],"GitLab Team",{"type":9,"value":10,"toc":1005},"minimark",[11,15,18,21,24,29,36,39,42,45,49,55,58,63,66,69,73,76,79,161,165,168,171,174,177,181,187,190,209,213,216,219,223,226,229,233,236,240,243,246,250,253,256,260,266,269,286,290,293,296,300,303,306,309,313,316,320,323,326,330,333,336,340,346,349,353,356,360,363,366,369,373,379,382,385,388,391,395,401,404,421,425,428,432,435,439,442,445,449,452,455,459,462,465,469,475,478,489,493,496,499,503,506,509,513,516,520,523,634,637,641,647,650,653,656,660,666,669,683,687,690,693,697,700,703,707,710,713,717,720,724,730,733,772,776,782,785,796,800,803,806,810,813,816,820,823,826,829,833,842,845,849,858,861,875,878,882,885,888,891,895,901,904,907,910,914,920,923,927,930,933,937,940,951,954,958,961,964,970,974,977,980,987,997],[12,13,14],"p",{},"ソフトウェア開発の領域では、開発効率の向上やリアルタイムなデータ連携などを目的として「API」の重要性が高まっています。",[12,16,17],{},"代表的なものとして「REST API」が挙げられますが、近年では「GraphQL」と呼ばれるアプローチにも注目が集まっており、多くの開発現場で採用されています。",[12,19,20],{},"ただ、GraphQL導入を検討するに当たり、「従来のREST APIとはどう違うのか？」「GraphQLはどういったケースに適しているのか？」と悩むケースも少なくありません。",[12,22,23],{},"そこでこの記事では、GraphQLの基礎知識やメリット、デメリット、REST APIとの違いを詳しく解説します。実際にどのようなシーンで活用すべきなのかも紹介するので、ぜひ参考にして下さい。",[25,26,28],"h2",{"id":27},"_1-そもそもapiとは","1. そもそもAPIとは？",[12,30,31],{},[32,33],"img",{"alt":34,"src":35},"そもそもAPIとは？","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790857/ybdvcxskysjl3ccyi8es.jpg",[12,37,38],{},"まずGraphQLについて触れる前に、「APIとは何か？」という点について簡単に再確認しておきましょう。APIとは、「Application Programming Interface」の略語で、ソフトウェアコンポーネント間でデータや機能をやり取りするための規約・仕様を指します。つまり、APIは異なるアプリケーションやWebサービス同士をつなぐ橋渡し役として機能する技術です。",[12,40,41],{},"APIによってインターフェースが明確に定義されることから、フロントエンドとバックエンドを独立して開発・デプロイでき、それぞれ異なる技術スタックを選択することも可能になります。",[12,43,44],{},"GraphQLやRESTもAPI技術の一種であり、開発の要件や目的にあわせて正確な導入判断を行う必要があります。",[25,46,48],{"id":47},"_2-graphqlの基礎知識","2. GraphQLの基礎知識",[12,50,51],{},[32,52],{"alt":53,"src":54},"GraphQLの基礎知識","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790861/cv2tnehrpumtqc8spiue.jpg",[12,56,57],{},"APIについて理解したところで、GraphQLの基礎知識について解説します。ここでは、GraphQLの概要や仕組み、誕生した背景・歴史について紹介します。",[59,60,62],"h3",{"id":61},"_2-1-graphqlの概要定義","2-1. GraphQLの概要・定義",[12,64,65],{},"GraphQLは、Facebook社（Meta社）によって開発されたオープンソースのAPI向けのクエリ言語であり、そのクエリを実行するサーバーサイドのランタイム（実行環境）です。なお、クエリ言語とは、データに対して問い合わせをするための言語の総称を指します。",[12,67,68],{},"クエリ言語としてはSQLがよく知られていますが、SQLはデータベースを操作・検索するための言語であり、GraphQLはAPIに対してクエリを実行して必要なデータを取得する技術になります。",[59,70,72],{"id":71},"_2-2-graphqlの仕組み","2-2. GraphQLの仕組み",[12,74,75],{},"GraphQLは、クエリにより柔軟なデータ操作が可能で、必要なデータだけを抽出します。具体的には、クライアントが必要なデータを具体的に定義し、GraphQLサーバーはクライアントから受け取ったクエリの内容に応じて結果（データ）を返します。",[12,77,78],{},"GraphQLの仕組み・操作を理解するためには、GraphQLの構成要素とそれぞれの役割を把握しておくことが大切です。",[80,81,82,95],"table",{},[83,84,85],"thead",{},[86,87,88,92],"tr",{},[89,90,91],"th",{},"構成要素",[89,93,94],{},"詳細",[96,97,98,114,128,142,150],"tbody",{},[86,99,100,104],{},[101,102,103],"td",{},"スキーマ（Schema）",[101,105,106,107,110,111,113],{},"・APIの型定義",[108,109],"br",{},"・設計図",[108,112],{},"・APIで利用可能なデータ構造を定義",[86,115,116,119],{},[101,117,118],{},"クエリ（Query）",[101,120,121,122,124,125,127],{},"・データ取得の指示",[108,123],{},"・命令 ",[108,126],{},"・クライアントからサーバーへ操作を要求",[86,129,130,133],{},[101,131,132],{},"ミューテーション（Mutation）",[101,134,135,136,138,139,141],{},"・データの作成",[108,137],{},"・更新",[108,140],{},"・削除のための操作",[86,143,144,147],{},[101,145,146],{},"リゾルバー（Resolver）",[101,148,149],{},"クエリを実際のデータ取得ロジックに変換する関数",[86,151,152,155],{},[101,153,154],{},"サブスクリプション（Subscription）",[101,156,157,158,160],{},"・リアルタイム通信用（オプション）",[108,159],{},"・データ変更を自動で受け取る",[59,162,164],{"id":163},"_2-3-graphqlが誕生した背景と歴史","2-3. GraphQLが誕生した背景と歴史",[12,166,167],{},"GraphQLは先ほども少し触れた通り、Facebook社（Meta社）によって開発・公開されたAPI技術です。",[12,169,170],{},"Facebookが生まれてから数年後、モバイルアプリが急速に普及したことをきっかけに、Facebook社はモバイルのニュースフィードをREST APIで開発し始めました。しかし、REST APIでの開発では、必要なデータを取得するのに複数回のリクエストのやり取りが必要になるなど、処理が複雑化してしまうという課題が発生していました。",[12,172,173],{},"その課題を解決するためにFacebook社は2012年にGraphQLの開発をスタートさせ、2015年にオープンソースとして公開するに至ったのです。",[12,175,176],{},"GraphQLならREST APIよりも効率よくデータを取得できる利便性があることから、公開以降現在では多くの企業で採用されています。",[25,178,180],{"id":179},"_3-graphqlのメリット利点","3. GraphQLのメリット・利点",[12,182,183],{},[32,184],{"alt":185,"src":186},"GraphQLのメリット・利点","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790861/wmoilxlr8cbqyvbpwfns.jpg",[12,188,189],{},"開発現場においてGraphQLを利用するメリット・利点は以下の通りです。",[191,192,193,197,200,203,206],"ul",{},[194,195,196],"li",{},"必要なデータの取得",[194,198,199],{},"データの一括取得",[194,201,202],{},"バージョン管理の容易さ",[194,204,205],{},"型定義によるスキーマ駆動開発",[194,207,208],{},"ドキュメントの生成・管理が簡単",[59,210,212],{"id":211},"_3-1-必要なデータの取得","3-1. 必要なデータの取得",[12,214,215],{},"GraphQLなら、クライアントがクエリで必要なフィールドを具体的に指定できるため、本当に必要なデータだけを取得できるメリットがあります。つまり、必要以上のデータが返されるオーバーフェッチの抑制・回避に繋がります。",[12,217,218],{},"例えば、ユーザー情報の取得においてIDとパスワードだけ欲しい場合、そのフィールドだけ指定すればそのデータだけ取得できます。この柔軟性により、無駄なデータを扱う必要がないため、通信量の削減にも繋げられます。",[59,220,222],{"id":221},"_3-2-データの一括取得","3-2. データの一括取得",[12,224,225],{},"GraphQLは、オーバーフェッチだけでなく、アンダーフェッチの解消にも繋げられます。アンダーフェッチは、データ取得のために複数回のリクエストをしなければならない状態です。",[12,227,228],{},"REST APIでアンダーフェッチが生じてしまうケースでも、GraphQLなら1回のリクエストで求めるデータを全て取得できるメリットがあります。",[59,230,232],{"id":231},"_3-3-バージョン管理の容易さ","3-3. バージョン管理の容易さ",[12,234,235],{},"GraphQLはバージョン管理を簡素化できるメリットもあります。REST APIの場合は、仕様変更のたびに新しいエンドポイントを作成する必要があります。GraphQLなら新しいフィールドを定義するだけで済むため、既存クエリに影響を与えずAPIを段階的に拡張できます。",[59,237,239],{"id":238},"_3-4-型定義によるスキーマ駆動開発","3-4. 型定義によるスキーマ駆動開発",[12,241,242],{},"GraphQLでは、スキーマによってAPIで利用可能なデータ構造が定義されます。それにより、フロントエンドとバックエンド間で共通の認識を持つことができ、連携がスムーズになります。",[12,244,245],{},"また、型を明確に定義するため開発ミスを事前に防ぎやすく、システムの安全性や保守性を維持することが可能です。",[59,247,249],{"id":248},"_3-5-ドキュメントの生成管理が簡単","3-5. ドキュメントの生成・管理が簡単",[12,251,252],{},"GraphQLは自己文書化（self-documenting）なAPIであり、どのようなデータを扱えるかなどの仕様情報をスキーマを通して把握でき、簡単にドキュメントを生成することが可能です。ドキュメント整備はAPI開発において負担になりがちですが、GraphQLなら生成・管理コストを削減しやすいです。",[12,254,255],{},"また、新規の開発メンバーや外部の関係者にもAPI仕様を共有しやすくなります。",[25,257,259],{"id":258},"_4-graphqlのデメリット","4. GraphQLのデメリット",[12,261,262],{},[32,263],{"alt":264,"src":265},"GraphQLのデメリット","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790858/z8cqzqo2mlsqiqaudqb3.jpg",[12,267,268],{},"GraphQLには以下のようなデメリットもあるため、事前に把握しておくことが大切です。",[191,270,271,274,277,280,283],{},[194,272,273],{},"学習コストの高さ",[194,275,276],{},"セキュリティの課題",[194,278,279],{},"サーバー負荷の可能性",[194,281,282],{},"モニタリングの複雑化",[194,284,285],{},"N+1問題の発生",[59,287,289],{"id":288},"_4-1-学習コストの高さ","4-1. 学習コストの高さ",[12,291,292],{},"GraphQLは、学ぶべき内容が多いAPI技術です。GraphQLを扱うためには、クエリ言語やスキーマ設計、ミューテーション、リゾルバーなど、REST APIとは異なる用語や技術を理解する必要があります。また、GraphQL Federationを採用する場合は、さらに学習難易度が高くなります。",[12,294,295],{},"現状チーム内にGraphQLの経験・知識があるメンバーがいない場合は、教育コストも考慮しながら導入判断を行う必要があると言えるでしょう。",[59,297,299],{"id":298},"_4-2-セキュリティの課題","4-2. セキュリティの課題",[12,301,302],{},"GraphQLは柔軟なクエリで必要なデータを取得できますが、その柔軟性の高さがセキュリティリスクに繋がるケースもあります。例えば、悪意あるユーザーが不正なクエリを実行すればサーバーに過度な負荷がかかってしまいます。そのため、GraphQLを導入する際には適切なセキュリティ対策が必要です。",[12,304,305],{},"具体的な対策として、本番環境ではイントロスペクションクエリを無効化することが大切です。これが有効になっている場合、スキーマ全体が外部から閲覧可能になり、攻撃者に情報を提供してしまうためです。",[12,307,308],{},"また、認証（Authentication）と認可（Authorization）の実装が必須です。通常はJWTトークンをHTTPヘッダーに含めて認証し、各Resolverレベルで認可チェックを実装します。なお、フィールドレベルでのアクセス制御も可能です。",[59,310,312],{"id":311},"_4-3-サーバー負荷の可能性","4-3. サーバー負荷の可能性",[12,314,315],{},"GraphQLはクエリを自由に記述できますが、クエリ設計によってはサーバー側の処理が複雑になる可能性があります。クライアントが意図せずに大量のデータをリクエストした場合、サーバーに大きな負荷がかかってしまいます。その結果、処理時間が長くなるなどパフォーマンス低下に繋がるため注意が必要です。",[59,317,319],{"id":318},"_4-4-モニタリングの複雑化","4-4. モニタリングの複雑化",[12,321,322],{},"GraphQLのモニタリングは、REST APIと比較すると複雑になります。主な要因として、GraphQLの場合は1つのエンドポイントに全てのリクエストが集約される形で処理され、パフォーマンス分析が難しくなるためです。",[12,324,325],{},"モニタリングの課題を解決するためには、GraphQL特化型APMの導入など専用ツールの導入が必要になります。",[59,327,329],{"id":328},"_4-5-n1問題の発生","4-5. N+1問題の発生",[12,331,332],{},"N+1問題とは、簡潔に説明するとクエリの過剰発生のことで、本来であれば1回で済むはずだった処理が、追加の問い合わせによってパフォーマンスが低下する現象を指します。GraphQLでは、リゾルバーの独立性によってN+1問題が発生しがちです。",[12,334,335],{},"GraphQLにおけるN+1問題の解決方法としては、主に「DataLoader」と呼ばれるバッチ処理機能を持ったライブラリを使用します。",[25,337,339],{"id":338},"_5-graphql-federationとは","5. GraphQL Federationとは？",[12,341,342],{},[32,343],{"alt":344,"src":345},"GraphQL Federationとは？","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790857/xjoebd3chw74pbh5nua7.jpg",[12,347,348],{},"GraphQLの理解を深めるために、「GraphQL Federation」についても把握しておきましょう。ここでは、GraphQL Federationの概要や必要性について詳しく解説します。",[59,350,352],{"id":351},"_5-1-graphql-federationの概要","5-1. GraphQL Federationの概要",[12,354,355],{},"GraphQL Federationとは、複数のGraphQLサービスを統合して1つのGraphQL APIとして利用できるようにする仕組みを指します。主にマイクロサービス環境で採用され、大規模開発における通信処理の複雑さの課題を解消するためのアプローチです。次でGraphQL Federationのメリットや必要性について詳しく触れていきます。",[59,357,359],{"id":358},"_5-2-graphql-federationの必要性","5-2. GraphQL Federationの必要性",[12,361,362],{},"大規模システムにおいては、サービス間の連携のためにシステム全体のAPI数が増えやすくなります。例えば、ユーザー管理・商品管理・注文管理など機能ごとにAPIが分散されるケースでは、フロントエンド側は複数のAPIからデータを取得する必要があり、作業の効率性が下がってしまいます。",[12,364,365],{},"そこでGraphQL Federationを利用すれば、分散されたAPIを1つのGraphQL APIとして統合できるため、フロントエンドは単一のエンドポイントを通して全てのデータにアクセスすることが可能になります。",[12,367,368],{},"また、機能ごとの各チームが独立してAPIを管理できるようになるため、GraphQL Federationはマイクロサービスアーキテクチャを採用する大規模プロジェクトで最大限に効果を発揮します。",[25,370,372],{"id":371},"_6-rest-apiとは","6. REST APIとは？",[12,374,375],{},[32,376],{"alt":377,"src":378},"REST APIとは？","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790861/ckkhizw1xccuf3ylpm9k.jpg",[12,380,381],{},"GraphQL導入を検討する際には、REST APIについても把握しておくことが大切です。",[12,383,384],{},"REST APIとは、「Representational State Transfer」の略語で、Web上のデータをHTTP通信を用いて操作するWebアーキテクチャスタイルの一つです。",[12,386,387],{},"シンプルな実装が可能であることから、多くのWebサービスやアプリケーションで幅広く採用されています。なお、REST APIは、「RESTful API」や「RESTful Web API」とも呼ばれます。",[12,389,390],{},"次からREST APIのメリット・デメリットについて詳しく解説していきます。",[25,392,394],{"id":393},"_7-restのメリット","7. RESTのメリット",[12,396,397],{},[32,398],{"alt":399,"src":400},"RESTのメリット","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782445362/cruuocgtgfjje9v8dlak.jpg",[12,402,403],{},"REST APIには以下のようなメリットがあります。",[191,405,406,409,412,415,418],{},[194,407,408],{},"シンプルで実装や利用が容易",[194,410,411],{},"言語やプラットフォームに依存しない",[194,413,414],{},"キャッシュが活用しやすい",[194,416,417],{},"スケーラビリティの高さ",[194,419,420],{},"情報が豊富",[59,422,424],{"id":423},"_7-1-シンプルで実装や利用が容易","7-1. シンプルで実装や利用が容易",[12,426,427],{},"REST APIは、HTTPプロトコルに基づき、GET、POST、PUT、DELETEなどの標準メソッドを活用するため、シンプルで直感的な設計が可能になります。GraphQLよりも学習コストが低く、特別なライブラリやツールが不要であることから、初心者でも扱いやすいAPIです。",[59,429,431],{"id":430},"_7-2-言語やプラットフォームに依存しない","7-2. 言語やプラットフォームに依存しない",[12,433,434],{},"REST APIは、HTTP通信を基盤としたAPIであるため、特定のプログラミング言語やプラットフォームに依存せずに利用できます。さまざまな技術スタック間での連携がしやすいことから、開発の自由度や拡張性を高めやすいメリットがあります。",[59,436,438],{"id":437},"_7-3-キャッシュが活用しやすい","7-3. キャッシュが活用しやすい",[12,440,441],{},"キャッシュとは、データを一時的に保存して次回アクセス時に再利用する方法です。",[12,443,444],{},"REST APIは、HTTPキャッシュ機能を活用することで頻繁にアクセスされるデータをキャッシュできるため、パフォーマンスの向上やサーバー負荷の軽減に繋げられます。",[59,446,448],{"id":447},"_7-4-スケーラビリティの高さ","7-4. スケーラビリティの高さ",[12,450,451],{},"REST APIは、ステートレスな設計であることが特徴で、過去の通信状態を保持しないため、各リクエストが独立して処理される仕組みになっています。",[12,453,454],{},"この仕組みにより、アクセスが増えた際にもサーバーを追加してパフォーマンスを維持しやすいというメリットがあります。",[59,456,458],{"id":457},"_7-5-情報が豊富","7-5. 情報が豊富",[12,460,461],{},"REST APIはGraphQLが登場する前から広く利用されている技術で、Webサービスやモバイルアプリケーション、IoTデバイスなどさまざまな分野で活用できます。",[12,463,464],{},"そのため、ドキュメントやサポートが充実しており、初心者から上級者まで多くの開発者にとって利用しやすいAPIです。",[25,466,468],{"id":467},"_8-restのデメリット","8. RESTのデメリット",[12,470,471],{},[32,472],{"alt":473,"src":474},"RESTのデメリット","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790862/my2zwzcy1hruhpvxfpn1.jpg",[12,476,477],{},"次はREST APIのデメリットについても確認しておきましょう。",[191,479,480,483,486],{},[194,481,482],{},"データの過剰取得・不足の発生",[194,484,485],{},"ステートフルな処理には不向き",[194,487,488],{},"バージョン管理は必須",[59,490,492],{"id":491},"_8-1-データの過剰取得不足の発生","8-1. データの過剰取得・不足の発生",[12,494,495],{},"REST APIは、必要なデータだけが欲しい場合でも、使用しない不要なデータまで取得してしまう「オーバーフェッチ」が発生します。また、反対に必要なデータが不足して複数回のリクエストを送らなければならない「アンダーフェッチ」が発生するケースもあります。",[12,497,498],{},"つまり、REST APIはGraphQLよりもデータ取得の効率性が低く、通信量の増大やリソースの浪費に繋がることが課題の一つです。",[59,500,502],{"id":501},"_8-2-ステートフルな処理には不向き","8-2. ステートフルな処理には不向き",[12,504,505],{},"ステートフルな処理とは、サーバー側で過去のやり取りや状態を保持しながら処理を行う方式のことです。",[12,507,508],{},"REST APIはステートレス設計であるため、過去の情報を保持する必要があるシナリオには不向きです。例えば、長時間のセッション管理や連続的なトランザクション処理などにおいては、REST APIの利用は避けたほうが良いでしょう。",[59,510,512],{"id":511},"_8-3-バージョン管理は必須","8-3. バージョン管理は必須",[12,514,515],{},"REST APIでは、仕様変更の際に互換性の問題が発生する可能性があるため、既存クライアントへ影響を与えないようバージョン管理が必要になります。仕様変更を重ねるほどバージョン管理が複雑化しやすいため、運用負荷の増加に繋がります。",[25,517,519],{"id":518},"_9-graphqlとrestの違いを比較","9. GraphQLとRESTの違いを比較",[12,521,522],{},"ここまでGraphQLとREST APIのメリット・デメリットを解説してきましたが、両者の違いを明確に把握するために比較表で特徴を整理しました。",[80,524,525,538],{},[83,526,527],{},[86,528,529,532,535],{},[89,530,531],{},"比較要素",[89,533,534],{},"GraphQL",[89,536,537],{},"REST API",[96,539,540,551,568,579,590,601,612,623],{},[86,541,542,545,548],{},[101,543,544],{},"基本概念・設計思想",[101,546,547],{},"クライアントが必要なデータを定義して取得",[101,549,550],{},"独立したエンドポイントごとにデータを取得",[86,552,553,556,562],{},[101,554,555],{},"データ取得の効率性",[101,557,558,559,561],{},"・必要なデータだけを取得できる",[108,560],{}," ・一括取得も可能",[101,563,564,565,567],{},"・必要以上のデータが返される場合がある",[108,566],{}," ・複数通信が必要になる場合もある",[86,569,570,573,576],{},[101,571,572],{},"エンドポイント",[101,574,575],{},"単一のエンドポイント",[101,577,578],{},"複数のエンドポイント",[86,580,581,584,587],{},[101,582,583],{},"オーバーフェッチ・アンダーフェッチの有無",[101,585,586],{},"無",[101,588,589],{},"有",[86,591,592,595,598],{},[101,593,594],{},"バージョン管理",[101,596,597],{},"簡素化できる",[101,599,600],{},"複雑になりやすい",[86,602,603,606,609],{},[101,604,605],{},"モニタリング",[101,607,608],{},"単一のエンドポイントに処理が集約されるため分析が難しい",[101,610,611],{},"エンドポイントごとで可視化しやすい",[86,613,614,617,620],{},[101,615,616],{},"自己ドキュメント化",[101,618,619],{},"簡単",[101,621,622],{},"別途で管理が必要になるケースが多く、手間がかかる",[86,624,625,628,631],{},[101,626,627],{},"学習コスト",[101,629,630],{},"学習項目が多く、比較的高い",[101,632,633],{},"情報も多く、比較的低い",[12,635,636],{},"GraphQLとREST APIの特徴の違いを簡潔にまとめると、GraphQLは欲しい情報を自由に取得できる柔軟性に優れた仕組みであり、REST APIはシンプルで扱いやすいAPIだと言えます。",[25,638,640],{"id":639},"_10-graphqlとrestではどちらを選ぶべき","10. GraphQLとRESTではどちらを選ぶべき？",[12,642,643],{},[32,644],{"alt":645,"src":646},"GraphQLとRESTではどちらを選ぶべき？","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790856/sgez0b61q7qdf0fze8bb.jpg",[12,648,649],{},"自社のプロジェクトにおいて、GraphQLとREST APIでどちらを採用すれば良いか悩むケースも多いでしょう。上記で両者の違いを解説してきましたが、それぞれ異なる特徴を持つため、プロジェクトの要件や規模などによって使い分けることが大切になります。",[12,651,652],{},"そのため、どちらを導入すれば良いか迷う場合は、まず自社の開発目的や用途、要件などを整理することから始めましょう。",[12,654,655],{},"自社にノウハウが少なく判断に迷う場合は、比較的導入難易度や学習コストが低いREST APIから始め、その後システムの拡大や複雑化に伴い、GraphQLの部分導入や完全移行を検討するという流れも選択肢として考えられます。実際の開発現場でもよくある流れであるため、事例などを参考にするのも良いでしょう。",[25,657,659],{"id":658},"_11-graphqlが適しているケースプロジェクト","11. GraphQLが適しているケース・プロジェクト",[12,661,662],{},[32,663],{"alt":664,"src":665},"GraphQLが適しているケース・プロジェクト","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790861/miwy00mluaxzqat9cxdc.jpg",[12,667,668],{},"では実際にGraphQLはどのようなケース・プロジェクトで向いているのでしょうか。具体的には以下の通りです。",[191,670,671,674,677,680],{},[194,672,673],{},"複雑な画面・ダッシュボードを持つアプリケーション",[194,675,676],{},"モバイルアプリケーション",[194,678,679],{},"複数のデータソース・APIを統合したい場合",[194,681,682],{},"フロントエンド主導で開発・改善したい場合",[59,684,686],{"id":685},"_11-1-複雑な画面ダッシュボードを持つアプリケーション","11-1. 複雑な画面・ダッシュボードを持つアプリケーション",[12,688,689],{},"まず、複雑なUIを持つアプリケーションにおいてGraphQLは最大限に効果を発揮します。SNSや多機能なダッシュボード、Eコマースサイトでは、多くの情報を1つの画面に表示する必要があります。例えば、SNSのフィードなら、投稿一覧やコメント、通知などのデータを1画面内で表示しなければなりません。",[12,691,692],{},"REST APIでは複数回のリクエストが必要になるケースが多いですが、GraphQLなら、一度のクエリで必要な情報を一括で取得できるため、データを効率よく呼び出せます。",[59,694,696],{"id":695},"_11-2-モバイルアプリケーション","11-2. モバイルアプリケーション",[12,698,699],{},"GraphQLはモバイルアプリケーションと相性が良い側面も持っています。",[12,701,702],{},"モバイルアプリケーションにおいては、不要なデータ通信を避け、ネットワークの最適化を図ることが重要になります。GraphQLなら、一度に必要な情報をまとめて取得できるため、オーバーフェッチやリクエスト回数を大幅に減らし、レスポンスの高速化や通信量削減に繋げられます。",[59,704,706],{"id":705},"_11-3-複数のデータソースapiを統合したい場合","11-3. 複数のデータソース・APIを統合したい場合",[12,708,709],{},"GraphQLは、複数のAPIを統合する必要があるプロジェクトにも向いています。マイクロサービス環境では、機能ごとにデータソースが分散されているため、フロントエンド側でのデータ取得が複雑化しやすい課題があります。",[12,711,712],{},"GraphQL Federationを利用することで、複数のAPIを単一のAPIとして統合できるため、マイクロサービス環境でも柔軟なデータ基盤を構築することが可能です。",[59,714,716],{"id":715},"_11-4-フロントエンド主導で開発改善したい場合","11-4. フロントエンド主導で開発・改善したい場合",[12,718,719],{},"先ほど述べましたように、フロントエンド主導で開発・改善を進めたい場合にもGraphQLは適しています。例えば、要件変更・UI変更が頻繁なプロジェクトにおいて、GraphQLならバックエンドの改修を待つことなくフロントエンド側が必要なデータをクエリで指定できるため、バックエンド開発者の負担や調整コストを削減しつつ、UIを素早く改善することが可能です。",[25,721,723],{"id":722},"_12-graphqlが適していないケースプロジェクト","12. GraphQLが適していないケース・プロジェクト",[12,725,726],{},[32,727],{"alt":728,"src":729},"GraphQLが適していないケース・プロジェクト","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790861/q7avbqwwutbsswrvi5hv.jpg",[12,731,732],{},"次にGraphQLが適していないケース・プロジェクトについて把握しておきましょう。以下のケースではREST APIの採用が向いています。",[191,734,735,742,748,754,760,766],{},[194,736,737,741],{},[738,739,740],"strong",{},"シンプルなCRUDアプリ："," REST + OpenAPIで十分なケースがほとんど。GraphQLのスキーマ設計・リゾルバー実装のオーバーヘッドが費用対効果に合わない。",[194,743,744,747],{},[738,745,746],{},"パフォーマンスがクリティカルな用途："," N+1問題はDataLoaderで緩和できるが、根本的にクエリの複雑さが読めないため、レイテンシの上限保証が難しい。REST的なエンドポイントをキャッシュする方が素直。",[194,749,750,753],{},[738,751,752],{},"チームがRESTに慣れていて学習コストを払えない段階："," GraphQLはフロントとバックの協調設計が必要で、チーム全体の習熟が前提。中途半端な導入はスキーマ設計の負債になりやすい。",[194,755,756,759],{},[738,757,758],{},"マイクロサービス間の内部通信："," gRPCやREST + HTTP/2の方が型安全かつ高速。GraphQL Federationはそれ自体が複雑なシステムになる。",[194,761,762,765],{},[738,763,764],{},"ファイルアップロード・バイナリデータ中心のAPI："," GraphQLはテキスト（JSON）ベースなので、マルチパートを扱うのが不自然。",[194,767,768,771],{},[738,769,770],{},"公開APIでドキュメント・バージョニングが重要な場合："," REST + OpenAPIの方がエコシステム（Swagger UI, Postmanなど）が成熟していて、外部開発者への導線が作りやすい。",[25,773,775],{"id":774},"_13-graphqlが採用されている主なwebサービス例","13. GraphQLが採用されている主なWebサービス例",[12,777,778],{},[32,779],{"alt":780,"src":781},"GraphQLが採用されている主なWebサービス例","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790856/ld1g9rclbht5ym1d7huj.jpg",[12,783,784],{},"GraphQLは実際にさまざまなサービスで採用されています。ここでは、GraphQLを採用しているWebサービスの例を紹介します。",[191,786,787,790,793],{},[194,788,789],{},"Netflix",[194,791,792],{},"Airbnb",[194,794,795],{},"楽天",[59,797,799],{"id":798},"_13-1-netflix","13-1. Netflix",[12,801,802],{},"Netflixは、1997年にアメリカで創業した企業で世界最大級の動画配信サービスを運営しています。3億2500万人を超えるユーザーに対して映画やドラマ、オリジナル作品など多彩な作品を配信しています。",[12,804,805],{},"Netflixは元々REST APIを利用していましたが、システムの規模が大きくなるにつれて、多数のデバイスへの最適化が求められました。そこでGraphQLを採用し、デバイスごとに必要なデータを柔軟に取得する仕組みを構築することで、REST APIで発生していたオーバーフェッチ・アンダーフェッチの課題を解消したのです。また、フロントエンドとバックエンドの連携が強化され、複雑化されたシステムの運用・管理をシンプルにしています。",[59,807,809],{"id":808},"_13-2-airbnb","13-2. Airbnb",[12,811,812],{},"Airbnbは、2008年にアメリカで設立された企業で世界最大級の民泊マッチングプラットフォームを運営しています。さまざまな宿泊施設が登録されており、誰でも簡単に利用できるサービスです。",[12,814,815],{},"AirbnbはREST APIの利用において、UIの高速化に対して課題を感じていました。そこでGraphQLを導入し、複数のAPIリクエストを1つのクエリにまとめることで通信効率の改善に成功しました。それによりユーザー体験価値が向上し、快適に利用できるサービスへと成長しています。",[59,817,819],{"id":818},"_13-3-楽天","13-3. 楽天",[12,821,822],{},"楽天は、1997年に創業された日本を代表するインターネットサービス企業です。ECモールの楽天市場をはじめ、デジタルコンテンツ、通信などさまざまな事業を展開しています。",[12,824,825],{},"楽天もGraphQLを採用しており、複数のサービス間でのデータ統合をシンプルにすることでモバイルアプリのパフォーマンス向上や開発効率の向上などのメリットを享受しています。",[12,827,828],{},"NetflixやAirbnb、楽天のGraphQL活用事例を見てわかる通り、さまざまなサービス・プラットフォームでGraphQLの適用が可能であることがわかります。",[25,830,832],{"id":831},"_14-gitlabというプロダクトにおけるgraphql活用のメリットとユースケース","14. GitLabというプロダクトにおけるGraphQL活用のメリットとユースケース",[12,834,835,841],{},[836,837,840],"a",{"href":838,"rel":839},"https://about.gitlab.com/ja-jp/",[],"GitLab","は、ソフトウェア開発のライフサイクルを単一のプラットフォームで一元管理できるプラットフォームです。",[12,843,844],{},"GitLabでのGraphQLの実装例という観点で、特徴やユースケースを解説します。また、それによるGitLabのサービス全体の強みも紹介します。",[59,846,848],{"id":847},"_14-1-gitlab-graphql-apiの特徴ユースケース","14-1. GitLab GraphQL APIの特徴・ユースケース",[12,850,851,852,857],{},"GitLabにはプラットフォーム内にプロジェクトの基本情報やIssue、CI/CDパイプラインなどソフトウェア開発におけるさまざまなデータが蓄積・管理されています。",[836,853,856],{"href":854,"rel":855},"https://docs.gitlab.com/ja-jp/api/graphql/",[],"GitLab GraphQL","を利用することで、これらの複雑なデータを効率よく取得できます。",[12,859,860],{},"例えば、GraphQLによる柔軟なデータ取得はGitLabで以下のようなことを可能にします。",[191,862,863,866,869,872],{},[194,864,865],{},"イシューボードの特定",[194,867,868],{},"プロジェクトのブランチルールをリスト表示",[194,870,871],{},"特定のユーザーグループに対する監査レポートの作成",[194,873,874],{},"GitLab Duoデータの取得・エクスポート など",[12,876,877],{},"GitLab GraphQL APIは、目的に応じて利用することで開発効率の向上に役立てられます。また、GitLabにはREST APIも含まれているため、要件によって使い分けるのも良いでしょう。",[59,879,881],{"id":880},"_14-2-gitlabの統合プラットフォームサービスとしての強み","14-2. GitLabの統合プラットフォーム・サービスとしての強み",[12,883,884],{},"GitLabは、AIによるソースコード管理や脆弱性管理、プロジェクト管理、CI/CDなどソフトウェア開発に必要な機能を単一のプラットフォームで利用できるため、開発効率の向上やコストの削減に繋げられます。",[12,886,887],{},"また、クラウド型・オンプレミス型の利用形態から選べるため、自社の環境に応じた導入が可能です。",[12,889,890],{},"GitLabが提供する豊富な機能を基盤として、GraphQL APIも積極的に活用することでGitLabの価値をさらに最大化し、迅速かつ高品質なソフトウェア開発を実現できるでしょう。無料トライアルもご用意しているので、DevSecOpsを支援するツールをお探しの方はぜひご検討下さい。",[25,892,894],{"id":893},"_15-graphqlの今後の動向","15. GraphQLの今後の動向",[12,896,897],{},[32,898],{"alt":899,"src":900},"GraphQLの今後の動向","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790855/mop4gm6ij2xjsbawb9ck.jpg",[12,902,903],{},"GraphQLは2015年公開された比較的新しい技術ですが、NetflixやAirbnbなどさまざまな企業で採用されるなど、REST API特有の課題解決のために広く使われています。近年のソフトウェア開発の規模の拡大や複雑化に伴い、今後も世界中の多くの企業でGraphQLの導入が進んでいくと考えられます。",[12,905,906],{},"ただ、REST APIならではのメリットを活かした開発が求められることも多いため、今後REST APIへのニーズが完全になくなるとは考えにくいでしょう。GraphQLとREST APIの両者の特性を活かしたハイブリッドアプローチなど、要件や目的に応じてそれぞれの技術を使いこなす考えが重要です。",[12,908,909],{},"また、GraphQL Federationにも注目が集まっているため、自社でノウハウを蓄積しておくことで開発アプローチの選択肢がさらに広がるでしょう。",[25,911,913],{"id":912},"_16-graphqlに関するよくある質問","16. GraphQLに関するよくある質問",[12,915,916],{},[32,917],{"alt":918,"src":919},"GraphQLに関するよくある質問","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790857/kbitvr0e8rpaktjy9mch.jpg",[12,921,922],{},"最後にGraphQLに関するよくある質問を紹介します。GraphQLとREST APIの違いや、学習コストなどについて整理しておきましょう。",[59,924,926],{"id":925},"_16-1-graphqlはrestより優れている","16-1. GraphQLはRESTより優れている？",[12,928,929],{},"GraphQLがREST APIより優れているわけではなく、両者の技術にはそれぞれ特有のメリットがあります。一言で説明するとGraphQLはデータ取得の柔軟性、REST APIはシンプルな扱いが可能であるというメリットを持っています。",[12,931,932],{},"そのため、「どちらが優れているか？」という視点ではなく、「自社の開発要件や規模に応じてどちらのアプローチが最適か？」という考えで導入判断を行うことが大切です。適切な選択を行うためにも、事前にGraphQLとREST APIのそれぞれの特徴をよく理解しておきましょう。",[59,934,936],{"id":935},"_16-2-graphql導入前運用時に評価すべきポイントは","16-2. GraphQL導入前・運用時に評価すべきポイントは？",[12,938,939],{},"GraphQL導入前・運用時に評価すべき主なポイントをまとめると以下の通りです。",[191,941,942,945,948],{},[194,943,944],{},"GraphQLがプロジェクト要件や課題解決の手段としてマッチしているか",[194,946,947],{},"GraphQLに関するノウハウの有無とチームの学習コストはどうか",[194,949,950],{},"運用時の負担はどうか など",[12,952,953],{},"これらの要素をもとに自社でのGraphQL導入可否を正確に判断・評価することが大切です。",[59,955,957],{"id":956},"_16-3-graphqlは初心者でも扱える","16-3. GraphQLは初心者でも扱える？",[12,959,960],{},"REST APIよりも学習コストが高く、概念やクエリ言語、スキーマ定義など学習すべき内容は多いですが、基本的な仕組みを理解すれば初心者でも十分扱えると言えます。",[12,962,963],{},"自社でGraphQLを扱えるメンバーがいない場合は、学習環境を整えつつ段階的な導入をおすすめします。",[12,965,966,969],{},[836,967,840],{"href":838,"rel":968},[],"ではGraphQLが整備されているため、積極的な活用を通してGraphQLによるデータ取得例について理解することができるでしょう。",[25,971,973],{"id":972},"まとめ-graphql導入は自社の要件を考慮して判断しよう","まとめ GraphQL導入は自社の要件を考慮して判断しよう",[12,975,976],{},"GraphQLは、クエリによる柔軟なデータ操作が可能な技術で大規模開発やモバイルアプリケーション開発などのシーンにおいてその価値を最大限に発揮できます。REST APIとよく比較されることが多いですが、導入判断時にはどちらが優れているかということではなく、自社の要件を十分に考慮しながら最適な選択を行う必要があります。",[12,978,979],{},"今回の事例で紹介したようにさまざまなWebサービスで利用できる技術であるため、自社の課題解決に繋がるケースでは積極的に導入していくと良いでしょう。",[12,981,982,983,986],{},"上で述べましたように、DevSecOpsプラットフォームの",[836,984,840],{"href":838,"rel":985},[],"ではGraphQLが整備されており、ツール内の複雑なデータを効率的に取得して開発効率の向上に役立てることができます。GraphQLを活用して、より高度な DevSecOps の実現を促進したい企業はぜひお気軽にお問い合わせ下さい。",[988,989,990],"blockquote",{},[12,991,992],{},[836,993,996],{"href":994,"rel":995},"https://about.gitlab.com/ja-jp/sales/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-graphql",[],"お問い合わせはこちら",[12,998,999,1000,1004],{},"監修：小松原 つかさ ",[836,1001,1003],{"href":1002},"","@tkomatsubara","\n（GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）",{"title":1002,"searchDepth":1006,"depth":1006,"links":1007},2,[1008,1009,1015,1022,1029,1033,1034,1041,1046,1047,1048,1054,1055,1060,1064,1065,1070],{"id":27,"depth":1006,"text":28},{"id":47,"depth":1006,"text":48,"children":1010},[1011,1013,1014],{"id":61,"depth":1012,"text":62},3,{"id":71,"depth":1012,"text":72},{"id":163,"depth":1012,"text":164},{"id":179,"depth":1006,"text":180,"children":1016},[1017,1018,1019,1020,1021],{"id":211,"depth":1012,"text":212},{"id":221,"depth":1012,"text":222},{"id":231,"depth":1012,"text":232},{"id":238,"depth":1012,"text":239},{"id":248,"depth":1012,"text":249},{"id":258,"depth":1006,"text":259,"children":1023},[1024,1025,1026,1027,1028],{"id":288,"depth":1012,"text":289},{"id":298,"depth":1012,"text":299},{"id":311,"depth":1012,"text":312},{"id":318,"depth":1012,"text":319},{"id":328,"depth":1012,"text":329},{"id":338,"depth":1006,"text":339,"children":1030},[1031,1032],{"id":351,"depth":1012,"text":352},{"id":358,"depth":1012,"text":359},{"id":371,"depth":1006,"text":372},{"id":393,"depth":1006,"text":394,"children":1035},[1036,1037,1038,1039,1040],{"id":423,"depth":1012,"text":424},{"id":430,"depth":1012,"text":431},{"id":437,"depth":1012,"text":438},{"id":447,"depth":1012,"text":448},{"id":457,"depth":1012,"text":458},{"id":467,"depth":1006,"text":468,"children":1042},[1043,1044,1045],{"id":491,"depth":1012,"text":492},{"id":501,"depth":1012,"text":502},{"id":511,"depth":1012,"text":512},{"id":518,"depth":1006,"text":519},{"id":639,"depth":1006,"text":640},{"id":658,"depth":1006,"text":659,"children":1049},[1050,1051,1052,1053],{"id":685,"depth":1012,"text":686},{"id":695,"depth":1012,"text":696},{"id":705,"depth":1012,"text":706},{"id":715,"depth":1012,"text":716},{"id":722,"depth":1006,"text":723},{"id":774,"depth":1006,"text":775,"children":1056},[1057,1058,1059],{"id":798,"depth":1012,"text":799},{"id":808,"depth":1012,"text":809},{"id":818,"depth":1012,"text":819},{"id":831,"depth":1006,"text":832,"children":1061},[1062,1063],{"id":847,"depth":1012,"text":848},{"id":880,"depth":1012,"text":881},{"id":893,"depth":1006,"text":894},{"id":912,"depth":1006,"text":913,"children":1066},[1067,1068,1069],{"id":925,"depth":1012,"text":926},{"id":935,"depth":1012,"text":936},{"id":956,"depth":1012,"text":957},{"id":972,"depth":1006,"text":973},"engineering","2026-07-01","この記事では、GraphQLの基礎知識やメリット、デメリット、REST APIとの違いを詳しく解説します。","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782790816/wnvtqocybdhigvssvbak.jpg",{},true,"/ja-jp/blog/what-is-graphql",{"config":1082,"title":5,"description":1073},{"noIndex":1076},"what-is-graphql","ja-jp/blog/what-is-graphql",[1086,1087,1088],"features","integrations","tutorial","BlogPost","2026-07-02","w55VKiDglPmNsBLGY5NcjSZ_zX9nkeAF6uVteEA5Ovs",{"logo":1093,"freeTrial":1098,"sales":1103,"login":1107,"items":1112,"search":1433,"minimal":1466,"duo":1483,"switchNav":1492,"pricingDeployment":1503},{"config":1094},{"href":1095,"dataGaName":1096,"dataGaLocation":1097},"/ja-jp/","gitlab logo","header",{"text":1099,"config":1100},"無料トライアルを開始",{"href":1101,"dataGaName":1102,"dataGaLocation":1097},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":996,"config":1104},{"href":1105,"dataGaName":1106,"dataGaLocation":1097},"/ja-jp/sales/","sales",{"text":1108,"config":1109},"サインイン",{"href":1110,"dataGaName":1111,"dataGaLocation":1097},"https://gitlab.com/users/sign_in/","sign in",[1113,1142,1244,1249,1357,1413],{"text":1114,"config":1115,"menu":1117},"プラットフォーム",{"dataNavLevelOne":1116},"platform",{"type":1118,"columns":1119},"cards",[1120,1126,1134],{"title":1114,"description":1121,"link":1122},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":1123,"config":1124},"プラットフォームの詳細はこちら",{"href":1125,"dataGaName":1116,"dataGaLocation":1097},"/ja-jp/platform/",{"title":1127,"description":1128,"link":1129},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":1130,"config":1131},"GitLab Duoのご紹介",{"href":1132,"dataGaName":1133,"dataGaLocation":1097},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1135,"description":1136,"link":1137},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":1138,"config":1139},"詳細はこちら",{"href":1140,"dataGaName":1141,"dataGaLocation":1097},"/ja-jp/why-gitlab/","why gitlab",{"text":1143,"left":1079,"config":1144,"menu":1146},"製品",{"dataNavLevelOne":1145},"solutions",{"type":1147,"link":1148,"columns":1152,"feature":1223},"lists",{"text":1149,"config":1150},"すべてのソリューションを表示",{"href":1151,"dataGaName":1145,"dataGaLocation":1097},"/ja-jp/solutions/",[1153,1178,1201],{"title":1154,"description":1155,"link":1156,"items":1161},"自動化","CI/CDと自動化でデプロイを加速",{"config":1157},{"icon":1158,"href":1159,"dataGaName":1160,"dataGaLocation":1097},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[1162,1166,1169,1174],{"text":1163,"config":1164},"CI/CD",{"href":1165,"dataGaLocation":1097,"dataGaName":1163},"/ja-jp/solutions/continuous-integration/",{"text":1127,"config":1167},{"href":1132,"dataGaLocation":1097,"dataGaName":1168},"gitlab duo agent platform - product menu",{"text":1170,"config":1171},"ソースコード管理",{"href":1172,"dataGaLocation":1097,"dataGaName":1173},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":1175,"config":1176},"自動化されたソフトウェアデリバリー",{"href":1159,"dataGaLocation":1097,"dataGaName":1177},"Automated software delivery",{"title":1179,"description":1180,"link":1181,"items":1186},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":1182},{"href":1183,"dataGaName":1184,"dataGaLocation":1097,"icon":1185},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1187,1191,1196],{"text":1188,"config":1189},"アプリケーションセキュリティテスト",{"href":1183,"dataGaName":1190,"dataGaLocation":1097},"Application security testing",{"text":1192,"config":1193},"ソフトウェアサプライチェーンセキュリティ",{"href":1194,"dataGaLocation":1097,"dataGaName":1195},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":1197,"config":1198},"ソフトウェアコンプライアンス",{"href":1199,"dataGaName":1200,"dataGaLocation":1097},"/ja-jp/solutions/software-compliance/","software compliance",{"title":1202,"link":1203,"items":1208},"測定",{"config":1204},{"icon":1205,"href":1206,"dataGaName":1207,"dataGaLocation":1097},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[1209,1213,1218],{"text":1210,"config":1211},"可視性と測定",{"href":1206,"dataGaLocation":1097,"dataGaName":1212},"Visibility and Measurement",{"text":1214,"config":1215},"バリューストリーム管理",{"href":1216,"dataGaLocation":1097,"dataGaName":1217},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":1219,"config":1220},"分析とインサイト",{"href":1221,"dataGaLocation":1097,"dataGaName":1222},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":1224,"type":1147,"items":1225},"GitLabが活躍する場所",[1226,1232,1238],{"text":1227,"config":1228},"大企業",{"icon":1229,"href":1230,"dataGaLocation":1097,"dataGaName":1231},"Building","/ja-jp/enterprise/","enterprise",{"text":1233,"config":1234},"スモールビジネス",{"icon":1235,"href":1236,"dataGaLocation":1097,"dataGaName":1237},"Work","/ja-jp/small-business/","small business",{"text":1239,"config":1240},"公共部門",{"icon":1241,"href":1242,"dataGaLocation":1097,"dataGaName":1243},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":1245,"config":1246},"価格",{"href":1247,"dataGaName":1248,"dataGaLocation":1097,"dataNavLevelOne":1248},"/ja-jp/pricing/","pricing",{"text":1250,"config":1251,"menu":1253},"関連リソース",{"dataNavLevelOne":1252},"resources",{"type":1147,"link":1254,"columns":1258,"feature":1346},{"text":1255,"config":1256},"すべてのリソースを表示",{"href":1257,"dataGaName":1252,"dataGaLocation":1097},"/ja-jp/resources/",[1259,1291,1313],{"title":1260,"items":1261},"はじめに",[1262,1267,1272,1277,1282,1287],{"text":1263,"config":1264},"インストール",{"href":1265,"dataGaName":1266,"dataGaLocation":1097},"/ja-jp/install/","install",{"text":1268,"config":1269},"クイックスタートガイド",{"href":1270,"dataGaName":1271,"dataGaLocation":1097},"/ja-jp/get-started/","quick setup checklists",{"text":1273,"config":1274},"学ぶ",{"href":1275,"dataGaLocation":1097,"dataGaName":1276},"https://university.gitlab.com/","learn",{"text":1278,"config":1279},"製品ドキュメント",{"href":1280,"dataGaName":1281,"dataGaLocation":1097},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":1283,"config":1284},"ベストプラクティスビデオ",{"href":1285,"dataGaName":1286,"dataGaLocation":1097},"/ja-jp/getting-started-videos/","best practice videos",{"text":1288,"config":1289},"インテグレーション",{"href":1290,"dataGaName":1087,"dataGaLocation":1097},"/ja-jp/integrations/",{"title":1292,"items":1293},"検索する",[1294,1299,1304,1308],{"text":1295,"config":1296},"お客様成功事例",{"href":1297,"dataGaName":1298,"dataGaLocation":1097},"/ja-jp/customers/","customer success stories",{"text":1300,"config":1301},"ブログ",{"href":1302,"dataGaName":1303,"dataGaLocation":1097},"/ja-jp/blog/","blog",{"text":1305,"config":1306},"The Source",{"href":1307,"dataGaName":1303,"dataGaLocation":1097},"/ja-jp/the-source/",{"text":1309,"config":1310},"リモート",{"href":1311,"dataGaName":1312,"dataGaLocation":1097},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1314,"items":1315},"つなげる",[1316,1321,1326,1331,1336,1341],{"text":1317,"config":1318},"GitLabサービス",{"href":1319,"dataGaName":1320,"dataGaLocation":1097},"/ja-jp/services/","services",{"text":1322,"config":1323},"コントリビュート",{"href":1324,"dataGaName":1325,"dataGaLocation":1097},"https://contributors.gitlab.com","contribute",{"text":1327,"config":1328},"コミュニティ",{"href":1329,"dataGaName":1330,"dataGaLocation":1097},"/community/","community",{"text":1332,"config":1333},"フォーラム",{"href":1334,"dataGaName":1335,"dataGaLocation":1097},"https://forum.gitlab.com/","forum",{"text":1337,"config":1338},"イベント",{"href":1339,"dataGaName":1340,"dataGaLocation":1097},"/events/","events",{"text":1342,"config":1343},"パートナー",{"href":1344,"dataGaName":1345,"dataGaLocation":1097},"/ja-jp/partners/","partners",{"config":1347,"title":1350,"text":1351,"link":1352},{"background":1348,"textColor":1349},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":1353,"config":1354},"最新情報を読む",{"href":1355,"dataGaName":1356,"dataGaLocation":1097},"/ja-jp/whats-new/","whats new",{"text":1358,"config":1359,"menu":1361},"企業情報",{"dataNavLevelOne":1360},"company",{"type":1147,"columns":1362},[1363],{"items":1364},[1365,1370,1376,1378,1383,1388,1393,1398,1403,1408],{"text":1366,"config":1367},"GitLabについて",{"href":1368,"dataGaName":1369,"dataGaLocation":1097},"/ja-jp/company/","about",{"text":1371,"config":1372,"footerGa":1375},"採用情報",{"href":1373,"dataGaName":1374,"dataGaLocation":1097},"/jobs/","jobs",{"dataGaName":1374},{"text":1337,"config":1377},{"href":1339,"dataGaName":1340,"dataGaLocation":1097},{"text":1379,"config":1380},"経営陣",{"href":1381,"dataGaName":1382,"dataGaLocation":1097},"/company/team/e-group/","leadership",{"text":1384,"config":1385},"ハンドブック",{"href":1386,"dataGaName":1387,"dataGaLocation":1097},"https://handbook.gitlab.com/","handbook",{"text":1389,"config":1390},"投資家向け情報",{"href":1391,"dataGaName":1392,"dataGaLocation":1097},"https://ir.gitlab.com/","investor relations",{"text":1394,"config":1395},"トラストセンター",{"href":1396,"dataGaName":1397,"dataGaLocation":1097},"/ja-jp/security/","trust center",{"text":1399,"config":1400},"AI Transparency Center",{"href":1401,"dataGaName":1402,"dataGaLocation":1097},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":1404,"config":1405},"ニュースレター",{"href":1406,"dataGaName":1407,"dataGaLocation":1097},"/company/contact/#contact-forms","newsletter",{"text":1409,"config":1410},"プレス",{"href":1411,"dataGaName":1412,"dataGaLocation":1097},"/press/","press",{"text":1414,"config":1415,"menu":1416},"お問い合わせ",{"dataNavLevelOne":1360},{"type":1147,"columns":1417},[1418],{"items":1419},[1420,1423,1428],{"text":996,"config":1421},{"href":1105,"dataGaName":1422,"dataGaLocation":1097},"talk to sales",{"text":1424,"config":1425},"サポートを受ける",{"href":1426,"dataGaName":1427,"dataGaLocation":1097},"https://support.gitlab.com","support portal",{"text":1429,"config":1430},"カスタマーポータル",{"href":1431,"dataGaName":1432,"dataGaLocation":1097},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1434,"login":1435,"suggestions":1442},"閉じる",{"text":1436,"link":1437},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":1438,"config":1439},"GitLab.com",{"href":1110,"dataGaName":1440,"dataGaLocation":1441},"search login","search",{"text":1443,"default":1444},"提案",[1445,1447,1452,1454,1458,1462],{"text":1127,"config":1446},{"href":1132,"dataGaName":1127,"dataGaLocation":1441},{"text":1448,"config":1449},"コード提案（AI）",{"href":1450,"dataGaName":1451,"dataGaLocation":1441},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1163,"config":1453},{"href":1165,"dataGaName":1163,"dataGaLocation":1441},{"text":1455,"config":1456},"GitLab on AWS",{"href":1457,"dataGaName":1455,"dataGaLocation":1441},"/ja-jp/partners/technology-partners/aws/",{"text":1459,"config":1460},"GitLab on Google Cloud",{"href":1461,"dataGaName":1459,"dataGaLocation":1441},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":1463,"config":1464},"GitLabを選ぶ理由",{"href":1140,"dataGaName":1465,"dataGaLocation":1441},"Why GitLab?",{"freeTrial":1467,"mobileIcon":1471,"desktopIcon":1476,"secondaryButton":1479},{"text":1099,"config":1468},{"href":1469,"dataGaName":1102,"dataGaLocation":1470},"https://gitlab.com/-/trials/new/","nav",{"altText":1472,"config":1473},"GitLabアイコン",{"src":1474,"dataGaName":1475,"dataGaLocation":1470},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1472,"config":1477},{"src":1478,"dataGaName":1475,"dataGaLocation":1470},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1260,"config":1480},{"href":1481,"dataGaName":1482,"dataGaLocation":1470},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":1484,"mobileIcon":1488,"desktopIcon":1490},{"text":1485,"config":1486},"GitLab Duoの詳細について",{"href":1132,"dataGaName":1487,"dataGaLocation":1470},"gitlab duo",{"altText":1472,"config":1489},{"src":1474,"dataGaName":1475,"dataGaLocation":1470},{"altText":1472,"config":1491},{"src":1478,"dataGaName":1475,"dataGaLocation":1470},{"button":1493,"mobileIcon":1498,"desktopIcon":1500},{"text":1494,"config":1495},"/switch",{"href":1496,"dataGaName":1497,"dataGaLocation":1470},"#contact","switch",{"altText":1472,"config":1499},{"src":1474,"dataGaName":1475,"dataGaLocation":1470},{"altText":1472,"config":1501},{"src":1502,"dataGaName":1475,"dataGaLocation":1470},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1504,"mobileIcon":1509,"desktopIcon":1511},{"text":1505,"config":1506},"料金ページに戻る",{"href":1247,"dataGaName":1507,"dataGaLocation":1470,"icon":1508},"back to pricing","GoBack",{"altText":1472,"config":1510},{"src":1474,"dataGaName":1475,"dataGaLocation":1470},{"altText":1472,"config":1512},{"src":1478,"dataGaName":1475,"dataGaLocation":1470},{"title":1514,"button":1515,"config":1520},"エージェント型AIがソフトウェアデリバリーをどのように変革するかをご覧ください",{"text":1516,"config":1517},"6月18日のGitLab Transcend日本開催版に参加ください",{"href":1518,"dataGaName":1519,"dataGaLocation":1097},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":1521,"disabled":1076},"release",{"data":1523},{"text":1524,"source":1525,"edit":1531,"contribute":1536,"config":1541,"items":1546,"minimal":1754},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":1526,"config":1527},"ページのソースを表示",{"href":1528,"dataGaName":1529,"dataGaLocation":1530},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1532,"config":1533},"このページを編集",{"href":1534,"dataGaName":1535,"dataGaLocation":1530},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1537,"config":1538},"ご協力をお願いします",{"href":1539,"dataGaName":1540,"dataGaLocation":1530},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1542,"facebook":1543,"youtube":1544,"linkedin":1545},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1547,1592,1644,1688,1721],{"title":1245,"links":1548,"subMenu":1563},[1549,1553,1558],{"text":1550,"config":1551},"プランの表示",{"href":1247,"dataGaName":1552,"dataGaLocation":1530},"view plans",{"text":1554,"config":1555},"Premiumを選ぶ理由",{"href":1556,"dataGaName":1557,"dataGaLocation":1530},"/ja-jp/pricing/premium/","why premium",{"text":1559,"config":1560},"Ultimateを選ぶ理由",{"href":1561,"dataGaName":1562,"dataGaLocation":1530},"/ja-jp/pricing/ultimate/","why ultimate",[1564],{"title":1414,"links":1565},[1566,1568,1570,1572,1577,1582,1587],{"text":1414,"config":1567},{"href":1105,"dataGaName":1106,"dataGaLocation":1530},{"text":1424,"config":1569},{"href":1426,"dataGaName":1427,"dataGaLocation":1530},{"text":1429,"config":1571},{"href":1431,"dataGaName":1432,"dataGaLocation":1530},{"text":1573,"config":1574},"ステータス",{"href":1575,"dataGaName":1576,"dataGaLocation":1530},"https://status.gitlab.com/","status",{"text":1578,"config":1579},"利用規約",{"href":1580,"dataGaName":1581,"dataGaLocation":1530},"/terms/","terms of use",{"text":1583,"config":1584},"プライバシーに関する声明",{"href":1585,"dataGaName":1586,"dataGaLocation":1530},"/ja-jp/privacy/","privacy statement",{"text":1588,"config":1589},"Cookie 優先設定",{"dataGaName":1590,"dataGaLocation":1530,"id":1591,"isOneTrustButton":1079},"cookie preferences","ot-sdk-btn",{"title":1143,"links":1593,"subMenu":1602},[1594,1598],{"text":1595,"config":1596},"DevSecOpsプラットフォーム",{"href":1125,"dataGaName":1597,"dataGaLocation":1530},"devsecops platform",{"text":1599,"config":1600},"AI支援開発",{"href":1132,"dataGaName":1601,"dataGaLocation":1530},"ai-assisted development",[1603],{"title":1604,"links":1605},"トピック",[1606,1610,1615,1620,1624,1629,1634,1639],{"text":1163,"config":1607},{"href":1608,"dataGaName":1609,"dataGaLocation":1530},"/ja-jp/topics/ci-cd/","cicd",{"text":1611,"config":1612},"GitOps",{"href":1613,"dataGaName":1614,"dataGaLocation":1530},"/ja-jp/topics/gitops/","gitops",{"text":1616,"config":1617},"DevOps",{"href":1618,"dataGaName":1619,"dataGaLocation":1530},"/ja-jp/topics/devops/","devops",{"text":594,"config":1621},{"href":1622,"dataGaName":1623,"dataGaLocation":1530},"/ja-jp/topics/version-control/","version control",{"text":1625,"config":1626},"DevSecOps",{"href":1627,"dataGaName":1628,"dataGaLocation":1530},"/ja-jp/topics/devsecops/","devsecops",{"text":1630,"config":1631},"クラウドネイティブ",{"href":1632,"dataGaName":1633,"dataGaLocation":1530},"/ja-jp/topics/cloud-native/","cloud native",{"text":1635,"config":1636},"コーディングのためのAI",{"href":1637,"dataGaName":1638,"dataGaLocation":1530},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":1640,"config":1641},"エージェント型AI",{"href":1642,"dataGaName":1643,"dataGaLocation":1530},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":1645,"links":1646},"ソリューション",[1647,1650,1652,1657,1661,1664,1667,1670,1673,1675,1678,1683],{"text":1188,"config":1648},{"href":1183,"dataGaName":1649,"dataGaLocation":1530},"Application Security Testing",{"text":1175,"config":1651},{"href":1159,"dataGaName":1160,"dataGaLocation":1530},{"text":1653,"config":1654},"アジャイル開発",{"href":1655,"dataGaName":1656,"dataGaLocation":1530},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":1658,"config":1659},"SCM",{"href":1172,"dataGaName":1660,"dataGaLocation":1530},"source code management",{"text":1163,"config":1662},{"href":1165,"dataGaName":1663,"dataGaLocation":1530},"continuous integration & delivery",{"text":1214,"config":1665},{"href":1216,"dataGaName":1666,"dataGaLocation":1530},"value stream management",{"text":1611,"config":1668},{"href":1669,"dataGaName":1614,"dataGaLocation":1530},"/ja-jp/solutions/gitops/",{"text":1671,"config":1672},"エンタープライズ",{"href":1230,"dataGaName":1231,"dataGaLocation":1530},{"text":1233,"config":1674},{"href":1236,"dataGaName":1237,"dataGaLocation":1530},{"text":1676,"config":1677},"公共機関",{"href":1242,"dataGaName":1243,"dataGaLocation":1530},{"text":1679,"config":1680},"教育",{"href":1681,"dataGaName":1682,"dataGaLocation":1530},"/ja-jp/solutions/education/","education",{"text":1684,"config":1685},"金融サービス",{"href":1686,"dataGaName":1687,"dataGaLocation":1530},"/ja-jp/solutions/finance/","financial services",{"title":1689,"links":1690},"リソース",[1691,1693,1695,1697,1700,1702,1705,1707,1709,1711,1713,1715,1717,1719],{"text":1263,"config":1692},{"href":1265,"dataGaName":1266,"dataGaLocation":1530},{"text":1268,"config":1694},{"href":1270,"dataGaName":1271,"dataGaLocation":1530},{"text":1273,"config":1696},{"href":1275,"dataGaName":1276,"dataGaLocation":1530},{"text":1278,"config":1698},{"href":1280,"dataGaName":1699,"dataGaLocation":1530},"docs",{"text":1300,"config":1701},{"href":1302,"dataGaName":1303,"dataGaLocation":1530},{"text":1703,"config":1704},"新着情報",{"href":1355,"dataGaName":1356,"dataGaLocation":1530},{"text":1295,"config":1706},{"href":1297,"dataGaName":1298,"dataGaLocation":1530},{"text":1309,"config":1708},{"href":1311,"dataGaName":1312,"dataGaLocation":1530},{"text":1317,"config":1710},{"href":1319,"dataGaName":1320,"dataGaLocation":1530},{"text":1322,"config":1712},{"href":1324,"dataGaName":1325,"dataGaLocation":1530},{"text":1327,"config":1714},{"href":1329,"dataGaName":1330,"dataGaLocation":1530},{"text":1332,"config":1716},{"href":1334,"dataGaName":1335,"dataGaLocation":1530},{"text":1337,"config":1718},{"href":1339,"dataGaName":1340,"dataGaLocation":1530},{"text":1342,"config":1720},{"href":1344,"dataGaName":1345,"dataGaLocation":1530},{"title":1722,"links":1723},"会社情報",[1724,1726,1728,1730,1732,1734,1738,1743,1745,1747,1749],{"text":1366,"config":1725},{"href":1368,"dataGaName":1360,"dataGaLocation":1530},{"text":1371,"config":1727},{"href":1373,"dataGaName":1374,"dataGaLocation":1530},{"text":1379,"config":1729},{"href":1381,"dataGaName":1382,"dataGaLocation":1530},{"text":1384,"config":1731},{"href":1386,"dataGaName":1387,"dataGaLocation":1530},{"text":1389,"config":1733},{"href":1391,"dataGaName":1392,"dataGaLocation":1530},{"text":1735,"config":1736},"Sustainability",{"href":1737,"dataGaName":1735,"dataGaLocation":1530},"/sustainability/",{"text":1739,"config":1740},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":1741,"dataGaName":1742,"dataGaLocation":1530},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1394,"config":1744},{"href":1396,"dataGaName":1397,"dataGaLocation":1530},{"text":1404,"config":1746},{"href":1406,"dataGaName":1407,"dataGaLocation":1530},{"text":1409,"config":1748},{"href":1411,"dataGaName":1412,"dataGaLocation":1530},{"text":1750,"config":1751},"現代奴隷制の透明性に関する声明",{"href":1752,"dataGaName":1753,"dataGaLocation":1530},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1755},[1756,1758,1761],{"text":1578,"config":1757},{"href":1580,"dataGaName":1581,"dataGaLocation":1530},{"text":1759,"config":1760},"Cookieの設定",{"dataGaName":1590,"dataGaLocation":1530,"id":1591,"isOneTrustButton":1079},{"text":1583,"config":1762},{"href":1585,"dataGaName":1586,"dataGaLocation":1530},[1764],{"id":1765,"title":1766,"body":1075,"config":1767,"content":1769,"description":1075,"extension":1773,"meta":1774,"navigation":1079,"path":1775,"seo":1776,"stem":1777,"__hash__":1778},"blogAuthors/en-us/blog/authors/gitlab-team.yml","Gitlab Team",{"template":1768},"BlogAuthor",{"name":7,"config":1770},{"headshot":1771,"ctfId":1772},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","GitLab-Team","yml",{},"/en-us/blog/authors/gitlab-team",{},"en-us/blog/authors/gitlab-team","lmrXWttQYRbkSz_xfCfucB21pf44aAdxkvbbS48UVcE",[1780,1787,1794],{"title":1781,"description":1782,"heroImage":1783,"category":1071,"date":1784,"authors":1785,"slug":1786,"externalUrl":1075},"Webhookとは？仕組みやメリット、設定手順、活用事例を解説","本記事では、Webhookの仕組みやAPIとの違い、導入メリット、基本的な設定手順、安全に利用するためのポイント、活用事例をまとめて解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781606800/xjxb150ssbzij8wu3ewo.jpg","2026-06-16",[7],"what-is-webhook",{"title":1788,"description":1789,"heroImage":1790,"category":1071,"date":1791,"authors":1792,"slug":1793,"externalUrl":1075},"モノレポとは？マルチレポとの違いやメリット、デメリットを解説","この記事では、モノレポの特徴やマルチレポとの違い、モノレポが向いているケース・向いていないケースを詳しく解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228639/dgazp67o5nee87ljkt3s.jpg","2026-06-12",[7],"what-is-monorepo",{"title":1795,"description":1796,"heroImage":1797,"category":1071,"date":1798,"authors":1799,"slug":1802,"externalUrl":1075},"ガイド: Azure DevOpsからGitLabへの移行","GitLabプロフェッショナルサービスの移行ツールを使用してAzure DevOpsからGitLabへの完全な移行を実行する方法を学びます — 計画、実行から移行後のフォローアップタスクまで。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658924/Blog/Hero%20Images/securitylifecycle-light.png","2025-12-03",[1800,1801],"Evgeny Rudinsky","Michael Leopard","migration-from-azure-devops-to-gitlab",{"promotions":1804},[1805,1819,1831,1843],{"id":1806,"categories":1807,"header":1809,"text":1810,"button":1811,"image":1816},"ai-modernization",[1808],"ai","AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":1812,"config":1813},"AI成熟度スコアを確認する",{"href":1814,"dataGaName":1815,"dataGaLocation":1303},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":1817},{"src":1818},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1820,"categories":1821,"header":1823,"text":1810,"button":1824,"image":1828},"devops-modernization",[1822,1628],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":1825,"config":1826},"DevOps成熟度スコアを確認しましょう",{"href":1827,"dataGaName":1815,"dataGaLocation":1303},"/ja-jp/assessments/devops-modernization-assessment/",{"config":1829},{"src":1830},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1832,"categories":1833,"header":1835,"text":1810,"button":1836,"image":1840},"security-modernization",[1834],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":1837,"config":1838},"セキュリティ成熟度スコアを確認しましょう",{"href":1839,"dataGaName":1815,"dataGaLocation":1303},"/ja-jp/assessments/security-modernization-assessment/",{"config":1841},{"src":1842},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1844,"paths":1845,"header":1847,"text":1848,"button":1849,"image":1854},"github-azure-migration",[1802,1846],"integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":1850,"config":1851},"GitLabとGitHubの比較を見る",{"href":1852,"dataGaName":1853,"dataGaLocation":1303},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1855},{"src":1830},{"header":1857,"blurb":1858,"button":1859,"secondaryButton":1863},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":1099,"config":1860},{"href":1861,"dataGaName":1102,"dataGaLocation":1862},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":1414,"config":1864},{"href":1105,"dataGaName":1106,"dataGaLocation":1862},1783046293535]