カテゴリ: Go言語 更新日: 2025/12/25

Go言語のgo mod init入門!初心者でも簡単にモジュールを作成する方法

Go言語のgo mod initコマンドでモジュールを作成する流れ
Go言語のgo mod initコマンドでモジュールを作成する流れ

先生と生徒の会話形式で理解しよう

生徒

「先生、Goで作ったプログラムの依存関係を管理したいんですけど、どうしたらいいですか?」

先生

「それならgo mod initを使って、まずモジュールを作成することから始めましょう。」

生徒

「モジュールって何ですか?」

先生

「モジュールとは、Goで作られたプログラムの部品のようなもので、他のパッケージやライブラリをまとめて管理できます。」

生徒

「なるほど、ではgo mod initで何ができるんですか?」

先生

go mod initを実行すると、現在のプロジェクト用にgo.modというファイルが作られ、モジュール名と依存関係を管理できるようになります。」

1. go mod initの基本的な使い方

1. go mod initの基本的な使い方
1. go mod initの基本的な使い方

まず、新しいプロジェクト用のディレクトリを作り、そこに移動します。


mkdir myproject
cd myproject

次にgo mod initを使ってモジュールを初期化します。モジュール名は一般的にGitHubなどのリポジトリURLを指定します。


go mod init github.com/username/myproject

実行すると、go.modファイルが作成され、プロジェクトの基本情報が書かれています。

2. go.modファイルの内容を理解する

2. go.modファイルの内容を理解する
2. go.modファイルの内容を理解する

作成されたgo.modファイルには、モジュール名とGoのバージョンが記載されています。


module github.com/username/myproject

go 1.20

ここに依存するライブラリが追加されると、自動的に管理されます。

3. 依存パッケージを追加して管理する

3. 依存パッケージを追加して管理する
3. 依存パッケージを追加して管理する

新しいパッケージを使いたい場合、go getコマンドでインストールします。するとgo.modにその情報が追加されます。


go get github.com/gin-gonic/gin

これでWebフレームワークGinをプロジェクトで使えるようになり、依存関係も自動で管理されます。

4. 依存関係の整理

4. 依存関係の整理
4. 依存関係の整理

不要な依存関係が残ることがあります。そんなときはgo mod tidyを実行します。


go mod tidy

これにより、go.modgo.sumが整理され、必要な依存関係だけが残ります。

5. go.modを使ったプロジェクト管理のメリット

5. go.modを使ったプロジェクト管理のメリット
5. go.modを使ったプロジェクト管理のメリット

Goモジュールを使うことで、プロジェクトの依存関係を簡単に管理でき、チーム開発や公開用パッケージ作成時に非常に便利です。また、環境に依存せず、再現性の高いビルドが可能になります。

Go 1.11以降では、モジュール管理が標準になったため、今後のプロジェクト開発ではgo mod initの理解が必須と言えます。

6. 実践的な流れを整理

6. 実践的な流れを整理
6. 実践的な流れを整理

ここまでの内容を踏まえて、Go言語でモジュール管理を行う一連の流れを、初心者の方でもイメージしやすい形で整理してみましょう。まずは新しいフォルダを作ってプロジェクトを用意し、その中で go mod init を実行してモジュールを初期化します。この時点で、プロジェクト全体を管理するための土台が整います。

次に、必要になった外部パッケージを go get で追加します。すると、使っているライブラリの情報が自動的に go.mod に記録されるため、自分で細かく管理する必要はありません。最後に go mod tidy を実行することで、使っていない依存関係が整理され、プロジェクトがすっきりした状態になります。

例えば、以下のような簡単なプログラムを作る場合でも、この流れは同じです。


package main

import "fmt"

func main() {
    fmt.Println("Goモジュール管理の基本を学びました")
}

このように、小さなサンプルからでも必ずモジュールを意識して開発する習慣をつけておくことで、後から機能を追加したり、プログラムの規模が大きくなった場合でも迷わず対応できるようになります。基本の流れを繰り返し実践することが、Go言語での安定した開発への近道です。

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

go mod initで始めるGo言語のモジュール管理

ここまでの記事では、Go言語におけるモジュール管理の第一歩として、go mod initの基本的な使い方から、go.modファイルの役割、依存パッケージの追加方法、そして依存関係を整理するgo mod tidyまでを一通り学んできました。Go言語でプログラムを書き始めたばかりの頃は、単一ファイルで動作するサンプルコードが多く、依存関係を意識する機会は少ないかもしれません。しかし、実際にWebアプリケーションやツールを作り始めると、外部ライブラリを使う場面が必ず出てきます。

そのときに重要になるのが、Goモジュールという考え方です。Goモジュールは、プロジェクト全体を一つの単位として管理し、どのライブラリを、どのバージョンで使っているかを明確にしてくれます。go mod initを実行するだけで、その管理の土台となるgo.modファイルが作成され、依存関係の管理が自動化される点は、Go言語の大きな特徴と言えるでしょう。

go.modとgo.sumが果たす役割

記事中でも触れたように、go.modファイルにはモジュール名と使用するGoのバージョン、そして依存パッケージの情報が記載されます。一方で、go.sumファイルは、ダウンロードした依存ライブラリの正確な内容を保証するためのチェック情報を保持しています。この二つのファイルがそろうことで、別の環境や別の開発者のパソコンでも、同じ依存関係を再現できるようになります。

例えば、チーム開発でプロジェクトを共有する場合、go.modgo.sumをリポジトリに含めておけば、他のメンバーは特別な設定をしなくても、同じ状態で開発を始めることができます。これは、開発効率の向上だけでなく、環境差異による不具合を防ぐ意味でも非常に重要です。

依存関係管理を実感できるサンプル例


package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(200, "Goモジュールで管理されたWebアプリです")
    })
    fmt.Println("サーバー起動")
    r.Run()
}

このようなコードを書くと、Ginフレームワークが自動的に依存関係として管理されます。go mod initでモジュールを初期化していれば、追加の設定を意識せずに外部パッケージを利用できる点が、初心者にとっても扱いやすいポイントです。さらに不要になったライブラリはgo mod tidyを実行することで整理でき、プロジェクトを常にクリーンな状態に保てます。

初心者が押さえておきたい実践的な考え方

初心者のうちは、「とりあえず動けば良い」と考えがちですが、最初からモジュール管理を意識しておくことで、後から規模が大きくなったときにもスムーズに対応できます。特に、Go言語ではモジュール管理が標準機能として統合されているため、早い段階でgo mod initに慣れておくことが、今後の学習や実務に大きく役立ちます。

プロジェクトを作成したら、まずモジュールを初期化し、必要なパッケージを追加し、定期的に依存関係を整理する。この基本的な流れを習慣化することで、安定したGo開発環境を構築できるようになります。

先生と生徒の振り返り会話

生徒:「go mod initって、最初は難しそうだと思っていましたが、意外とシンプルなんですね。」

先生:「そうですね。まずはモジュールを作る、という意識を持つことが大切です。」

生徒:「go.modがあるおかげで、どんなライブラリを使っているか一目で分かるのも便利だと思いました。」

先生:「その通りです。チーム開発や別の環境でも同じ状態を再現できるのが大きなメリットですね。」

生徒:「これからは、新しいGoプロジェクトを作るときは必ずgo mod initから始めます。」

先生:「それが正解です。その習慣が、将来の開発をずっと楽にしてくれますよ。」

関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Swift
Swiftのnilとは?Optionalとの関係や初期化について初心者向けにやさしく解説!
New2
Go言語
Go言語のinit関数の役割と使い方!プログラム起動時の初期化処理
New3
Go言語
Go言語のマップの順序保証がない理由と扱い方の工夫をやさしく解説!初心者でもわかる基本知識
New4
Kotlin
Kotlinのforループの基本!範囲・配列・コレクションの繰り返し処理
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Kotlinのsettings.gradleファイルを完全解説!初心者でもわかるプロジェクト設定の基本
No.2
Java&Spring記事人気No2
Go言語
Swiftの配列(Array)の使い方を完全ガイド!初心者でもわかるデータのまとめ方
No.3
Java&Spring記事人気No3
Go言語
Go言語のSQLインジェクション対策を完全解説!初心者でも安全なデータベース操作がわかる
No.4
Java&Spring記事人気No4
Swift
Swiftの高階関数map・filter・reduceを完全解説!初心者でもわかる配列操作の基本
No.5
Java&Spring記事人気No5
Go言語
Swiftの文字列操作を完全ガイド!初心者でもわかるStringの基本
No.6
Java&Spring記事人気No6
Kotlin
KotlinのRoomで複雑なクエリを使いこなす!初心者でもわかる応用テクニック
No.7
Java&Spring記事人気No7
Go言語
Go言語のgo installコマンドの役割とインストール先の仕組みを徹底解説!
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方