GoによるgRPCファーストのマイクロサービス構築:RESTfulゲートウェイ併用アーキテクチャ
開発環境のセットアップ
以下の環境で動作確認済みです。
Windows 10 + Go 1.24
必要なGoツールをインストールします。
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
go install github.c ...
8月20日 22:37 投稿
Go 言語による軽量 SMTP サービス Hectane のセットアップと構成方法
Hectane は、Go 言語で実装された最小限の SMTP メール送信サービスです。外部依存を極力抑え、設定駆動型の動作を前提として設計されています。以下に、インストールから初期構成までの実践的な手順を示します。
ディレクトリ構成の概要
ソースコードの階層は明確に責務を分離しており、保守性と拡張性を重視しています:
hectane/
├── cmd/
│ └── mailer/ ...
8月20日 06:29 投稿
kubectl CLI 架构与命令行交互机制解析
Kubernetes クラスターの運用において、kubectl は最も頻繁に利用される CLI ツールです。アーキテクチャの視点から見ると、kubectl は Kubernetes API Server に対する公式クライアントであり、HTTP/JSON プロトコルを介してサーバーと通信し、クラスター内のリソースオブジェクトを操作する役割を担います。
Cobra による CLI フレームワーク構築
Go 言語で強力な CLI ...
8月20日 03:55 投稿
Go言語でのファイル入出力とJSONシリアライズの実践ガイド
ファイルI/Oとストリームの基本概念
アプリケーション開発において、ファイル操作はデータの永続化や外部連携に不可欠な要素です。Go言語では、ファイルデータを「ストリーム(連続したデータの流れ)」として抽象化して扱います。データがファイル(データソース)からプログラムのメモリへと読み込まれる経路を「入力ストリーム(Reader)」、逆にメモリからファイルへと ...
8月16日 16:21 投稿
Go言語におけるcontextパッケージの活用法
概要
Go言語のcontextパッケージは、複数のゴルーチン間でデータを伝達し、実行を制御するための重要な機能を提供します。本記事では、contextパッケージの基本的な使用方法と実践的な例を紹介します。
背景
次のような状況を考えてみましょう。
あなたはプロジェクトマネージャーです。チームメンバーにタスクを割り当て、進捗を監視しています。
ある日、重要なクライ ...
8月16日 08:22 投稿
Go言語のCircuit Breaker実践ガイド:マイクロサービスの可用性を向上させる10の技法
分散システムにおいて、マイクロサービス間の依存関係は複雑であり、リモート呼び出しの失敗が連鎖的な障害(カスケード障害)を引き起こすリスクがあります。Go言語向けの軽量なフォールトトレランスライブラリである circuitbreaker を活用することで、サービス雪崩を防ぎ、システムの回復力を大幅に向上させることができます。本稿では、Goプロジェクトで circuitbreake ...
8月12日 20:22 投稿
GitHub Webhookを活用した自動デプロイツールの紹介
最近、ブログを書くのが面倒だと話している人がいて、その内容を聞いて自分も以前やっていたことを思い出しました。彼が述べた点から、自分の使っている小道具を整理して共有しようと思いました。
このプロジェクトは、Goで作られた軽量なGitHub Webhookリスナーで、コードをプッシュした後に自動的にデプロイをトリガーします。
Webhookとは何か
Webhookは、GitHubが特定 ...
8月9日 12:12 投稿
Go言語でBasic認証付きHTTPサーバーを実装する
Go言語でHTTPサーバーを構築する際、リクエストにBasic認証を適用したい場合がある。本稿では、モジュール化されたプロジェクト構成のもと、カスタムパッケージを用いてBasic認証を実装する方法を紹介する。
プロジェクトのセットアップ
まず、作業ディレクトリを作成し、Goモジュールを初期化する:
$ mkdir auth_http && cd auth_http
$ go mod init my_auth
...
8月9日 05:25 投稿
immudbの継続的インテグレーション実践: 自動テストとコード品質チェック
CIフロー概要
immudbの継続的インテグレーションはMakefileを基盤としており、コード生成からテスト実行までのライフサイクルを網羅しています。主なCI目標にはコード品質の確保、機能の検証、パフォーマンスのモニタリング、多環境への対応が含まれます。プロジェクトではMakefileで統一されたビルドエントリポイントを定義し、開発者は単純なコマンドで一連のテストフロ ...
8月6日 18:26 投稿
Go製高速WebファジングツールFFUFの実践ガイド
FFUFは、Go言語で実装された軽量かつ高並列なWebファジングツールであり、ディレクトリ探索、パラメータ列挙、エンドポイント発見などのセキュリティテストに広く活用されています。その設計は単純ながらも拡張性が高く、HTTPリクエストの送信効率と結果のフィルタリング精度を両立させています。
FFUFの主な技術的特徴
並列処理最適化:goroutineによる非同期リクエス ...
7月29日 07:12 投稿