Go言語

Goで始めるWebアプリ開発:環境構築からCI/CDまでの完全ガイド

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


スポンサードリンク

1. 開発環境のセットアップ

1‑1. Go のインストールとモジュール初期化

OS 推奨インストール方法 コマンド例
macOS Homebrew brew install go
Ubuntu / Debian 系 APT(公式リポジトリ) sudo apt update && sudo apt install golang-go
Windows winget または MSI インストーラ winget install GoLang.Go

インストールが完了したら、バージョンの確認モジュール初期化 を行います。
(バージョンは「最新安定版」を想定してください。)

環境変数のポイント

  • GOROOT は Go 本体が自動で設定します。手動で書く必要はありません。
  • GOPATH を明示したい場合はデフォルトの ~/go(Linux/macOS)/%USERPROFILE%\go(Windows)が推奨です。

※注意
Go のバージョンや依存ライブラリは go.mod / go.sum が真の情報源です。記事中に特定バージョンを記載しないことで、将来的な更新にも耐える構成になります。


2. プロジェクト構成と最小サーバ実装

2‑1. 推奨ディレクトリレイアウト

  • cmd/:実行ファイルを生成するパッケージ。main.go が唯一のエントリです。
  • internal/:外部からはインポートできないことがコンパイラで保証され、境界が明確になります。
  • pkg/:社内・社外問わず再利用したいユーティリティを置く場所です(必須ではありません)。

2‑2. 標準ライブラリだけで動かす最小サーバ

ポイント
- net/httpServeMux だけで動作するため、依存関係が最小。
- 後から Gorilla Mux や chi に置き換えても、インターフェースは同じなので移行が容易です。


3. ルーティング・テンプレート・データ永続化

3‑1. ルーティングライブラリの選択肢

ライブラリ 特徴
Gorilla Mux 正規表現や変数抽出が得意。既存プロジェクトとの互換性が高い。
chi ミドルウェアチェーンが軽量で高速。マイクロサービスに向く。

どちらも go get だけで最新バージョンを取得できます(バージョンは go.mod が管理)。

実装サンプル(Gorilla Mux)

実装サンプル(chi)


3‑2. HTML テンプレートと埋め込み静的ファイル

Go 1.16 以降は embed.FS により、ビルド時にテンプレートや CSS/JS をバイナリへ組み込めます。

web/templates/list.html


3‑3. データ永続化(SQLite と PostgreSQL)

ライブラリのインストール(バージョン指定なし)

コード例

ポイント
- database/sqlpgx はインターフェースが似通っているので、ハンドラ側は「DB インタフェース」だけを依存させれば、SQLite ↔ PostgreSQL の切り替えが容易です。


4. テスト・並行処理・ビルド

4‑1. ハンドラのテーブル駆動テスト(httptest

CI では go test ./... がすべてのテストを走らせます。

4‑2. 背景ジョブ(goroutine + channel)

cmd/main.go で起動例:

参考:本実装は Sophiate の「非エンジニアでも始められる Go Web 開発」記事([Sophiate 記事参照])でも同様のパターンが紹介されています。

4‑3. クロスコンパイル(cgo 非使用前提)

4‑4. マルチステージ Dockerfile(軽量ランタイム)

ビルド手順:


5. CI/CD と本番デプロイ

5‑1. GitHub リポジトリの作成とブランチ戦略

  • main:本番デプロイ対象の安定ブランチ
  • feature/*:新機能や改修はプルリクエスト経由で main にマージ

5‑2. GitHub Actions ワークフロー(.github/workflows/ci.yml

5‑3. 本番デプロイ例(Docker Compose)

docker compose up -d とすれば、数秒で本番環境が立ち上がります。
Kubernetes 環境へ展開する場合は DeploymentService のマニフェストを追加すれば同様に動作します。


まとめ

フェーズ 主なポイント
環境構築 バイナリ/パッケージマネージャで Go をインストール → go.mod 初期化
プロジェクトレイアウト cmd / internal / pkg の三層構成が保守性とテスト容易性を向上
サーバ実装 標準 net/http + ServeMux(必要に応じて Gorilla Mux / chi)
テンプレート & 静的資産 html/templateembed.FS により単一バイナリで配布可能
永続化 SQLite(開発向け)と PostgreSQL(本番向け)を共通インタフェースで扱う
テスト httptest でハンドラ単体テスト、テーブル駆動で網羅的に検証
並行処理 goroutine + channel によるバックグラウンドジョブ実装例
ビルド & デプロイ クロスコンパイルとマルチステージ Dockerfile で軽量イメージ化
CI/CD GitHub Actions がテスト・ビルド・Docker イメージ公開を自動化

この一連の手順を実践すれば、Go 言語だけでフロントエンドからデータ永続化、CI/CD まで完結する Web アプリケーション を構築できます。ぜひローカル環境で試しながら、自分のプロジェクトに合わせてカスタマイズしてみてください。


本稿は執筆時点の最新情報をもとに作成していますが、依存ライブラリやツールのバージョンは go.mod / go.sum が唯一の真実です。定期的に go get -u ./... で更新し、CI のテストが通ることを確認してください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


-Go言語