アーカイブ

🔍
カテゴリ
難易度
2026 年 11 月

Mac では動いたイメージなのに、なぜ本番サーバーでは exec format error で起動しないのか?

Apple Silicon で普通に build したイメージは arm64 専用になり、amd64 サーバーではカーネルが機械語を拒否して exec format error になる。イメージインデックスの仕組み、Mac で amd64 が動く binfmt_misc/QEMU の裏側、--platform と BUILDPLATFORM/TARGETARCH での対策を解説。
Container🌿 基礎⏱ 約 7 分2026-11-03

同じサーバーに 200 バイト送るだけなのに、なぜ 2 回に分けて write すると 40ms 遅れるのか?

Nagle アルゴリズムと delayed ACK が互いを待ち合うと、2 回に分けた小さな write が Linux では約 40ms 止まる。仕組みと TCP_NODELAY・write の集約による対策、言語ごとの既定値を解説する。
Network🌿 基礎⏱ 約 7 分2026-11-02

終了時刻から開始時刻を引いただけなのに、なぜ処理時間がマイナスになるのか?

OS には現在時刻を表す壁時計(CLOCK_REALTIME)と経過時間専用のモノトニッククロックがあり、壁時計は NTP のステップ補正や手動設定で後ろへ飛ぶため時刻の引き算は負になりうる。Cloudflare のうるう秒障害、Go 1.9 の透過的モノトニック時刻と UTC()・JSON 化で剥がれる落とし穴、Ruby/JS/Python の使い分けを解説。
Lang🌿 基礎⏱ 約 7 分2026-11-01
2026 年 10 月

同じ長いプロンプトを送っただけなのに、なぜ 2 回目の LLM 呼び出しは速く安くなるのか?

LLM は因果マスクのおかげで過去トークンの Key と Value を保存して使い回せる(KV キャッシュ)。プロンプトキャッシュはそれをリクエストをまたいで保存し、先頭から完全一致した範囲だけを再利用する。Anthropic API の cache_control と寿命・料金倍率、動的な値を後ろに置く設計を解説。
AI🌿 基礎⏱ 約 7 分2026-10-31

http:// と打ったのに、なぜブラウザはサーバーに聞く前に https:// へ書き換えるのか?

HTTP→HTTPS のリダイレクトは平文の初回リクエストを SSL ストリッピングで横取りされうる。HSTS はブラウザに HTTPS 専用と記憶させ送信前に URL を書き換えさせる。max-age の解除の難しさ、Rails force_ssl 既定の includeSubDomains、プリロードリストの取り消しの重さを解説。
Security🌿 基礎⏱ 約 7 分2026-10-30

Puma のワーカーを 4 つ fork したのに、なぜメモリは 4 倍にならないのか?

fork は親のメモリを即座に複製せず、物理ページを親子で共有して書き込まれたページだけをその時点でコピーする(Copy-on-Write)。RSS は共有ページを重複計上するため PSS と Private_Dirty で測る理由、Ruby 2.0 の Bitmap Marking GC と、それでも子の GC で共有が剥がれる現象、Puma の preload_app! と phased restart の非互換、fork 前の Process.warmup、Python の参照カウントと gc.freeze() も扱う。
Lang🌿 基礎⏱ 約 7 分2026-10-29

ping も TCP 接続も通るのに、なぜ大きなレスポンスだけが返ってこないのか?

経路上のトンネルで MTU が縮むと、DF 付きの大きなパケットは ICMP で「大きすぎる」と知らされて送り直される。その ICMP をファイアウォールが捨てると、ping や SYN は通るのに大きな応答だけが消える仕組みと防ぎ方を解説する。
Network🌿 基礎⏱ 約 7 分2026-10-28

nil を返したはずなのに、なぜ Go の err != nil が true になるのか?

Go の interface 値は「動的な型」と「動的な値」の 2 欄を持ち、nil の具体型ポインタを error として返すと型の欄が埋まって err != nil になる仕組みと、fmt が <nil> と表示する理由、防ぎ方を解説する。
Lang🌿 基礎⏱ 約 7 分2026-10-27

メモリリークはしていないのに、なぜ Rails のプロセスは日に日に太っていくのか?

free したメモリは、ヒープの上端に使用中の領域が残る限り OS に返らない。glibc の malloc はスレッド間のロック競合を避けるためにアリーナを 64 ビットでは既定でコア数の 8 倍まで増やすので、空きが分散して断片化し、マルチスレッドで I/O をする Puma や Sidekiq の RSS が高止まりする。MALLOC_ARENA_MAX=2、jemalloc と LD_PRELOAD、Rails の Dockerfile の設定、GVL との関係も扱う。
Lang🌿 基礎⏱ 約 7 分2026-10-26

同じ UUID の主キーなのに、なぜ v4 だとテーブルが育つほど INSERT が重くなるのか?

B+Tree はキー順に並ぶため、乱数の UUIDv4 は挿入先がインデックス全体に散りページ分割とメモリ圧迫を招く。先頭 48 ビットが時刻の UUIDv7 は右端に入り連番に近い書き込みになる。
DB🌿 基礎⏱ 約 7 分2026-10-25

スレッドは数本しかないのに、なぜ nginx は何千もの接続を同時に捌けるのか?

1 接続 1 スレッドの方式は何もしていない接続のためにもスレッドを抱え続けて頭打ちになる。epoll(macOS では kqueue)は監視する fd をカーネルに一度登録し、準備完了の fd だけを返すので、1 本のイベントループが大量の接続を順に捌ける。select の FD_SETSIZE 制限、レベル/エッジトリガ、Go の netpoller、nginx の worker_connections と worker_rlimit_nofile も扱う。
Infra🌿 基礎⏱ 約 7 分2026-10-24

api.example.com を 1 回引いただけなのに、なぜ Pod は DNS に 4 回も問い合わせるのか?

Kubernetes の kubelet は Pod の resolv.conf に search ドメイン 3 つと ndots:5 を書くため、点が 5 個未満の外部ドメインは search リストを順に試して NXDOMAIN を受けてから本来の名前で引かれる。A/AAAA の並行問い合わせ、UDP 落ち時の 5 秒タイムアウト、末尾ドット FQDN、dnsConfig での ndots 調整とその副作用、NodeLocal DNSCache を扱う。
Container🌿 基礎⏱ 約 7 分2026-10-23

同じ二重ループなのに、なぜ i と j を入れ替えるだけで何倍も遅くなるのか?

CPU はメモリを 1 バイトずつではなく 64 バイト前後のキャッシュライン単位で運ぶ。行優先の配列を列ごとに回すと運んだ塊の大半を捨てるうえプリフェッチも効かず、別コアが同じラインの別変数に書くとフォールスシェアリングで遅くなる。Drepper の測定値、MESI、Go の CacheLinePad、Apple Silicon の 128 バイトも扱う。
Perf🌿 基礎⏱ 約 7 分2026-10-22

たった 1 行の正規表現なのに、なぜ CPU が 100% に張り付くのか?

JavaScript・Ruby・Python の正規表現エンジンは失敗すると分岐点に戻って別の道を試すバックトラッキング方式で、(a+)+ のような曖昧なパターンはマッチしない入力に対して区切り方を全通り試すため 1 文字ごとに時間が倍になる。Cloudflare の障害事例、Go/RE2 の線形時間保証と後方参照の放棄、書き換え・アトミックグループ・Regexp.timeout による対策も扱う。
Lang🌿 基礎⏱ 約 7 分2026-10-21

同じファイルを 2 人で編集したのに、なぜ git はほとんど自動でマージできるのか?

git のマージは 2 つのブランチを比べるのではなく、共通祖先(マージベース)を加えた 3 版を比べて「どちらが変えたか」を判定する。片側だけの変更は自動で採用し、両側が同じ領域(隣接行を含む)を変えた所だけがコンフリクトになる。diff3/zdiff3 の読み方、インデックスのステージ、rerere、意味上の衝突も扱う。
Dev🌿 基礎⏱ 約 7 分2026-10-20

Prometheus の p99 はどこから出てくるのか? 生の数字は増え続けるカウンタだけなのに

アプリが公開するのは起動からの累計カウンタだけで、秒間の値は rate() がリセット補正と外挿を加えて計算する。histogram は「何秒以下が何件」の累積バケットで、p99 は histogram_quantile() がバケット内を一様とみなした補間で推定する。集計順と summary との違いも扱う。
Obs🌿 基礎⏱ 約 8 分2026-10-19

同じイメージからコンテナを 10 個起動したのに、なぜディスクは 10 倍にならないのか?

コンテナは共有の読み取り専用イメージレイヤーに薄い書き込み層を OverlayFS で重ねるだけなのでディスクが増えない。初回書き込みはファイル丸ごとの copy-up、削除は whiteout になるため、別レイヤーで消してもイメージは縮まない。ボリュームと ephemeral-storage も扱う。
Container🌿 基礎⏱ 約 7 分2026-10-18

回線は 1Gbps あるのに、なぜ新しい接続の最初のダウンロードは遅いのか?

TCP は輻輳ウィンドウを約 14.6KB から往復ごとに倍へ増やすスロースタートを行うため、短い転送の所要時間は回線の太さではなく RTT × 往復回数で決まる。CUBIC と BBR の違い、アイドル後のリセットと initcwnd も扱う。
Network🌿 基礎⏱ 約 8 分2026-10-17

同じ「DB に書く」なのに、なぜ Cassandra や RocksDB は書き込みがあれほど速いのか?

B+Tree がページをその場で書き換えるのに対し、LSM-tree は書き込みを memtable に溜めて不変の SSTable として追記する。読み取り時の複数ファイル探索、tombstone による削除、compaction 戦略と書き込み増幅のトレードオフも解説する。
DB🌿 基礎⏱ 約 7 分2026-10-16

メモリ確保は成功したのに、なぜプロセスは後から OOM killer に殺されるのか?

malloc が成功しても物理メモリは書き込み時まで割り当てられない。Linux のオーバーコミット下では不足が後から表面化し、OOM killer がスコア最大のプロセスを SIGKILL する。oom_score_adj と Kubernetes の QoS との関係も解説する。
Infra🌿 基礎⏱ 約 7 分2026-10-15

CPU は半分も使っていないのに、なぜ load average は 20 もあるのか?

load average は CPU 使用率ではなく、実行中・実行待ちのタスク数を時間でならした値だ。Linux はディスク I/O などの D 状態のタスクも数えるため CPU が空いていても跳ね上がる。1・5・15 分値は指数減衰で、内訳は vmstat や PSI で切り分ける。
Perf🌿 基礎⏱ 約 7 分2026-10-14

temperature を 0 にしたのに、なぜ LLM の答えは毎回同じにならないのか?

LLM は 1 トークンごとに確率の表を作って候補を選び、temperature・top_k・top_p はその選び方を変える。温度 0 で乱数は消えるのに出力が揺れるのは、同時処理されるリクエスト数で GPU の足し算の順序が変わりロジット自体が変わるからだ。
AI🌿 基礎⏱ 約 7 分2026-10-13

created_at は正しく保存したはずなのに、なぜ画面の時刻が 9 時間ずれるのか?

時刻には世界で 1 つに決まる「瞬間」と場所ごとの「壁時計時刻」がある。PostgreSQL の timestamptz と timestamp の違い、Rails の列型と SQL 直書きで 9 時間ずれる仕組み、JS の Date 文字列解釈で 1 日ずれる理由と対策まで。
DB🌿 基礎⏱ 約 7 分2026-10-12

見た目は 1 文字なのに、なぜ JS は 8、Go は 18、Ruby は 5 と数えるのか?

文字には符号位置・UTF-8/UTF-16 の符号化・書記素クラスタの 3 層があり、JS・Go・Ruby はそれぞれ違う層を数えている。UTF-8 の可変長設計、サロゲートペア、MySQL の utf8mb3 で絵文字が入らない理由まで。
Lang🌿 基礎⏱ 約 7 分2026-10-11

0.1 と 0.2 を足しただけなのに、なぜ 0.3 にならないのか?

0.1 は二進数で割り切れず近似値で保存されるため、0.1+0.2 は 0.3 の近似とは別の値に着地する。IEEE 754 倍精度の目盛りの仕組みと、金額・巨大 ID を正確に扱う型の選び方を解説。
Lang🌿 基礎⏱ 約 7 分2026-10-10

docker stop を叩いただけなのに、なぜコンテナは 10 秒も止まらないのか?

docker stopはPID 1にSIGTERMを送り既定10秒後にSIGKILLする。LinuxがPID 1にはハンドラ登録済みのシグナルしか届けないため、shell形式のCMDやハンドラ無しのアプリでは無視される仕組みと、exec形式・tini(--init)による対策を解説。
Container🌿 基礎⏱ 約 7 分2026-10-09

COMMIT が返った瞬間、データはまだメモリにしかないのに、なぜ停電しても消えないのか?

PostgreSQLがCOMMIT時にテーブル本体ではなくWAL(先行書き込みログ)だけをディスクに確定させて成功を返す仕組みと、チェックポイントによる書き戻し・クラッシュ後のREDO、synchronous_commit=offとfsync=offの違いを解説。
DB🌿 基礎⏱ 約 7 分2026-10-08

空きメモリはほぼゼロなのに、なぜ Linux サーバーは平気で動き続けるのか?

Linuxが空きメモリをページキャッシュに使うためfree列は小さくて当然であり、使えるメモリはavailable列で見るべき理由と、コンテナのcgroupがページキャッシュも使用量に数える仕組み、kubeletのワーキングセットとの関係を解説。
Infra🌿 基礎⏱ 約 7 分2026-10-07

接続はちゃんと閉じたのに、なぜ TIME_WAIT が溜まって新しい接続が張れなくなるのか?

先に接続を閉じた側がTIME_WAITで4つ組を60秒保持する理由と、同じ宛先への新規接続の繰り返しでエフェメラルポートが尽きる仕組み、keep-aliveとコネクションプールによる対策を解説。
Network🌿 基礎⏱ 約 7 分2026-10-06

ファイルなんて開いていないのに、なぜ「Too many open files」でサーバーが落ちるのか?

ファイルを扱わないAPIサーバーでも、TCPソケットがファイルディスクリプタを消費してプロセスごとの上限に達すると「Too many open files」で新規接続を受け付けられなくなる。上限が1024に据え置かれる理由と、上げ方・fd漏れの見分け方を解説。
Infra🌿 基礎⏱ 約 7 分2026-10-05

正しい UPDATE を書いただけなのに、なぜ DB はトランザクションを片方だけ殺すのか?

2つのトランザクションが互いのロックを待ち合うデッドロックを、DBが待ちグラフで検出して片方を中止する仕組みと、ロック順序の統一・再実行による対策。
DB🌿 基礎⏱ 約 7 分2026-10-04

etcd は過半数を割ると書き込みが止まるのに、なぜ DynamoDB は止まらないのか?

CAP定理が強制するのはネットワーク分断時だけの一貫性か可用性かの二択で、etcdはRaftのクォーラムで少数派の書き込みを止めCPを選び、DynamoDB/Cassandraは分断時も書き込みを受け付けAPを選ぶ。PACELCによる平常時のレイテンシとの別トレードオフも解説。
Arch🌳 応用⏱ 約 8 分2026-10-03

Pod は使い捨てなのに、DB のデータはなぜ消えないのか?

Podのファイルシステムは既定でPodと一緒に消える一時領域だが、PersistentVolume/PersistentVolumeClaimで初めてPodのライフサイクルから切り離せる。StorageClassによる動的プロビジョニング、reclaimPolicyのDelete/Retainの非対称性、StatefulSetがPVCを自動削除しない設計を解説。
Container🌿 基礎⏱ 約 8 分2026-10-02

同じ API 呼び出しなのに、なぜ gRPC は REST よりずっと速いと言われるのか?

gRPCが標準で使うprotobufはフィールド名を送らずフィールド番号だけを送るバイナリ形式で、.protoの共有なしにはデコードできない。HTTP/2上でのmultiplexingとトレーラーによるステータス伝達、4種類のストリーミングRPC、フィールド番号の不変性とdeadlineの既定動作を解説。
Network🌿 基礎⏱ 約 7 分2026-10-01
2026 年 9 月

1つのDBならロールバックで済んだはずなのに、複数サービスをまたぐ更新はなぜそう簡単に戻せないのか?

単一DBのコミットは1本のログで守られるが、サービスをまたぐと使えない。2PCはprepareで合意を取るがコーディネータ障害でロックを保持し続けるブロッキング問題があり、Sagaは確定を待たず進めて失敗時は補償トランザクションで打ち消す代わりに分離性を失う。
Arch🌿 基礎⏱ 約 7 分2026-09-30

サーバーはまだ書き終えていないのに、なぜ ChatGPT の返信は一文字ずつ流れてくるのか?

HTTP/1.1 の Transfer-Encoding: chunked は長さ不明のまま小分け送信する仕組みだが、HTTP/2 はこのヘッダーを禁止し DATA フレームで同じことをネイティブに行う。LLM API はその上に SSE で意味のある区切りを重ね、プロキシのバッファリングが効果を打ち消す落とし穴を解説。
Network🌿 基礎⏱ 約 7 分2026-09-29

HTTP は 1 往復で終わるはずなのに、なぜ WebSocket は繋がりっぱなしでいられるのか?

WebSocketは通常のHTTPリクエストとしてUpgradeヘッダーを送り、101 Switching Protocolsで同じTCP接続をそのまま双方向通信に切り替える。フレームとマスキングの仕組み、ロードバランサのアイドルタイムアウトによる切断、複数台構成での接続共有問題を解説。
Network🌿 基礎⏱ 約 7 分2026-09-28

package.json だけで固定したはずなのに、なぜ他人の環境では違うバージョンが入るのか?

package.jsonのキャレット/チルダ範囲は特定バージョンを固定せず、実際に選ばれたバージョンはpackage-lock.jsonが依存解決の結果として記録する。lockfileをコミットする理由、npm installとnpm ciの違い、Go(go.sum)/Bundler(Gemfile.lock)での同様の設計を解説。
Dev🌿 基礎⏱ 約 7 分2026-09-27

LLM は文章しか生成できないはずなのに、なぜ Claude Code は実際にコマンドを実行できるのか?

LLMは関数を直接実行できず、input_schema(JSON Schema)に沿ったtool_useブロックを生成して意思表示するだけで、実行は呼び出し元アプリの仕事。制約付きデコーディングによるJSON構造の保証と、tool_use→実行→tool_resultの往復ループを解説。
AI🌿 基礎⏱ 約 7 分2026-09-26

サーバーがすでに HTML を作ったのに、なぜブラウザはもう一度同じコンポーネントを実行するのか?

SSRはコンポーネントを実行して構造だけのHTML文字列を作るだけでイベントハンドラは含まれない。ハイドレーションはブラウザで同じコンポーネントを実行し出力を既存DOMと照合してハンドラだけを取り付ける処理で、出力が食い違うとその箇所以下が丸ごと作り直される仕組みを解説。
Frontend🌿 基礎⏱ 約 7 分2026-09-25

同じ ALTER TABLE のはずなのに、なぜ一瞬で終わる時と本番を止める時があるのか?

ALTER TABLEはPostgreSQLで最も強いACCESS EXCLUSIVEロックを取ることが多く単純なSELECTとも共存できない。列追加はPostgreSQL 11以降のfast defaultで一瞬だが、既存列へのNOT NULL付与は全行スキャンを伴うため、NOT VALID→VALIDATE CONSTRAINT→SET NOT NULLの3段階に分けて軽いロックへ逃がす手法を解説。
DB🌿 基礎⏱ 約 7 分2026-09-24

画像の URL を1つ受け取っただけなのに、なぜそれがクラウドの認証情報を盗む入口になるのか?

SSRFはユーザー指定のURLをサーバーに取得させ、外部からは届かない内部ネットワークやクラウドのメタデータサービスに到達する攻撃。ブロックリストがDNSリバインディングやリダイレクトで破られる理由と、IMDSv2のPUT+トークン方式・既定ホップリミット1による防御を解説。
Security🌿 基礎⏱ 約 7 分2026-09-23

setState しただけなのに、なぜ React は新しいツリーをまるごと作り直すのか?

Reactはstate変更のたびに軽量なJSオブジェクトである仮想DOMツリーを丸ごと生成し、前回ツリーとdiffしてから差分だけを実DOMへ適用する。要素の同一性が「ツリー内の位置」で決まるためkeyが必須になる理由と、FiberによるスケジューリングやReact18のautomatic batchingを解説。
Frontend🌿 基礎⏱ 約 7 分2026-09-22

レスポンスは 200 のはずなのに、なぜ通信量が 0 バイトになるのか?

HTTPキャッシュは鮮度(サーバーに聞かずに使える期間)と検証(聞いてから使う判断)の2層構造で、no-cacheは保存禁止ではなく毎回検証を強制する指示。ETag/If-None-Matchの検証が一致すると304 Not Modifiedで本文送信を省略する仕組みを解説。
Network🌿 基礎⏱ 約 6 分2026-09-21

負荷が落ち着いたのに、なぜ HPA はしばらく Pod を減らしてくれないのか?

HPAは既定15秒間隔の制御ループでdesiredReplicas=ceil(現在数×実測/目標)を計算するだけの仕組み。既定10%のトレランスでフラッピングを防ぎ、scaleUpは0秒・scaleDownは既定300秒のstabilizationWindowSecondsという非対称設計で急な縮小を避ける理由を解説。
Container🌿 基礎⏱ 約 7 分2026-09-20

Kafka のコンシューマーを増やしたのに、なぜ処理速度は頭打ちになるのか?

Kafkaのパーティションはグループ内で同時に1コンシューマーにしか割り当てられず並列度の天井になる。パーティション数を減らせない設計、Eager/Cooperativeリバランスの違い、オートコミットの既定5秒間隔が重複処理を生む仕組みを解説。
Arch🌳 応用⏱ 約 8 分2026-09-19

EC2 はパスワードを一度も入力していないのに、なぜ S3 にアクセスできるのか?

IAMロールは信頼ポリシー(誰が借りるか)と許可ポリシー(何ができるか)の二階建てで、STSのAssumeRoleが既定1時間・最大12時間の一時クレデンシャルを発行する仕組み。EC2でのIMDS経由の自動更新と、ロール剥奪が最大1時間遅延する挙動を解説。
Infra🌿 基礎⏱ 約 7 分2026-09-18

同じ「テーブルを割る」なのに、パーティショニングとシャーディングは何が違うのか?

パーティショニングは1台のDB内でのテーブル分割、シャーディングは複数サーバーへの分散という違いを解説。partition pruningの仕組み、shard keyを跨ぐJOIN・トランザクションの壁、リシャーディングの難しさを扱う。
DB🌳 応用⏱ 約 7 分2026-09-17

なぜ Web サーバーは「パブリックサブネット」に置き、DB は「プライベートサブネット」に置くのか?

パブリック/プライベートサブネットの違いはルートテーブルに0.0.0.0/0→インターネットゲートウェイの経路があるかだけで決まる。NATゲートウェイのアドレス変換の仕組みと、サブネットがAZをまたげない制約によるAZ分散設計を解説。
Infra🌿 基礎⏱ 約 7 分2026-09-16

Pod は Running なのに、なぜ Service からの応答が来たり来なかったりするのか?

livenessProbe失敗はkubeletによるコンテナ再起動、readinessProbe失敗はEndpointSliceからの除外(トラフィック遮断のみ)という違いと、startupProbeがliveness誤爆を防ぐ仕組み、minReadySecondsとローリングアップデートの関係を解説。
Container🌿 基礎⏱ 約 7 分2026-09-15

フロントとバックエンドのログはバラバラに出るのに、なぜ1つのリクエストとして追跡できるのか?

分散トレーシングは1つのリクエストが複数サービスをまたぐ間の処理単位spanをtraceとしてつなげる仕組み。W3C Trace Contextのtraceparentヘッダーによるtrace-id/parent-id伝播の流れと、head-based/tail-basedサンプリングのトレードオフを解説。
Obs🌿 基礎⏱ 約 7 分2026-09-14

kubectl apply を叩いてから、Pod が起動するまでに何が起きているのか?

kubectl applyはkube-apiserver経由でetcdに望ましい状態を書き込むだけで、Pod作成はcontroller-manager、ノード選定はkube-scheduler、実際の起動はkubeletが担う。watchによるコントロールループの仕組みを解説。
Container🌳 応用⏱ 約 7 分2026-09-13

ConfigMap を書き換えたのに、なぜ Pod の環境変数は変わらないのか?

configMapKeyRefで注入した環境変数はPod起動時に一度だけ解決され更新は反映されず、ボリュームマウントも即座ではなくsubPathは対象外。SecretはBase64エンコードにすぎず既定では暗号化されないことも解説。
Container🌿 基礎⏱ 約 7 分2026-09-12

サーバーを1台足しただけなのに、なぜキャッシュのヒット率が丸ごと落ちるのか?

hash(key)%台数では台数が1つ変わるだけで大半のキーの担当が入れ替わるが、コンシステントハッシングはリング上でキーとサーバーを同じ空間に置き移動するキーを一部に抑える。仮想ノードによる偏りの解消と、Redis Clusterのハッシュスロット方式との違いを解説。
Arch🌿 基礎⏱ 約 7 分2026-09-11

一覧画面をちょっと表示しただけなのに、なぜ DB へのクエリが何十回も飛ぶのか?

関連レコードをループの中で参照すると1件ごとに別のSELECTが飛ぶN+1問題は、Active Recordの遅延ロード設計に起因する。includes/preload/eager_loadの挙動差、strict_loadingによる検知、GraphQLのDataLoaderバッチ化まで解説。
Perf🌿 基礎⏱ 約 7 分2026-09-10

UPDATE しただけなのに、なぜ Postgres のテーブルはどんどん太っていくのか?

PostgreSQLのUPDATE/DELETEは行を上書きせず新しい行バージョンを追加しxmaxで旧版を無効化するだけのMVCC設計。dead tupleはautovacuumが回収するが通常のVACUUMはOSにディスクを返さず、bloatや放置時のトランザクションID周回リスクも解説。
DB🌿 基礎⏱ 約 7 分2026-09-08

Rails のスレッドを増やしても速くならないのに、なぜ Go の goroutine は速くなるのか?

Ruby(MRI)のGVLはCPUバウンドな処理を1スレッドずつしか進めずI/O待ち中だけ解放される一方、GoのgoroutineはランタイムのM:Nスケジューラが少数のOSスレッドに多数を割り当てるためCPUバウンドでも複数コアを使い切れる違いを解説。
Lang🌿 基礎⏱ 約 8 分2026-09-07

GitHub Actions の jobs は、なぜ書いた順ではなく一斉に走り出すのか?

jobs は既定で並列実行され順序を決めるのは needs のみ。各 job は毎回使い捨ての VM で動くため前段の成果物は自動で引き継がれず、actions/cache の key/restore-keys の一致順序とブランチスコープの制約を解説。
Dev🌿 基礎⏱ 約 7 分2026-09-06

HTTP はステートレスなのに、なぜブラウザはログイン状態を覚えていられるのか?

HTTPはステートレスでサーバーは前回のリクエストを覚えていないが、Set-Cookie/Cookieヘッダーの往復がログイン状態を運ぶ。HttpOnly/Secure/SameSiteが既定でオフな理由と、RailsのCookieStoreがセッションデータ自体を暗号化してCookieに格納する仕組みを解説。
Network🌿 基礎⏱ 約 7 分2026-09-05

なぜ文字列結合で組み立てたSQLは壊れるのに、プレースホルダなら壊れないのか?

SQLインジェクションは文字列結合で入力中の引用符が構文の一部として解釈されて起きる。プレースホルダはPREPAREで構文木を確定しBINDで値を束縛するため入力が構造を変えられない仕組みと、識別子はバインド対象外な点を解説。
Security🌿 基礎⏱ 約 7 分2026-09-04

平均レイテンシが正常なのに、なぜ「たまに遅い」と言われるのか?

平均は分布の中心しか表さず、テールに隠れた遅いリクエストがファンアウト構成では大多数のユーザー体験になる。Little's Law で待ち行列が非線形に膨らむ理由と、p99 を使ったタイムアウト・SLO 設計を解説。
Perf🌿 基礎⏱ 約 7 分2026-09-03

HTTP/2 でストリームをまとめたのに、なぜ HTTP/3 は TCP を手放したのか?

HTTP/2 はアプリ層の HOL ブロッキングは解決したが、1 本の TCP に多重化する限りパケットロス時は無関係なストリームまで足止めされる。QUIC がストリームごとに独立した信頼性配送を実装し、コネクション ID で接続を IP・ポートから切り離した設計を解説。
Network🌳 応用⏱ 約 8 分2026-09-02

Rails は自動でエスケープしているのに、なぜ XSS はなくならないのか?

XSS は攻撃者の JS を被害者の権限でブラウザに実行させる攻撃で、防御の要は HTML 本文・属性・JS 文字列・URL という文脈ごとに異なる出力エスケープと、それが漏れた時の最後の壁となる CSP の script-src 許可リストだ。
Security🌿 基礎⏱ 約 7 分2026-09-01
2026 年 8 月

インデックスを貼ったのに、なぜ EXPLAIN は Seq Scan のままなのか?

プランナーはインデックスの有無ではなく候補プランごとの見積りコストで実行計画を選ぶ。ANALYZEが集める統計情報pg_statsから選択率を推定する仕組みと、統計が古いと見積りが実態とズレる理由を解説。
DB🌿 基礎⏱ 約 8 分2026-08-31

Ingress を apply したのに、なぜ何も起きないのか?

IngressはHost/パスの振り分けルールを宣言するAPIオブジェクトにすぎず、Ingress Controllerが別途動いていないと何も起きない。ServiceがL4止まりな理由、TLS終端後は平文になる挙動、後継Gateway APIへの移行方針を解説。
Container🌿 基礎⏱ 約 8 分2026-08-30

障害が起きたサービスに、なぜリトライを重ねるほどとどめを刺してしまうのか?

過負荷になった依存先へ大量のクライアントが同時にリトライするとリトライ嵐が起き、依存先の回復を妨げる。AWSのjitter付きバックオフとAzureのCircuit Breakerパターンを組み合わせて防ぐ設計を解説。
Arch🌿 基礎⏱ 約 7 分2026-08-29

Rails のフォームに、なぜ見えない authenticity_token が埋め込まれているのか?

CSRFはログイン済みブラウザが自動送信するクッキーを悪用し、別サイトから本人になりすましたリクエストを送らせる攻撃。CORSがレスポンスの読み取り制限にすぎず防げない理由と、RailsのauthenticityToken(synchronizer token pattern)・double submit cookie・SameSite属性の役割分担を解説。
Security🌿 基礎⏱ 約 8 分2026-08-28

「犬」と「猫」は近く、「犬」と「車」は遠いと、コンピュータはどうやって知るのか?

embeddingは文章の意味を固定長の数値ベクトルに変換したもので、コサイン類似度という角度の近さの計算で「意味の近さ」を数値化できる。大規模検索ではHNSWのような近似最近傍探索で候補を絞り込み、RAGの検索ステップの土台になっている仕組みを解説。
AI🌿 基礎⏱ 約 7 分2026-08-27

なぜ「単体テストを厚く、E2E を薄く」と言われるのか?

テストピラミッドは単体テストを多数・高速に、E2Eを少数・低速に配分する考え方。E2Eが遅くflakyになりやすく原因特定も難しい理由と、Google発の70/20/10という目安、崩れた「アイスクリームコーン」状態の危険性を解説。
Dev🌿 基礎⏱ 約 7 分2026-08-26

サーバーは正常に動いているのに、なぜ一部のリクエストだけ timeout になるのか?

TCP接続はSYNキューとAcceptキューの2段の待ち行列を経て確立し、backlogとnet.core.somaxconnで決まる上限を超えると多くの場合RSTも返さず黙って破棄される。CPU/メモリに余裕があっても一部だけtimeoutする現象の仕組みを解説。
Network🌿 基礎⏱ 約 8 分2026-08-25

パスワードのハッシュ、入れるたびに結果が違うのに、なぜログインは検証できるのか?

パスワードは暗号化ではなく一方向ハッシュ関数で保存し、ログイン時は復号せず再ハッシュして比較する。bcrypt/Argon2 が同じパスワードでも毎回違う結果を返しつつ検証できる、ソルトとコスト係数の仕組みを解説。
Security🌿 基礎⏱ 約 8 分2026-08-24

使っていない関数を import しただけなのに、なぜバンドルから消えるのか?

ES Modulesのimport/exportは静的な構文制約を持つためバンドラは実行せず依存グラフを組み立てられるが、CommonJSのrequire()は動的評価のため静的解析ができない。webpackのusedExports→sideEffects→minifyという3段階の仕組みと、sideEffectsの誤設定でアプリが壊れる罠を解説。
Frontend🌿 基礎⏱ 約 7 分2026-08-23

etcd は 1 台落ちても平気なのに、なぜ過半数を割ると書き込みが止まるのか?

Raftは書き込みが過半数(クォーラム)に複製されるまで確定させない。奇数台構成が推奨される理由と、過半数を割ったetcdが読み取りも書き込みも止める仕組みを解説。
Arch🌳 応用⏱ 約 8 分2026-08-22

同じ「アラート」なのに、なぜ叩き起こされる時とチケットで済む時があるのか?

SLIは良いイベント/全イベントの比率、SLOは意図的に100%未満で設定する目標、エラーバジェットはその残高。バーンレートとマルチウィンドウ・マルチバーンレートアラートが緊急招集とチケットを切り分ける仕組みを解説。
Obs🌿 基礎⏱ 約 7 分2026-08-21

`as HTMLInputElement` と書いたのに、なぜ実行時に `null` で落ちるのか?

TypeScriptの型注釈はコンパイル時に消去され、実行時には一切残らない。asが実行時チェックを伴わない申告にすぎない理由と、構造的型付けが名前ではなく形で互換性を判断する設計、外部境界の値を守れない限界を解説。
Lang🌿 基礎⏱ 約 7 分2026-08-20

ClusterIP に ping が通らないのに、なぜ curl は届くのか?

ClusterIPは実在しない仮想IPで、実体は各ノードのkube-proxyが書き込むiptablesのDNATルールにすぎない。EndpointSliceとreadiness probeの関係、TCPは通りICMP(ping)だけが失敗する理由を解説。
Container🌿 基礎⏱ 約 7 分2026-08-19

「1分100リクエストまで」のはずが、なぜ一瞬で200件通ってしまうのか?

固定ウィンドウカウンタはウィンドウ境界をまたぐと定義の最大2倍のリクエストを通してしまう。トークンバケット・リーキーバケット・スライディングウィンドウカウンタの違いと、分散環境でのレースコンディション対策を解説。
Arch🌿 基礎⏱ 約 8 分2026-08-18

HTTP/2 は接続を1本にまとめたのに、なぜ遅くなることがあるのか?

HTTP/1.1はアプリ層のHead-of-Line Blockingをブラウザが複数TCP接続で回避してきたが、HTTP/2はストリーム多重化で1本の接続に集約した。その代償として生まれたTCP層のHead-of-Line BlockingとHTTP/3による解決を解説。
Network🌿 基礎⏱ 約 7 分2026-08-17

ローカルでは一瞬なのに、CI の docker build はなぜ毎回フルビルドになるのか?

COPY/ADDはファイル内容のチェックサム、RUNはコマンド文字列でキャッシュを判定し、一度ミスすると以降の全レイヤーが連鎖的に無効化される。CIランナーは前回ビルドを保持しないため常にフルビルドになる理由とレジストリキャッシュでの対処を解説。
Container🌿 基礎⏱ 約 7 分2026-08-16

書き込み直後に読み取りレプリカへ問い合わせると、なぜ古いデータが返るのか?

DBはWALを先にディスクへ確定させてからデータファイルへ反映し、レプリケーションはこのWALを転送・再生している。ストリーミングレプリケーションは既定で非同期なためレプリケーションラグが生じ、read-your-writesが崩れる理由とsynchronous_commitでの対処を解説。
DB🌿 基礎⏱ 約 7 分2026-08-15

JWT はなぜ、改ざんには気づけるのに失効はできないのか?

JWTのSignatureはbase64urlエンコードにすぎず暗号化ではなく、Payloadは誰でも読める。algをトークン任せにする検証はアルゴリズム混同攻撃を許し、ステートレス検証ゆえにexpまで失効できない理由と短命化+refresh tokenでの対処を解説。
Security🌿 基礎⏱ 約 8 分2026-08-14

同じ API を叩いているのに、なぜ CORS エラーが出たり出なかったりするのか?

CORSはブラウザだけが強制する同一オリジンポリシーの例外許可であり、シンプルリクエストはサーバーで処理済みのままレスポンスだけが隠される。プリフライトのキャッシュとCredentials・ワイルドカードの非互換も解説。
Security🌿 基礎⏱ 約 7 分2026-08-13

「ロールバックして」が一瞬で終わる時と終わらない時があるのはなぜか?

Rolling Updateのロールバックは逆方向のロールアウトで進むのと同じだけ時間がかかるが、Blue-Greenは経路の切り戻し、Canaryは重みを0に戻すだけで済む。DBスキーマ変更はexpand/contractパターンが無いと戻せない理由も解説。
Infra🌿 基礎⏱ 約 8 分2026-08-12

在庫チェックしてから1つ引いただけなのに、なぜ在庫が負になるのか?

PostgreSQLのデフォルトRead Committedは文ごとに新しいスナップショットを取るだけで、読んでから書くまでの割り込みは防がない。Repeatable Readでも防げないwrite skewと、Serializableがリトライ前提になる理由を解説。
DB🌿 基礎⏱ 約 8 分2026-08-11

AWS コンソールでポチッと直しただけなのに、なぜ terraform plan が差分まみれになるのか?

Terraformは設定ファイルと実クラウドを直接比べず、stateという記録を介して動く。コンソールでの直接変更が起こすドリフトの検知の仕組みと、S3+DynamoDBからS3単体のuse_lockfileへ進化したステートロックの実装を解説。
Infra🌿 基礎⏱ 約 8 分2026-08-10

CSS は head に、JS は defer で読むべきなのはなぜか? ブラウザの描画パイプラインを覗く

HTMLパーサーはscriptタグでdefer/asyncが無い限り止まり、CSSOMはスタイルシート全体を読むまで完成しないためレンダーブロッキングになる。transform・opacityの変更だけがレイアウトとペイントを飛ばしコンポジットで完結する理由を解説。
Frontend🌿 基礎⏱ 約 7 分2026-08-09

「Google でログイン」を押した瞬間、裏で何がやり取りされているのか?

OAuth 2.0の認可コードフローはURLに乗る認可コードとTLS内でしか動かないアクセストークンを分離し、コード横取りをstateとredirect_uriの検証で防ぐ。PKCEとOpenID ConnectのID Tokenの役割も解説。
Security🌿 基礎⏱ 約 8 分2026-08-08

なぜ GC は世界を止めるのか?「ほとんどのオブジェクトは若くして死ぬ」に賭けた世代別 GC

GCがアプリを一時停止させるのは生死判定中の参照書き換えを防ぐためで、並行化しても区間自体はゼロにならない。世代別GCは「大半のオブジェクトは若くして死ぬ」という経験則に賭け、新しい世代だけを頻繁に軽く掃除する仕組みを解説。
Lang🌿 基礎⏱ 約 8 分2026-08-07

git のコミットとブランチ、実体は何なのか?rebase が「歴史を書き換える」とはどういうことか

gitのオブジェクトは内容から計算したハッシュで住所が決まる内容アドレス型ストレージで、commitはtreeへの参照。branchは41バイトのポインタにすぎず、rebaseは新しいコミットを作って参照を貼り替えているだけと解説。
Dev🌿 基礎⏱ 約 7 分2026-08-06

シングルスレッドの JavaScript は、なぜ非同期 I/O を同時に捌けるのか?

JSのコールスタックは1本で並行に見えるのはI/Oの実体がOSやスレッドプールで進むからだ。マイクロタスクとマクロタスクの優先順位、Node.jsのlibuvがネットワークI/Oとファイル/DNSを別々に処理する仕組みを解説。
Lang🌿 基礎⏱ 約 7 分2026-08-05

Pod を消しただけなのに、なぜ 502 が数件だけ出るのか?

Pod削除は「エンドポイント除去」と「SIGTERM送信」が同時並行で進む設計上の競合状態であり、伝播ラグの間に着弾したリクエストがデプロイ後の数件の502を生む。preStopフックによる時間稼ぎと、それでも防げないケースを解説。
Container🌳 応用⏱ 約 8 分2026-08-04

メトリクス・ログ・トレース、同じ障害を見るのになぜ3つ要るのか?

メトリクスは個々のリクエストを捨てて集計するから安く常時収集できるが「誰が遅いか」は分からない。ログはtrace-idで結びつけて初めてトレースという1本の経路につながる仕組みを解説。
Obs🌿 基礎⏱ 約 7 分2026-08-03

同じ注文が二回処理された。メッセージキューの「重複」はなぜ起こるのか?

SQSやRabbitMQは失うより重複させるat-least-once配信を採用しており、重複はブローカーがack有無しか見ていないために起きる仕様である。冪等性キーによる無害化と、FIFOキューでも消費側の冪等性が必要な理由を解説。
Arch🌿 基礎⏱ 約 8 分2026-08-02

キャッシュの有効期限が切れた瞬間、裏で何が起きているのか?

TTL は新鮮さとオリジン負荷のトレードオフであり、Vary によるキャッシュキー設計を誤ると誤配信が起きる。TTL失効直後の同時アクセスが招くキャッシュスタンピードを、stale-while-revalidateがどう防ぐかを解説。
Arch🌿 基礎⏱ 約 7 分2026-08-01
2026 年 7 月

HTTPS の鍵マークは、いったい何を保証しているのか?

TLS ハンドシェイクは証明書チェーンによる本人確認とECDHEによる使い捨て鍵の合意を行う。TLS 1.3で静的RSA鍵交換が廃止され前方秘匿性が標準になった理由を、1-RTTのメッセージフローとあわせて解説。
Network🌿 基礎⏱ 約 7 分2026-07-31

ブラウザに URL を打ってから、IP に辿り着くまで何が起きているのか?

名前解決はブラウザ・OS・再帰的リゾルバの3段キャッシュをまず確認し、無ければルート→TLD→権威DNSサーバーへの委任の連鎖をたどる。「DNSの浸透」の正体はTTLによる各リゾルバの個別キャッシュであることを解説。
Network🌿 基礎⏱ 約 7 分2026-07-30

コネクションプールが枯渇すると、なぜアプリ全体が固まるのか?

DB 接続の確立コストを省くのがコネクションプールだが、枯渇時はアプリ側プールが待ち行列とタイムアウト例外を起こすのに対し、DB サーバー自体の max_connections 超過は待たせず即座に接続拒否になる。検知にはプールのメトリクス監視が必要。
DB🌿 基礎⏱ 約 7 分2026-07-29

DB のインデックスはなぜ速いのか? B+Tree の中を覗く

B+Tree は 1 ノードに数百キーを詰めて木を横に広く浅く保つことで検索を O(log N) に抑える一方、インデックスが増えるほど書き込みのたびに複数の木を更新し、ページ分割が連鎖するコストを払うことになる。
DB🌿 基礎⏱ 約 7 分2026-07-28

ALB と NLB、同じ「ロードバランサー」なのに何が違うのか?

ALB は L7 で HTTP の中身を読んでルーティングし、NLB は L4 で TCP/UDP の接続だけを見て振り分ける。idle timeout・deregistration delay・cross-zone load balancing のデフォルト値の違いと使い分けの判断基準を解説。
Network🌿 基礎⏱ 約 8 分2026-07-27

AI エージェントに自律実行を任せるとき、権限・証跡・コストはどう設計するのか?

自律実行する LLM エージェントは OAuth スコープで権限を最小化し、破壊的操作の手前にガードレールと監査ログを置く必要がある。プロンプトキャッシュの料金倍率でコストを抑える設計も解説。
AI🌳 応用⏱ 約 8 分2026-07-26

「精度 94% の OCR」を製品機能にするとき、UI は何を設計すべきか?

OCR の「精度」はデータセット平均の指標であり、1 件ごとの信頼度を示す confidence score とは別物。confidence に基づくレビューキュー設計としきい値の考え方、マルチモーダル LLM への移行で変わる前提を解説。
AI🌿 基礎⏱ 約 7 分2026-07-25

freee はなぜ、経理の自動化を一気に AI エージェントまで進めなかったのか?

freee の経理自動化はルールベースの自動登録 → AI-OCR → LLM エージェント(freee-mcp)と裁量を段階的に広げてきた。裁量が広がるほど権限制御・監査ログの設計が必須になる理由を解説。
AI🌿 基礎⏱ 約 8 分2026-07-25

「トークン」「推論」「コンテキストウィンドウ」、LLM の中で結局何が起きているのか?

LLM は文章を BPE でトークン化し、次の 1 トークンの確率を逐次予測する自己回帰生成で文章を作る。Attention の計算量と KV キャッシュのメモリがコンテキストウィンドウに上限がある理由を解説。
AI🌿 基礎⏱ 約 7 分2026-07-25

コンテナはなぜ VM より「軽い」のか? 手放しているものは何か

VM はカーネルごとゲスト OS を積むがコンテナはホストカーネルを共有し名前空間と cgroup で区切るだけ。軽さの理由と、カーネル共有ゆえの隔離の弱さ、Mac の Docker Desktop が裏で VM を使う理由を解説。
Container🌿 基礎⏱ 約 7 分2026-07-25

Deployment の manifest、`replicas` の下に並ぶ設定は何をしているのか?

maxSurge/maxUnavailable のデフォルト 25% がロールアウト中の可用性とキャパシティを両側から縛り、readinessProbe と livenessProbe は失敗時の挙動が別物であることを、実際の YAML 断片で解説。
Container🌿 基礎⏱ 約 8 分2026-07-19

CDN・DNS・Workers・Pages…… Cloudflare は結局何をしているのか?

Cloudflare の土台は権威 DNS とリバースプロキシ。anycast による最寄り拠点への自動振り分け、Workers の V8 isolate モデル、Cloudflare Pages と GitHub Pages の構造的な違いを解説。
Network🌿 基礎⏱ 約 7 分2026-07-18

負荷試験で「もう限界」をどの数字で判断するのか?

スループットだけでは限界は分からない。リトルの法則で同時実行数・スループット・レイテンシがつながっており、p95/p99 が急上昇するノック点と USE メソッドでの飽和リソース特定を解説。
Perf🌿 基礎⏱ 約 7 分2026-07-18

CPU limit を超えると遅くなるだけなのに、メモリ limit だと Pod が落ちるのはなぜか?

CPU limit 超過は CFS スロットリングで待たされるだけだが、メモリ limit 超過は OOM Killer に強制終了される。requests/limits の役割の違いと QoS クラスによる eviction 優先順位を解説。
Container🌿 基礎⏱ 約 7 分2026-07-18

Pod・Deployment・Service、なぜ 3 つも要るのか?

Pod は使い捨ての最小実行単位、Deployment は ReplicaSet 経由で数と更新を管理し、Service は入れ替わる Pod 群を固定 IP の裏に隠す — 3 層に分かれているのは責務が違うからだ。
Container🌿 基礎⏱ 約 7 分2026-07-18
該当する記事がない。検索語を短くするか、フィルタを外してみて。