[{"data":1,"prerenderedAt":1341},["ShallowReactive",2],{"/ja-jp/blog/categories/engineering":3,"navigation-ja-jp":21,"banner-ja-jp":439,"footer-ja-jp":448,"engineering-category-page-total-items-ja-jp":689,"engineering-category-page-featured-ja-jp":690,"engineering-category-page-4-ja-jp":1312},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":11,"description":6,"extension":13,"meta":14,"navigation":15,"path":16,"seo":17,"slug":6,"stem":19,"testContent":6,"type":6,"__hash__":20},"blogCategories/ja-jp/blog/categories/engineering.yml","Engineering",null,{"template":8,"slug":9,"hide":10},"BlogCategory","engineering",false,{"name":12},"エンジニアリング","yml",{},true,"/ja-jp/blog/categories/engineering",{"title":12,"description":18},"Browse articles related to エンジニアリング on the GitLab Blog","ja-jp/blog/categories/engineering","SP1p0HNY-4BlLIVgrET9_T9CAStAMizH3Ee46PrhOa0",{"logo":22,"freeTrial":27,"sales":32,"login":37,"items":42,"search":359,"minimal":392,"duo":409,"switchNav":418,"pricingDeployment":429},{"config":23},{"href":24,"dataGaName":25,"dataGaLocation":26},"/ja-jp/","gitlab logo","header",{"text":28,"config":29},"無料トライアルを開始",{"href":30,"dataGaName":31,"dataGaLocation":26},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":33,"config":34},"お問い合わせはこちら",{"href":35,"dataGaName":36,"dataGaLocation":26},"/ja-jp/sales/","sales",{"text":38,"config":39},"サインイン",{"href":40,"dataGaName":41,"dataGaLocation":26},"https://gitlab.com/users/sign_in/","sign in",[43,72,174,179,283,339],{"text":44,"config":45,"menu":47},"プラットフォーム",{"dataNavLevelOne":46},"platform",{"type":48,"columns":49},"cards",[50,56,64],{"title":44,"description":51,"link":52},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":53,"config":54},"プラットフォームの詳細はこちら",{"href":55,"dataGaName":46,"dataGaLocation":26},"/ja-jp/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":60,"config":61},"GitLab Duoのご紹介",{"href":62,"dataGaName":63,"dataGaLocation":26},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":68,"config":69},"詳細はこちら",{"href":70,"dataGaName":71,"dataGaLocation":26},"/ja-jp/why-gitlab/","why gitlab",{"text":73,"left":15,"config":74,"menu":76},"製品",{"dataNavLevelOne":75},"solutions",{"type":77,"link":78,"columns":82,"feature":153},"lists",{"text":79,"config":80},"すべてのソリューションを表示",{"href":81,"dataGaName":75,"dataGaLocation":26},"/ja-jp/solutions/",[83,108,131],{"title":84,"description":85,"link":86,"items":91},"自動化","CI/CDと自動化でデプロイを加速",{"config":87},{"icon":88,"href":89,"dataGaName":90,"dataGaLocation":26},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[92,96,99,104],{"text":93,"config":94},"CI/CD",{"href":95,"dataGaLocation":26,"dataGaName":93},"/ja-jp/solutions/continuous-integration/",{"text":57,"config":97},{"href":62,"dataGaLocation":26,"dataGaName":98},"gitlab duo agent platform - product menu",{"text":100,"config":101},"ソースコード管理",{"href":102,"dataGaLocation":26,"dataGaName":103},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":105,"config":106},"自動化されたソフトウェアデリバリー",{"href":89,"dataGaLocation":26,"dataGaName":107},"Automated software delivery",{"title":109,"description":110,"link":111,"items":116},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":112},{"href":113,"dataGaName":114,"dataGaLocation":26,"icon":115},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[117,121,126],{"text":118,"config":119},"アプリケーションセキュリティテスト",{"href":113,"dataGaName":120,"dataGaLocation":26},"Application security testing",{"text":122,"config":123},"ソフトウェアサプライチェーンセキュリティ",{"href":124,"dataGaLocation":26,"dataGaName":125},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":127,"config":128},"ソフトウェアコンプライアンス",{"href":129,"dataGaName":130,"dataGaLocation":26},"/ja-jp/solutions/software-compliance/","software compliance",{"title":132,"link":133,"items":138},"測定",{"config":134},{"icon":135,"href":136,"dataGaName":137,"dataGaLocation":26},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[139,143,148],{"text":140,"config":141},"可視性と測定",{"href":136,"dataGaLocation":26,"dataGaName":142},"Visibility and Measurement",{"text":144,"config":145},"バリューストリーム管理",{"href":146,"dataGaLocation":26,"dataGaName":147},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":149,"config":150},"分析とインサイト",{"href":151,"dataGaLocation":26,"dataGaName":152},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":154,"type":77,"items":155},"GitLabが活躍する場所",[156,162,168],{"text":157,"config":158},"大企業",{"icon":159,"href":160,"dataGaLocation":26,"dataGaName":161},"Building","/ja-jp/enterprise/","enterprise",{"text":163,"config":164},"スモールビジネス",{"icon":165,"href":166,"dataGaLocation":26,"dataGaName":167},"Work","/ja-jp/small-business/","small business",{"text":169,"config":170},"公共部門",{"icon":171,"href":172,"dataGaLocation":26,"dataGaName":173},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":175,"config":176},"価格",{"href":177,"dataGaName":178,"dataGaLocation":26,"dataNavLevelOne":178},"/ja-jp/pricing/","pricing",{"text":180,"config":181,"menu":183},"関連リソース",{"dataNavLevelOne":182},"resources",{"type":77,"link":184,"columns":188,"feature":272},{"text":185,"config":186},"すべてのリソースを表示",{"href":187,"dataGaName":182,"dataGaLocation":26},"/ja-jp/resources/",[189,222,244],{"title":190,"items":191},"はじめに",[192,197,202,207,212,217],{"text":193,"config":194},"インストール",{"href":195,"dataGaName":196,"dataGaLocation":26},"/ja-jp/install/","install",{"text":198,"config":199},"クイックスタートガイド",{"href":200,"dataGaName":201,"dataGaLocation":26},"/ja-jp/get-started/","quick setup checklists",{"text":203,"config":204},"学ぶ",{"href":205,"dataGaLocation":26,"dataGaName":206},"https://university.gitlab.com/","learn",{"text":208,"config":209},"製品ドキュメント",{"href":210,"dataGaName":211,"dataGaLocation":26},"https://docs.gitlab.com/","product documentation",{"text":213,"config":214},"ベストプラクティスビデオ",{"href":215,"dataGaName":216,"dataGaLocation":26},"/ja-jp/getting-started-videos/","best practice videos",{"text":218,"config":219},"インテグレーション",{"href":220,"dataGaName":221,"dataGaLocation":26},"/ja-jp/integrations/","integrations",{"title":223,"items":224},"検索する",[225,230,235,239],{"text":226,"config":227},"お客様成功事例",{"href":228,"dataGaName":229,"dataGaLocation":26},"/ja-jp/customers/","customer success stories",{"text":231,"config":232},"ブログ",{"href":233,"dataGaName":234,"dataGaLocation":26},"/ja-jp/blog/","blog",{"text":236,"config":237},"The Source",{"href":238,"dataGaName":234,"dataGaLocation":26},"/ja-jp/the-source/",{"text":240,"config":241},"リモート",{"href":242,"dataGaName":243,"dataGaLocation":26},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":245,"items":246},"つなげる",[247,252,257,262,267],{"text":248,"config":249},"GitLabサービス",{"href":250,"dataGaName":251,"dataGaLocation":26},"/ja-jp/services/","services",{"text":253,"config":254},"コミュニティ",{"href":255,"dataGaName":256,"dataGaLocation":26},"/community/","community",{"text":258,"config":259},"フォーラム",{"href":260,"dataGaName":261,"dataGaLocation":26},"https://forum.gitlab.com/","forum",{"text":263,"config":264},"イベント",{"href":265,"dataGaName":266,"dataGaLocation":26},"/events/","events",{"text":268,"config":269},"パートナー",{"href":270,"dataGaName":271,"dataGaLocation":26},"/ja-jp/partners/","partners",{"config":273,"title":276,"text":277,"link":278},{"background":274,"textColor":275},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":279,"config":280},"最新情報を読む",{"href":281,"dataGaName":282,"dataGaLocation":26},"/ja-jp/whats-new/","whats new",{"text":284,"config":285,"menu":287},"企業情報",{"dataNavLevelOne":286},"company",{"type":77,"columns":288},[289],{"items":290},[291,296,302,304,309,314,319,324,329,334],{"text":292,"config":293},"GitLabについて",{"href":294,"dataGaName":295,"dataGaLocation":26},"/ja-jp/company/","about",{"text":297,"config":298,"footerGa":301},"採用情報",{"href":299,"dataGaName":300,"dataGaLocation":26},"/jobs/","jobs",{"dataGaName":300},{"text":263,"config":303},{"href":265,"dataGaName":266,"dataGaLocation":26},{"text":305,"config":306},"経営陣",{"href":307,"dataGaName":308,"dataGaLocation":26},"/company/team/e-group/","leadership",{"text":310,"config":311},"ハンドブック",{"href":312,"dataGaName":313,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":315,"config":316},"投資家向け情報",{"href":317,"dataGaName":318,"dataGaLocation":26},"https://ir.gitlab.com/","investor relations",{"text":320,"config":321},"トラストセンター",{"href":322,"dataGaName":323,"dataGaLocation":26},"/ja-jp/security/","trust center",{"text":325,"config":326},"AI Transparency Center",{"href":327,"dataGaName":328,"dataGaLocation":26},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":330,"config":331},"ニュースレター",{"href":332,"dataGaName":333,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":335,"config":336},"プレス",{"href":337,"dataGaName":338,"dataGaLocation":26},"/press/","press",{"text":340,"config":341,"menu":342},"お問い合わせ",{"dataNavLevelOne":286},{"type":77,"columns":343},[344],{"items":345},[346,349,354],{"text":33,"config":347},{"href":35,"dataGaName":348,"dataGaLocation":26},"talk to sales",{"text":350,"config":351},"サポートを受ける",{"href":352,"dataGaName":353,"dataGaLocation":26},"https://support.gitlab.com","support portal",{"text":355,"config":356},"カスタマーポータル",{"href":357,"dataGaName":358,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":360,"login":361,"suggestions":368},"閉じる",{"text":362,"link":363},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":364,"config":365},"GitLab.com",{"href":40,"dataGaName":366,"dataGaLocation":367},"search login","search",{"text":369,"default":370},"提案",[371,373,378,380,384,388],{"text":57,"config":372},{"href":62,"dataGaName":57,"dataGaLocation":367},{"text":374,"config":375},"コード提案（AI）",{"href":376,"dataGaName":377,"dataGaLocation":367},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":93,"config":379},{"href":95,"dataGaName":93,"dataGaLocation":367},{"text":381,"config":382},"GitLab on AWS",{"href":383,"dataGaName":381,"dataGaLocation":367},"/ja-jp/partners/technology-partners/aws/",{"text":385,"config":386},"GitLab on Google Cloud",{"href":387,"dataGaName":385,"dataGaLocation":367},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":389,"config":390},"GitLabを選ぶ理由",{"href":70,"dataGaName":391,"dataGaLocation":367},"Why GitLab?",{"freeTrial":393,"mobileIcon":397,"desktopIcon":402,"secondaryButton":405},{"text":28,"config":394},{"href":395,"dataGaName":31,"dataGaLocation":396},"https://gitlab.com/-/trials/new/","nav",{"altText":398,"config":399},"GitLabアイコン",{"src":400,"dataGaName":401,"dataGaLocation":396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":398,"config":403},{"src":404,"dataGaName":401,"dataGaLocation":396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":190,"config":406},{"href":407,"dataGaName":408,"dataGaLocation":396},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":410,"mobileIcon":414,"desktopIcon":416},{"text":411,"config":412},"GitLab Duoの詳細について",{"href":62,"dataGaName":413,"dataGaLocation":396},"gitlab duo",{"altText":398,"config":415},{"src":400,"dataGaName":401,"dataGaLocation":396},{"altText":398,"config":417},{"src":404,"dataGaName":401,"dataGaLocation":396},{"button":419,"mobileIcon":424,"desktopIcon":426},{"text":420,"config":421},"/switch",{"href":422,"dataGaName":423,"dataGaLocation":396},"#contact","switch",{"altText":398,"config":425},{"src":400,"dataGaName":401,"dataGaLocation":396},{"altText":398,"config":427},{"src":428,"dataGaName":401,"dataGaLocation":396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":430,"mobileIcon":435,"desktopIcon":437},{"text":431,"config":432},"料金ページに戻る",{"href":177,"dataGaName":433,"dataGaLocation":396,"icon":434},"back to pricing","GoBack",{"altText":398,"config":436},{"src":400,"dataGaName":401,"dataGaLocation":396},{"altText":398,"config":438},{"src":404,"dataGaName":401,"dataGaLocation":396},{"title":440,"button":441,"config":446},"エージェント型AIがソフトウェアデリバリーをどのように変革するかをご覧ください",{"text":442,"config":443},"6月18日のGitLab Transcend日本開催版に申し込む",{"href":444,"dataGaName":445,"dataGaLocation":26},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":447,"disabled":10},"release",{"data":449},{"text":450,"source":451,"edit":457,"contribute":462,"config":467,"items":472,"minimal":680},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":452,"config":453},"ページのソースを表示",{"href":454,"dataGaName":455,"dataGaLocation":456},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":458,"config":459},"このページを編集",{"href":460,"dataGaName":461,"dataGaLocation":456},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":463,"config":464},"ご協力をお願いします",{"href":465,"dataGaName":466,"dataGaLocation":456},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":468,"facebook":469,"youtube":470,"linkedin":471},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[473,518,571,615,647],{"title":175,"links":474,"subMenu":489},[475,479,484],{"text":476,"config":477},"プランの表示",{"href":177,"dataGaName":478,"dataGaLocation":456},"view plans",{"text":480,"config":481},"Premiumを選ぶ理由",{"href":482,"dataGaName":483,"dataGaLocation":456},"/ja-jp/pricing/premium/","why premium",{"text":485,"config":486},"Ultimateを選ぶ理由",{"href":487,"dataGaName":488,"dataGaLocation":456},"/ja-jp/pricing/ultimate/","why ultimate",[490],{"title":340,"links":491},[492,494,496,498,503,508,513],{"text":340,"config":493},{"href":35,"dataGaName":36,"dataGaLocation":456},{"text":350,"config":495},{"href":352,"dataGaName":353,"dataGaLocation":456},{"text":355,"config":497},{"href":357,"dataGaName":358,"dataGaLocation":456},{"text":499,"config":500},"ステータス",{"href":501,"dataGaName":502,"dataGaLocation":456},"https://status.gitlab.com/","status",{"text":504,"config":505},"利用規約",{"href":506,"dataGaName":507,"dataGaLocation":456},"/terms/","terms of use",{"text":509,"config":510},"プライバシーに関する声明",{"href":511,"dataGaName":512,"dataGaLocation":456},"/ja-jp/privacy/","privacy statement",{"text":514,"config":515},"Cookie 優先設定",{"dataGaName":516,"dataGaLocation":456,"id":517,"isOneTrustButton":15},"cookie preferences","ot-sdk-btn",{"title":73,"links":519,"subMenu":528},[520,524],{"text":521,"config":522},"DevSecOpsプラットフォーム",{"href":55,"dataGaName":523,"dataGaLocation":456},"devsecops platform",{"text":525,"config":526},"AI支援開発",{"href":62,"dataGaName":527,"dataGaLocation":456},"ai-assisted development",[529],{"title":530,"links":531},"トピック",[532,536,541,546,551,556,561,566],{"text":93,"config":533},{"href":534,"dataGaName":535,"dataGaLocation":456},"/ja-jp/topics/ci-cd/","cicd",{"text":537,"config":538},"GitOps",{"href":539,"dataGaName":540,"dataGaLocation":456},"/ja-jp/topics/gitops/","gitops",{"text":542,"config":543},"DevOps",{"href":544,"dataGaName":545,"dataGaLocation":456},"/ja-jp/topics/devops/","devops",{"text":547,"config":548},"バージョン管理",{"href":549,"dataGaName":550,"dataGaLocation":456},"/ja-jp/topics/version-control/","version control",{"text":552,"config":553},"DevSecOps",{"href":554,"dataGaName":555,"dataGaLocation":456},"/ja-jp/topics/devsecops/","devsecops",{"text":557,"config":558},"クラウドネイティブ",{"href":559,"dataGaName":560,"dataGaLocation":456},"/ja-jp/topics/cloud-native/","cloud native",{"text":562,"config":563},"コーディングのためのAI",{"href":564,"dataGaName":565,"dataGaLocation":456},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":567,"config":568},"エージェント型AI",{"href":569,"dataGaName":570,"dataGaLocation":456},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":572,"links":573},"ソリューション",[574,577,579,584,588,591,594,597,600,602,605,610],{"text":118,"config":575},{"href":113,"dataGaName":576,"dataGaLocation":456},"Application Security Testing",{"text":105,"config":578},{"href":89,"dataGaName":90,"dataGaLocation":456},{"text":580,"config":581},"アジャイル開発",{"href":582,"dataGaName":583,"dataGaLocation":456},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":585,"config":586},"SCM",{"href":102,"dataGaName":587,"dataGaLocation":456},"source code management",{"text":93,"config":589},{"href":95,"dataGaName":590,"dataGaLocation":456},"continuous integration & delivery",{"text":144,"config":592},{"href":146,"dataGaName":593,"dataGaLocation":456},"value stream management",{"text":537,"config":595},{"href":596,"dataGaName":540,"dataGaLocation":456},"/ja-jp/solutions/gitops/",{"text":598,"config":599},"エンタープライズ",{"href":160,"dataGaName":161,"dataGaLocation":456},{"text":163,"config":601},{"href":166,"dataGaName":167,"dataGaLocation":456},{"text":603,"config":604},"公共機関",{"href":172,"dataGaName":173,"dataGaLocation":456},{"text":606,"config":607},"教育",{"href":608,"dataGaName":609,"dataGaLocation":456},"/ja-jp/solutions/education/","education",{"text":611,"config":612},"金融サービス",{"href":613,"dataGaName":614,"dataGaLocation":456},"/ja-jp/solutions/finance/","financial services",{"title":616,"links":617},"リソース",[618,620,622,624,628,630,633,635,637,639,641,643,645],{"text":193,"config":619},{"href":195,"dataGaName":196,"dataGaLocation":456},{"text":198,"config":621},{"href":200,"dataGaName":201,"dataGaLocation":456},{"text":203,"config":623},{"href":205,"dataGaName":206,"dataGaLocation":456},{"text":208,"config":625},{"href":626,"dataGaName":627,"dataGaLocation":456},"https://docs.gitlab.com/ja-jp/","docs",{"text":231,"config":629},{"href":233,"dataGaName":234,"dataGaLocation":456},{"text":631,"config":632},"新着情報",{"href":281,"dataGaName":282,"dataGaLocation":456},{"text":226,"config":634},{"href":228,"dataGaName":229,"dataGaLocation":456},{"text":240,"config":636},{"href":242,"dataGaName":243,"dataGaLocation":456},{"text":248,"config":638},{"href":250,"dataGaName":251,"dataGaLocation":456},{"text":253,"config":640},{"href":255,"dataGaName":256,"dataGaLocation":456},{"text":258,"config":642},{"href":260,"dataGaName":261,"dataGaLocation":456},{"text":263,"config":644},{"href":265,"dataGaName":266,"dataGaLocation":456},{"text":268,"config":646},{"href":270,"dataGaName":271,"dataGaLocation":456},{"title":648,"links":649},"会社情報",[650,652,654,656,658,660,664,669,671,673,675],{"text":292,"config":651},{"href":294,"dataGaName":286,"dataGaLocation":456},{"text":297,"config":653},{"href":299,"dataGaName":300,"dataGaLocation":456},{"text":305,"config":655},{"href":307,"dataGaName":308,"dataGaLocation":456},{"text":310,"config":657},{"href":312,"dataGaName":313,"dataGaLocation":456},{"text":315,"config":659},{"href":317,"dataGaName":318,"dataGaLocation":456},{"text":661,"config":662},"Sustainability",{"href":663,"dataGaName":661,"dataGaLocation":456},"/sustainability/",{"text":665,"config":666},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":667,"dataGaName":668,"dataGaLocation":456},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":320,"config":670},{"href":322,"dataGaName":323,"dataGaLocation":456},{"text":330,"config":672},{"href":332,"dataGaName":333,"dataGaLocation":456},{"text":335,"config":674},{"href":337,"dataGaName":338,"dataGaLocation":456},{"text":676,"config":677},"現代奴隷制の透明性に関する声明",{"href":678,"dataGaName":679,"dataGaLocation":456},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":681},[682,684,687],{"text":504,"config":683},{"href":506,"dataGaName":507,"dataGaLocation":456},{"text":685,"config":686},"Cookieの設定",{"dataGaName":516,"dataGaLocation":456,"id":517,"isOneTrustButton":15},{"text":509,"config":688},{"href":511,"dataGaName":512,"dataGaLocation":456},32,{"id":691,"title":692,"authors":693,"body":695,"category":9,"date":1294,"description":1295,"extension":1296,"externalUrl":6,"featured":10,"heroImage":1297,"meta":1298,"navigation":15,"path":1299,"seo":1300,"slug":1302,"stem":1303,"tags":1304,"template":1310,"updatedDate":6,"__hash__":1311},"blogPosts/ja-jp/blog/what-is-monorepo.md","モノレポとは？マルチレポとの違いやメリット、デメリットを解説",[694],"GitLab Team",{"type":696,"value":697,"toc":1253},"minimark",[698,702,705,710,717,720,723,727,733,736,739,743,749,752,755,759,765,768,784,789,792,796,799,802,806,809,813,816,819,823,826,830,836,839,850,854,857,861,864,868,871,874,878,884,887,891,894,899,902,907,910,915,918,922,925,930,933,938,941,946,949,952,996,1000,1006,1009,1013,1016,1027,1030,1034,1037,1051,1054,1058,1064,1067,1075,1079,1082,1086,1089,1109,1112,1116,1122,1125,1128,1132,1141,1149,1152,1155,1159,1165,1168,1172,1175,1178,1182,1185,1188,1192,1195,1199,1202,1213,1216,1220,1223,1226,1232,1241],[699,700,701],"p",{},"ソフトウェア開発において「モノレポ」は、開発効率の向上に繋げられる手法として近年多くの企業で採用されています。そのため、実際に自社の開発現場でもモノレポの導入を検討している企業の担当者も多いのではないでしょうか。モノレポの導入を検討する際には、特徴やマルチレポとの違いを事前に把握し、正確な導入可否の判断を行うことが大切です。",[699,703,704],{},"そこでこの記事では、モノレポの特徴やマルチレポとの違い、モノレポが向いているケース・向いていないケースを詳しく解説します。モノレポを導入する際に押さえておきたいポイントも解説するので、ぜひ参考にして下さい。",[706,707,709],"h2",{"id":708},"_1-モノレポとは意味と定義","1. モノレポとは？意味と定義",[699,711,712],{},[713,714],"img",{"alt":715,"src":716},"モノレポとは？意味と定義","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228708/qp1s9gztioowmfsdxtfk.jpg",[699,718,719],{},"モノレポは「Monolithic Repository」の略語で、「mono（単一）」と「repo（リポジトリ）」を組み合わせた言葉になります。複数のプロジェクトやサービスに関するコード群を単一のリポジトリでまとめて管理するソフトウェア開発における手法を指します。モノレポは1つの大きな家や倉庫のようなもので、その中にさまざまなアプリやライブラリなどの複数のパッケージが入っており、それぞれ独立した機能を持ちながらも1つの場所でまとめて管理されているイメージです。",[699,721,722],{},"GoogleやMetaなど有名な巨大テックカンパニーでも採用されている手法で、開発スピードの向上やチーム連携の強化などに繋げられます。",[706,724,726],{"id":725},"_2-モノレポとマルチレポポリレポとの違い","2. モノレポとマルチレポ（ポリレポ）との違い",[699,728,729],{},[713,730],{"alt":731,"src":732},"モノレポとマルチレポ（ポリレポ）との違い","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228707/mfxadyprplmvvhhiay1r.jpg",[699,734,735],{},"モノレポと対になる言葉が「マルチレポ（multi-repo）」で、1つのリポジトリで複数のプロジェクトやサービスに関するコード群を管理するモノレポとは異なり、プロジェクトごとにリポジトリを分けるアプローチを指します。つまり、プロジェクトを管理する家や倉庫が個別に複数分かれて存在しているイメージです。なお、マルチレポは「ポリレポ（Polyrepo）」とも呼ばれます。",[699,737,738],{},"モノレポとマルチレポにおいては、一概にどちらが優れているということではなく、自社の目的や開発体制などを考慮して選択する必要があります。モノレポ導入が向いている・向いていないケースは後に詳しく解説します。",[706,740,742],{"id":741},"_3-モノレポが注目されている背景","3. モノレポが注目されている背景",[699,744,745],{},[713,746],{"alt":747,"src":748},"モノレポが注目されている背景","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228705/dhazug8ultshdnbc3qfm.jpg",[699,750,751],{},"モノレポが注目されている背景は、近年ソフトウェア開発の領域において複数チームによる並行開発やコード共有の必要性が高まっていることにあります。例えば、フロントエンドとバックエンドで複数チームに分かれて同時並行で開発を進める場合、各リポジトリが別々に管理されていると仕様変更の度にそれぞれのリポジトリでの修正が必要になり、開発者間のコミュニケーションコストの増加に繋がります。",[699,753,754],{},"モノレポなら、リポジトリ1つで開発・運用できるため、フロントエンドとバックエンドにまたがる機能追加や改修が発生した場合でも、互いに連携しながら効率的に対応を進められます。",[706,756,758],{"id":757},"_4-モノレポのメリット利点","4. モノレポのメリット・利点",[699,760,761],{},[713,762],{"alt":763,"src":764},"モノレポのメリット・利点","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228706/elvigltcpthuejuoh9ev.jpg",[699,766,767],{},"ここでは、モノレポの具体的なメリットについて確認していきましょう。",[769,770,771,775,778,781],"ul",{},[772,773,774],"li",{},"コード共有と再利用性の向上",[772,776,777],{},"チーム連携の向上",[772,779,780],{},"リファクタリングのしやすさ",[772,782,783],{},"ツール設定の一元管理",[785,786,788],"h3",{"id":787},"_4-1-コード共有と再利用性の向上","4-1. コード共有と再利用性の向上",[699,790,791],{},"モノレポは複数のアプリケーションやサービスを1つのリポジトリで管理できるため、コード共有と再利用性の向上に繋げられます。複数のアプリケーションで利用する共通ライブラリを1つのリポジトリで流用できるようにすれば、同じコードを何度も書く必要がなくなり、管理コストを削減しながら効率よく開発を進められます。",[785,793,795],{"id":794},"_4-2-関連する修正を同時に反映できる","4-2. 関連する修正を同時に反映できる",[699,797,798],{},"モノレポなら依存関係が同一のリポジトリで完結するため、バックエンドやフロントエンドなどで横断的な変更が生じた場合でも一度のコミットで関連する全ての変更の反映が可能になり、不整合の防止に繋がります。",[699,800,801],{},"マルチレポの場合は、別々のリポジトリでライブラリを管理するため、複数PRを順番にマージする必要があり、その間の不整合状態が発生しやすくなります。",[785,803,805],{"id":804},"_4-3-チーム連携の向上","4-3. チーム連携の向上",[699,807,808],{},"モノレポを導入することで、開発チーム間での連携が強化されます。それぞれのチームが共通の依存関係やライブラリを利用できるため、互いにコードの修正や変更などが発生した場合でも認識を揃えながら開発を進められます。情報共有がスムーズになるため、モノレポは複数チームで協力して開発を進めたいケースに適しています。",[785,810,812],{"id":811},"_4-4-リファクタリングのしやすさ","4-4. リファクタリングのしやすさ",[699,814,815],{},"モノレポなら同一のリポジトリを利用するため、複数のアプリケーションにまたがる修正において影響範囲を確認しながら安全に対応を進められます。",[699,817,818],{},"型定義やインターフェースの変更時、全ての利用箇所を一度の変更で修正でき、コンパイラやIDEが影響範囲を正確に検出することが可能です。マルチレポの場合は、更新が生じた場合それぞれのリポジトリで対応する必要があるため、バージョン管理が複雑になりやすい傾向があります。",[785,820,822],{"id":821},"_4-5-ツール設定の一元管理","4-5. ツール設定の一元管理",[699,824,825],{},"モノレポでは、ESLintやTypeScript、CI/CDパイプライン、Jestなどのツール設定を一元管理しやすいメリットもあります。開発で扱うさまざまなツールをリポジトリルートに一括で管理することで、プロジェクト全体の開発ルールが統一され、メンテナンス負荷の削減に繋がります。マルチレポの場合は、それぞれのリポジトリでツール設定が必要になるため、更新漏れなどの問題が発生しやすくなります。",[706,827,829],{"id":828},"_5-モノレポのデメリット注意点","5. モノレポのデメリット・注意点",[699,831,832],{},[713,833],{"alt":834,"src":835},"モノレポのデメリット・注意点","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228711/gknn5z883q5p6diqoqfi.jpg",[699,837,838],{},"モノレポは単一のリポジトリでライブラリなどを管理でき開発の効率化に繋げられる一方で、以下のようなデメリットもあります。",[769,840,841,844,847],{},[772,842,843],{},"Gitの歴史の巨大化",[772,845,846],{},"セキュリティ対策",[772,848,849],{},"学習コスト・共通理解の必要性",[785,851,853],{"id":852},"_5-1-gitの歴史の巨大化","5-1. Gitの歴史の巨大化",[699,855,856],{},"モノレポは複数のプロジェクトを1つにまとめて管理するため、Gitの歴史が巨大化してgit blameやgit logでの処理が重くなるという課題もあります。それにより、処理時間が増加しコードの調査やレビューに時間がかかってしまう場合もあります。",[785,858,860],{"id":859},"_5-2-セキュリティ対策","5-2. セキュリティ対策",[699,862,863],{},"モノレポではリポジトリレベルのアクセス制限ができないことも課題の一つです。GitHub・GitLabでは原則リポジトリ全体へのアクセス権限しか設定できず、ディレクトリ単位の制限にはCODEOWNERSやブランチ保護ルールを工夫する必要があります。機密性の高いコードを管理する場合は、別途でリポジトリ化を検討すべきです。",[785,865,867],{"id":866},"_5-3-学習コスト共通理解の必要性","5-3. 学習コスト・共通理解の必要性",[699,869,870],{},"モノレポを導入する際には、開発にコミットする全てのメンバーがモノレポの概念や特性、運用ルールを理解しておかなければなりません。pnpmやYarn workspace、Nx、Turborepoなどの専用ツールや、開発ルールなど覚えるべきことが多く、初回セットアップ時の学習コストは高い傾向があります。",[699,872,873],{},"開発者の学習コストを抑えるためには、ルールや手順をドキュメント化し、チーム内で共有しやすい環境を構築するなどの工夫が必要です。また、段階的な導入を行うことで、メンバーの混乱を防止できるでしょう。",[706,875,877],{"id":876},"_6-マルチレポのメリットデメリット","6. マルチレポのメリット・デメリット",[699,879,880],{},[713,881],{"alt":882,"src":883},"マルチレポのメリット・デメリット","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228709/ozsraa6skhdf05rvk40h.jpg",[699,885,886],{},"モノレポのメリット・デメリットを把握したところで、マルチレポの特徴も確認していきましょう。両者の違いを理解しておくことで、自社の要件にマッチした手法を選択できるようになります。",[785,888,890],{"id":889},"_6-1-マルチレポのメリット","6-1. マルチレポのメリット",[699,892,893],{},"プロジェクトごとにリポジトリを分けて管理するマルチレポには以下のようなメリットがあります。",[769,895,896],{},[772,897,898],{},"各プロジェクトの独立性が高い",[699,900,901],{},"→個別のプロジェクトごとでCI/CD設定やアクセス権限管理、リリースなどを行える",[769,903,904],{},[772,905,906],{},"さまざまな技術構成を採用できる",[699,908,909],{},"→各リポジトリで異なる言語・フレームワークを柔軟に選択できる",[769,911,912],{},[772,913,914],{},"Git履歴を抑えやすい",[699,916,917],{},"→単一のリポジトリで管理するモノレポより軽量化できる",[785,919,921],{"id":920},"_6-2-マルチレポのデメリット","6-2. マルチレポのデメリット",[699,923,924],{},"マルチレポには以下のようなデメリットもあります。",[769,926,927],{},[772,928,929],{},"複数リポジトリにおける横断的変更に手間がかかる",[699,931,932],{},"→仕様変更などがある場合、各リポジトリでの修正が必要",[769,934,935],{},[772,936,937],{},"バージョン管理が複雑になりやすい",[699,939,940],{},"→ライブラリ更新にバージョン不一致が起こりやすい",[769,942,943],{},[772,944,945],{},"ツール設定が分散して管理が大変",[699,947,948],{},"→ESLintやTypeScriptなどのツール設定をリポジトリごとに行う必要がある",[699,950,951],{},"以下にモノレポとマルチレポのメリット・デメリットを表でまとめているので参考にして下さい。",[953,954,955,970],"table",{},[956,957,958],"thead",{},[959,960,961,964,967],"tr",{},[962,963],"th",{},[962,965,966],{},"メリット",[962,968,969],{},"デメリット",[971,972,973,985],"tbody",{},[959,974,975,979,982],{},[976,977,978],"td",{},"モノレポ",[976,980,981],{},"・コード共有がしやすい ・チーム連携の強化に繋がる ・横断的変更が容易 ・ツールを一元管理できる",[976,983,984],{},"・git blameやgit logが重くなりやすい ・リポジトリレベルのアクセス制限ができない ・初回セットアップ時の学習コストが高い",[959,986,987,990,993],{},[976,988,989],{},"マルチレポ",[976,991,992],{},"・各リポジトリでCI/CDやアクセス権限管理が可能 ・異なる技術を採用できる ・リポジトリの軽量化",[976,994,995],{},"・横断的変更が大変 ・バージョン管理が複雑になりやすい ・ツール管理が分散する",[706,997,999],{"id":998},"_7-モノレポが向いている向いていないケース","7. モノレポが向いている・向いていないケース",[699,1001,1002],{},[713,1003],{"alt":1004,"src":1005},"モノレポが向いている・向いていないケース","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228710/m4papvdhv01l9xsh4bqr.jpg",[699,1007,1008],{},"モノレポはどのようなケースで適しているのか気になる人も多いでしょう。ここでは、モノレポ導入が向いている・向いていないケースについて詳しく解説していきます。",[785,1010,1012],{"id":1011},"_7-1-モノレポが向いているケース","7-1. モノレポが向いているケース",[699,1014,1015],{},"モノレポが向いているのは以下のケースが挙げられます。",[769,1017,1018,1021,1024],{},[772,1019,1020],{},"コード共有の頻度が高い",[772,1022,1023],{},"複数プロジェクト間で型やライブラリを統一したい",[772,1025,1026],{},"原子的な変更が必要になる",[699,1028,1029],{},"まずモノレポは開発においてコード共有の頻度が高いケースにおいて相性が良いです。同一のリポジトリで共通コードを管理できるため、各プロジェクトで必要なコードを再利用し、開発スピードの向上に繋げられるでしょう。また、関連する変更を1つのコミットで完結させて、不整合の発生を防止したいケースにも適しています。",[785,1031,1033],{"id":1032},"_7-2-モノレポが向いていないケース","7-2. モノレポが向いていないケース",[699,1035,1036],{},"以下のケースではモノレポではなく、マルチレポの導入を検討すべきだと言えます。",[769,1038,1039,1042,1045,1048],{},[772,1040,1041],{},"プロジェクト数やチーム人数が少なく、モノレポの効果が期待できない",[772,1043,1044],{},"チームごとに開発ルールや採用技術、リリースタイミングなどが異なる",[772,1046,1047],{},"部署やチームごとに完全に独立したアクセス権限が必要なケース",[772,1049,1050],{},"開発チーム内でモノレポのノウハウ・経験がない など",[699,1052,1053],{},"まず、チームごとに開発ルールや採用技術などが異なる場合は、独立性の高いマルチレポを採用する必要があると言えるでしょう。アクセス制限については、例えば、金融機関で部門間のコード参照を禁止する必要がある場合などはモノレポの導入は避けるべきだと言えます。また、チーム内での学習コストが高い場合、本格的な導入には時間がかかるかもしれません。",[706,1055,1057],{"id":1056},"_8-モノレポを導入する際のポイント","8. モノレポを導入する際のポイント",[699,1059,1060],{},[713,1061],{"alt":1062,"src":1063},"モノレポを導入する際のポイント","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228712/mssmzyoggrzz2fe7lffo.jpg",[699,1065,1066],{},"モノレポを自社の開発現場で導入する際には以下のポイントを意識することが大切です。",[769,1068,1069,1072],{},[772,1070,1071],{},"導入目的を明確化する",[772,1073,1074],{},"運用ルールを設計する",[785,1076,1078],{"id":1077},"_8-1-導入目的を明確化する","8-1. 導入目的を明確化する",[699,1080,1081],{},"まずは自社としてモノレポを導入する目的を明確化しておくことが大切です。上記で解説した通りモノレポには向き・不向きなケースがあるため、「モノレポを通してどのような課題を解決したいのか？」というところを明確にしておかなければなりません。加えて、開発体制やチームのスキルレベルなども考慮し、複数の検討要素をもとに正確な導入判断を実施することが大切です。",[785,1083,1085],{"id":1084},"_8-2-運用ルールを設計する","8-2. 運用ルールを設計する",[699,1087,1088],{},"モノレポは明確な運用ルールがないまま導入してしまうとチーム内で混乱を招いてしまいます。そのため、仕組みそのものに依存せず、人による適切なルール設計を行うことが重要なポイントになります。具体的には以下のような事項を決めておきましょう。",[769,1090,1091,1094,1097,1100,1103,1106],{},[772,1092,1093],{},"ディレクトリ構成",[772,1095,1096],{},"命名ルール",[772,1098,1099],{},"依存関係の管理ルール",[772,1101,1102],{},"レビューの流れ",[772,1104,1105],{},"ブランチ戦略",[772,1107,1108],{},"CI/CDルール など",[699,1110,1111],{},"導入前にこれらのルールが明確化されていることで、スムーズな運用に繋がります。",[706,1113,1115],{"id":1114},"_9-モノレポ運用におけるcicdの課題と対策","9. モノレポ運用におけるCI/CDの課題と対策",[699,1117,1118],{},[713,1119],{"alt":1120,"src":1121},"モノレポ運用におけるCI/CDの課題と対策","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228707/rfljxzs3jimuqnhoky95.jpg",[699,1123,1124],{},"モノレポではCI/CDの運用においていくつか課題が発生します。1つのリポジトリでアプリケーションやライブラリを管理するため、事前設計がないままコードの変更範囲に関係なくフルでCI/CDを回してしまうと、実行時間が長くなるなど無駄なリソースを割くことに繋がります。そのため、変更範囲に合わせて処理をする仕組みを取り入れる必要があります。",[699,1126,1127],{},"具体的には、「affected detection（変更されたパッケージだけテスト）」「incremental build（変更部分だけビルド）」「distributed caching（ビルド結果の再利用）」が必要になり、NxやTurborepoの利用でこれらの対応が可能です。",[706,1129,1131],{"id":1130},"_10-gitlabとモノレポとの相性","10. GitLabとモノレポとの相性",[699,1133,1134,1140],{},[1135,1136,1139],"a",{"href":1137,"rel":1138},"https://about.gitlab.com/ja-jp/",[],"GitLab","は、AIを搭載したDevSecOpsを支援するプラットフォームです。Gitリポジトリ管理やCI/CD、セキュリティ対策、レビュー管理などソフトウェア開発におけるライフサイクルを効率化できるさまざまな機能を単一のプラットフォームで利用できます。GitLabでは、モノレポにおけるCI/CD運用を最適化できる機能を提供しており、GitLab固有の強みとしては以下があります。",[769,1142,1143,1146],{},[772,1144,1145],{},"モノレポ向けMerge Trainによる並行マージ管理",[772,1147,1148],{},"CI/CD変数のproject/group階層管理 など",[699,1150,1151],{},"（※Nx/Turborepoといったモノレポツールの組み合わせが前提になります）",[699,1153,1154],{},"自社でDevSecOpsや効率的なモノレポ運用を実現するなら、ぜひGitLabの導入も検討して下さい。",[706,1156,1158],{"id":1157},"_11-モノレポに関するよくある質問","11. モノレポに関するよくある質問",[699,1160,1161],{},[713,1162],{"alt":1163,"src":1164},"モノレポに関するよくある質問","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228706/gkjg6c4xqtc1uvqzam0x.jpg",[699,1166,1167],{},"最後にモノレポに関するよくある質問を紹介します。モノリスとの違いや導入判断基準、失敗しやすいポイントなどを確認しておきましょう。",[785,1169,1171],{"id":1170},"_11-1-モノレポとモノリスの違いは","11-1. モノレポとモノリスの違いは？",[699,1173,1174],{},"モノリスとは、アプリケーションの全ての機能やコードが1つのシステムにまとめられている構造を指します。モノレポは、コードを管理するリポジトリの運用方法です。",[699,1176,1177],{},"モノレポ内にマイクロサービス（独立したサービス群）を配置することも、モノリシックアプリケーション（単一の大きなアプリ）を配置することも可能です。つまり、「モノレポ ≠ モノリス」であり、両者は直交する概念になります。",[785,1179,1181],{"id":1180},"_11-2-モノレポとマルチレポはどちらを選ぶべき","11-2. モノレポとマルチレポはどちらを選ぶべき？",[699,1183,1184],{},"結論、どちらが良いということではなく、自社の要件にあわせて適切な手法を選ぶことが大切です。例えば、コード共有の頻度が高く、ライブラリをプロジェクト間で統一したいならモノレポを選択するのが適切でしょう。また、最初からどちらか一択ではなく、開発の成長段階に応じて手法を移行・変更したりするケースもあります。",[699,1186,1187],{},"いずれにせよ、両者の特徴をよく理解した上での導入判断が求められます。",[785,1189,1191],{"id":1190},"_11-3-既存のプロジェクトをモノレポに移行できる","11-3. 既存のプロジェクトをモノレポに移行できる？",[699,1193,1194],{},"既存プロジェクトをモノレポに移行することは可能です。ただ、いきなりの完全移行は現場に混乱を招く可能性があるため、運用ルールを整備しつつ段階的な移行を意識することが大切です。また、既にマルチレポで安定運用できているなら、無理にモノレポへ移行する必要はないでしょう。",[785,1196,1198],{"id":1197},"_11-4-モノレポ運用で失敗しやすいポイントは","11-4. モノレポ運用で失敗しやすいポイントは？",[699,1200,1201],{},"モノレポ運用で失敗しやすいポイントは以下の通りです。",[769,1203,1204,1207,1210],{},[772,1205,1206],{},"モノレポの特徴を理解しておらず、不向きなケースで導入してしまっている",[772,1208,1209],{},"導入前に運用ルールの設計をしておらず、現場に混乱が生じる",[772,1211,1212],{},"CI/CDを回すのに無駄なリソースを割いてしまい、開発効率の低下を招く など",[699,1214,1215],{},"これらの失敗を回避するためには、導入目的や運用ルールを明確にする、適切なCI/CD設計を行うなどの対策が必要です。",[706,1217,1219],{"id":1218},"まとめ-モノレポは自社の課題にあわせて導入しよう","まとめ モノレポは自社の課題にあわせて導入しよう",[699,1221,1222],{},"ソフトウェア開発の領域において単一のリポジトリで複数プロジェクトを管理できるモノレポは、コード共有や複数チームによる並行開発のニーズが高まる中で今後も多くの企業で導入が進むと考えられます。",[699,1224,1225],{},"今回解説したモノレポのメリットや課題、マルチレポとの違いなどを参考に、正確な導入判断を行って下さい。なお、モノレポ導入後にCI/CDを効率よく回すためには、別途ツール活用による工夫が必要になります。",[699,1227,1228,1231],{},[1135,1229,1139],{"href":1137,"rel":1230},[],"は単一のプラットフォームでソフトウェア開発を効率化できる豊富な機能を提供しており、モノレポツールと組み合わせることでモノレポにおけるCI/CDの課題を解決できる機能もご用意しています。モノレポを導入する際には、ぜひGitLabの活用もご検討下さい。",[1233,1234,1235],"blockquote",{},[699,1236,1237],{},[1135,1238,33],{"href":1239,"rel":1240},"https://about.gitlab.com/ja-jp/sales/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-monorepo",[],[699,1242,1243,1244,1249,1252],{},"監修：小松原 つかさ ",[1135,1245,1248],{"href":1246,"rel":1247},"https://gitlab.com/tkomatsubara",[],"@tkomatsubara",[1250,1251],"br",{},"\n（GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）",{"title":1254,"searchDepth":1255,"depth":1255,"links":1256},"",2,[1257,1258,1259,1260,1268,1273,1277,1281,1285,1286,1287,1293],{"id":708,"depth":1255,"text":709},{"id":725,"depth":1255,"text":726},{"id":741,"depth":1255,"text":742},{"id":757,"depth":1255,"text":758,"children":1261},[1262,1264,1265,1266,1267],{"id":787,"depth":1263,"text":788},3,{"id":794,"depth":1263,"text":795},{"id":804,"depth":1263,"text":805},{"id":811,"depth":1263,"text":812},{"id":821,"depth":1263,"text":822},{"id":828,"depth":1255,"text":829,"children":1269},[1270,1271,1272],{"id":852,"depth":1263,"text":853},{"id":859,"depth":1263,"text":860},{"id":866,"depth":1263,"text":867},{"id":876,"depth":1255,"text":877,"children":1274},[1275,1276],{"id":889,"depth":1263,"text":890},{"id":920,"depth":1263,"text":921},{"id":998,"depth":1255,"text":999,"children":1278},[1279,1280],{"id":1011,"depth":1263,"text":1012},{"id":1032,"depth":1263,"text":1033},{"id":1056,"depth":1255,"text":1057,"children":1282},[1283,1284],{"id":1077,"depth":1263,"text":1078},{"id":1084,"depth":1263,"text":1085},{"id":1114,"depth":1255,"text":1115},{"id":1130,"depth":1255,"text":1131},{"id":1157,"depth":1255,"text":1158,"children":1288},[1289,1290,1291,1292],{"id":1170,"depth":1263,"text":1171},{"id":1180,"depth":1263,"text":1181},{"id":1190,"depth":1263,"text":1191},{"id":1197,"depth":1263,"text":1198},{"id":1218,"depth":1255,"text":1219},"2026-06-12","この記事では、モノレポの特徴やマルチレポとの違い、モノレポが向いているケース・向いていないケースを詳しく解説します。","md","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228639/dgazp67o5nee87ljkt3s.jpg",{},"/ja-jp/blog/what-is-monorepo",{"config":1301,"title":692,"ogImage":1297,"ogTitle":1295,"description":1295},{"noIndex":10},"what-is-monorepo","ja-jp/blog/what-is-monorepo",[93,1305,1306,1307,1308,1309],"collaboration","features","git","tutorial","workflow","BlogPost","DyIIOHgS3uu0dcnJWNlE6nsImmmuhQvngvMsnS95tVM",[1313,1320,1326,1334],{"title":1314,"heroImage":1315,"category":9,"description":1316,"authors":1317,"slug":1319,"externalUrl":6},"CI 入門：ジョブを順序どおりに、並列に、または順不同で実行する方法","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662061/Blog/Hero%20Images/cicdcover.png","継続的インテグレーション (CI) 入門：CI は初めてですか？GitLab CI の使い方を学び、最初のCIパイプラインをGitLabでビルドしてみましょう。",[1318],"Itzik Gan Baruch","basics-of-gitlab-ci-updated",{"title":1321,"heroImage":1322,"category":9,"description":1323,"authors":1324,"slug":1325,"externalUrl":6},"Azure DevOpsリポジトリをGitLabと統合する方法","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664363/Blog/Hero%20Images/aleksey-kuprikov.jpg","Azure DevOpsリポジトリのGitLabとの統合は簡単。やり方を学んで、Azure DevOpsからGitLab CI/CDへの移行をスムーズに行いましょう。",[1318],"integrating-azure-devops-scm-and-gitlab",{"title":1327,"heroImage":1328,"category":9,"description":1329,"authors":1330,"slug":1333,"externalUrl":6},"GitLabとAnsibleを使ってIaCを作成する方法","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665322/Blog/Hero%20Images/gitlab-ansible-cover.png","Ansible playbookを使ってIaCを作成します。GitLab CIが持つ力を探求してみてください。",[1331,1332],"Brad Downey","Sara Kassabian","using-ansible-and-gitlab-as-infrastructure-for-code",{"title":1335,"heroImage":1336,"category":9,"description":1337,"authors":1338,"slug":1340,"externalUrl":6}," git Commit（コミット）の履歴が重要な理由とその整理方法","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659457/Blog/Hero%20Images/keep-git-commit-history-clean.jpg","git コミット履歴は、煩雑になりがち。gitコミットのメッセージ履歴をクリーンに保ち、変更内容を把握する方法とその重要性をご紹介します。",[1339],"Kushal Pandya","keeping-git-commit-history-clean",1781392698711]