Go言語の基礎を学ぶためのシンプルなURL短縮サービスです。 このプロジェクトは学習目的のため、ローカル環境での利用を想定しています。
Goは、Googleが開発したプログラミング言語です。他の言語と比べて、以下のような特徴があります:
-
シンプルで学びやすい
- 文法がシンプルで覚えやすい(他の言語と比べて特別な記号や複雑な書き方が少ない)
- 標準ライブラリが充実している(よく使う機能が最初から使える)
- コードの書き方が統一されている(チームで開発する際に便利)
-
高速な実行速度
- コンパイル言語(プログラムを実行する前に機械語に変換するため、実行が速い)
- 並行処理が簡単(複数の処理を同時に実行できる)
- メモリ管理が自動的(メモリの解放を手動で行う必要がない)
-
Web開発に適している
- 標準でHTTPサーバー機能を提供(Webアプリを作るのに必要な機能が最初から使える)
- テンプレート機能が組み込み済み(HTMLファイルを簡単に扱える)
- JSONの処理が簡単(データのやり取りに便利)
-
開発効率が高い
- コンパイルが高速(プログラムの実行準備が速い)
- 依存関係の管理が簡単(必要なライブラリの管理が楽)
- クロスコンパイルが容易(Windows、Mac、Linuxなど、いろいろな環境で動かせる)
go_shortURL/
├── main.go # メインのプログラム
├── go.mod # Goモジュールの定義ファイル
└── readme.md # このファイル
- Go言語の標準ライブラリのみを使用
net/http: Webサーバーの実装html/template: HTMLテンプレートの処理crypto/rand: 安全な乱数生成encoding/base64: 短縮URLの生成
go.modファイルでプロジェクトを管理- 外部ライブラリは使用せず、標準ライブラリのみを使用
- プロジェクトの依存関係やGoのバージョンを管理
-
URLの短縮
- 長いURLを入力すると、6文字の短縮URLを生成
- 例:
https://example.com/very/long/url→http://localhost:8080/abc123
-
リダイレクト
- 短縮URLにアクセスすると、元のURLに自動的に移動
開発時の実行(コードを修正しながらテストする場合):
go run main.go本番用の実行ファイルの作成と実行:
# 実行ファイルの作成
go build
# 実行ファイルの実行
./go_shortURLgo buildコマンドで作成される実行ファイル- コンパイル済みのため、起動が速い
- Go環境がなくても実行可能
- OS依存のため、実行ファイル自体はGitHubにアップロードしない
- サーバー起動後、ブラウザで
http://localhost:8080を開く - URLを入力して短縮URLを取得
- 生成された短縮URLをクリックして動作確認
- サーバーを再起動すると、保存したURLの情報は消えてしまいます(メモリ内保存のため)
- 同じURLを複数回短縮すると、毎回新しい短縮URLが生成されます
- このサービスはローカル環境での利用を想定しています
- 本番環境での利用には、データの永続化やセキュリティ対策が必要です
- サーバーの停止は
Ctrl + Cで行います