インフラ
Terraform 基礎 #2 HCL の基本文法 — ブロック、引数、リソースアドレスと変更の 3 つの形
HCL の骨格であるブロックと引数の構造、aws_s3_bucket.hello のようなリソースアドレスの意味と、リソース同士を参照する文法を整理します。plan 出力の記号を読みながら create、update、replace という変更の 3 つの形を区別し、fmt と validate でコードを整える習慣まで扱います。
PostgreSQL 基礎講座 #9 ロール・権限・バックアップ基礎 — 運用の最小規律
基礎講座の締めくくりとして運用の最小規律を固めます。ロール(role)1 つでユーザーとグループを統一した PostgreSQL の権限モデル、アプリケーションに superuser を渡さず最小権限アカウントを作る実務の手順(GRANT とデフォルト権限)、public スキーマの注意点、pg_dump・pg_restore による論理バックアップと復元リハーサルの重要性、そして基礎 9 回の振り返りと実践編の予告まで扱います。
Terraform 基礎 #1 IaC と Terraform — コンソールクリック運用の限界、インストールと初めての apply
コンソールのクリックで作ったインフラが、再現不能、履歴の不在、レビューの不在によって崩れていく過程を整理し、あるべき状態をコードで宣言する IaC がこの問題をどう解決するのかを説明します。CloudFormation、CDK、Pulumi の中で Terraform が占める位置を比較し、インストールから S3 バケットを init、plan、apply で作成して destroy で削除する最初のサイクルまで扱います。
PostgreSQL 基礎講座 #8 ビュー・CTE・ウィンドウ関数 — 複雑なクエリを読みやすくする
大きくなったクエリを構造化する 3 つの道具を固めます。繰り返されるクエリに名前を付けるビューと物理コピーであるマテリアライズドビューの区別、WITH 句(CTE)でクエリを段階ごとに記述する方法、ウィンドウ関数の基本構造(OVER、PARTITION BY)と ROW_NUMBER でグループごとの上位 N 件を取る代表パターン、集計関数とウィンドウ関数の違い(行が減らない)、LAG で前月比を求める例まで扱います。
PostgreSQL 基礎講座 #7 JSONB — スキーマの柔軟さをリレーショナルの中で
PostgreSQL が NoSQL の領域まで担えるようになった立役者、JSONB を固めます。json と jsonb の違い(jsonb が既定値である理由)、値の取り出し演算子(->、->>、#>>)と存在・包含演算子(?、@>)の使い方、JSONB 検索を支える GIN インデックス、更新(jsonb_set)の特性、そして一番重要な「どこまでをカラムにして、どこからを JSONB に入れるか」の設計境界まで扱います。
PostgreSQL 基礎講座 #6 トランザクションと MVCC — 同時実行の基本原理
複数の接続が同じデータを同時に触るとき、PostgreSQL が一貫性を守る仕組みを固めます。BEGIN・COMMIT・ROLLBACK の基本と原子性、MVCC(多版型同時実行制御)の核心である「読み取りは書き込みを妨げない」、UPDATE が実際には新しいバージョンの行を作るという事実と dead tuple の予告、既定の分離レベル Read Committed の意味と罠、Repeatable Read・Serializable に上げる場合まで扱います。
PostgreSQL 基礎講座 #5 EXPLAIN の読み方 — 実行計画でクエリを診断する
クエリが遅い理由を推測ではなく実行計画で確かめる方法を固めます。EXPLAIN と EXPLAIN ANALYZE の違い(後者は実際に実行)、計画ツリーを内側から読む順序、Seq Scan・Index Scan・Index Only Scan・Bitmap Scan の意味、cost と actual time・rows の見積もりと実測の比較、見積もりが大きく外れたときの処方(ANALYZE)、そして BUFFERS で読み取り量を見る習慣まで扱います。
PostgreSQL 基礎講座 #4 インデックス基礎 — いつ効いて、いつ効かないのか
読み取りを速くする基本手段であるインデックスを、PostgreSQL 基準で固めます。B-tree インデックスが検索を変える構造、作ったのに使われない代表的な原因(先頭カラムの不一致、カラムへの関数適用、型の不一致、低い選択度)、書き込み性能とストレージというコスト、そして「遅いクエリの WHERE・JOIN・ORDER BY を見て作る」という実務の順序まで扱います。
PostgreSQL 基礎講座 #3 結合と集計 — 読み取りクエリの実務感覚
読み取りクエリの実務の 8 割を占める結合と集計を固めます。INNER と LEFT 結合の選択基準と、LEFT 結合の結果を WHERE で絞って INNER にしてしまう古典的なミス、GROUP BY と HAVING の役割分担、集計と結合が混ざるときの重複集計の罠、サブクエリと結合の分かれ道、そしてグループごとの最新 1 件を取る PostgreSQL らしい方法(DISTINCT ON)まで扱います。
PostgreSQL 基礎講座 #2 データ型とテーブル設計 — 何として保存するか
PostgreSQL 設計の半分はデータ型の選択です。文字列は text 1 つで足りる理由、お金の計算に numeric が必須の理由、時刻保存の標準である timestamptz と timestamp の罠、主キー戦略(bigint IDENTITY vs UUID、そして uuidv7)、NOT NULL・CHECK・外部キーでデータ整合性を DB 層で守る設計、enum と配列を使う場所まで扱います。
PostgreSQL 基礎講座 #1 PostgreSQL とは — 既定の DB になった理由、インストールと psql の最初の一歩
PostgreSQL が新規プロジェクトの既定データベースになった背景から始めます。標準準拠と豊富なデータ型、拡張エコシステム(pgvector・PostGIS)、寛容なライセンスという選ばれる理由、Docker でローカルに立てる最速のインストール、psql への接続とメタコマンド(\l、\dt、\d)の基本、最初のテーブルを作って入れて読む 1 サイクル、そして講座全体の地図まで扱います。
LLM のハルシネーション(幻覚)— 原因と実務での対策
LLM がもっともらしい嘘を自信満々に生成するハルシネーションを整理します。次トークンの確率予測という動作原理から幻覚が必然的に生まれる理由、事実誤り・出典の捏造・コード API の幻覚といった類型、RAG と引用の強制、ツール利用、構造化出力の検証、評価パイプラインまで実務で幻覚を減らす手段、そして完全にはなくせない前提の上で人間のレビューポイントを設計する運用の視点まで扱います。