<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Tech Learning Daily</title>
  <link href="https://tech-learn.kaion-lab.com/"/>
  <link rel="self" href="https://tech-learn.kaion-lab.com/feed.xml"/>
  <id>https://tech-learn.kaion-lab.com/</id>
  <updated>2026-09-15T09:01:11+09:00</updated>
  <author><name>Tech Learning Daily</name></author>
  <entry>
    <title>Pod は Running なのに、なぜ Service からの応答が来たり来なかったりするのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-15.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-15.html</id>
    <updated>2026-09-15T09:01:11+09:00</updated>
    <summary>livenessProbe失敗はkubeletによるコンテナ再起動、readinessProbe失敗はEndpointSliceからの除外(トラフィック遮断のみ)という違いと、startupProbeがliveness誤爆を防ぐ仕組み、minReadySecondsとの関係を解説。</summary>
  </entry>
  <entry>
    <title>フロントとバックエンドのログはバラバラに出るのに、なぜ1つのリクエストとして追跡できるのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-14.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-14.html</id>
    <updated>2026-09-14T08:15:21+09:00</updated>
    <summary>分散トレーシングは1つのリクエストが複数サービスをまたぐ間の処理単位spanをtraceとしてつなげる仕組み。W3C Trace Contextのtraceparentヘッダーによるtrace-id/parent-id伝播と、head-based/tail-basedサンプリングの違いを解説。</summary>
  </entry>
  <entry>
    <title>kubectl apply を叩いてから、Pod が起動するまでに何が起きているのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-13.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-13.html</id>
    <updated>2026-09-13T08:08:59+09:00</updated>
    <summary>kubectl applyはkube-apiserver経由でetcdに望ましい状態を書き込むだけで、Pod作成はcontroller-manager、ノード選定はkube-scheduler、実際の起動はkubeletが担う。watchによるコントロールループの仕組みを解説。</summary>
  </entry>
  <entry>
    <title>ConfigMap を書き換えたのに、なぜ Pod の環境変数は変わらないのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-12.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-12.html</id>
    <updated>2026-09-12T08:21:45+09:00</updated>
    <summary>configMapKeyRefで注入した環境変数はPod起動時に一度だけ解決され更新は反映されず、ボリュームマウントも即座ではなくsubPathは対象外。SecretはBase64エンコードにすぎず既定では暗号化されないことも解説。</summary>
  </entry>
  <entry>
    <title>サーバーを1台足しただけなのに、なぜキャッシュのヒット率が丸ごと落ちるのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-11.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-11.html</id>
    <updated>2026-09-11T08:19:46+09:00</updated>
    <summary>hash(key)%台数では台数が1つ変わるだけで大半のキーの担当が入れ替わるが、コンシステントハッシングはリング上でキーとサーバーを同じ空間に置き移動するキーを一部に抑える。仮想ノードによる偏りの解消と、Redis Clusterのハッシュスロット方式との違いを解説。</summary>
  </entry>
  <entry>
    <title>一覧画面をちょっと表示しただけなのに、なぜ DB へのクエリが何十回も飛ぶのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-10.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-10.html</id>
    <updated>2026-09-10T08:23:48+09:00</updated>
    <summary>関連レコードをループの中で参照すると1件ごとに別のSELECTが飛ぶN+1問題は、Active Recordの遅延ロード設計に起因する。includes/preload/eager_loadの挙動差、strict_loadingによる検知、GraphQLのDataLoaderバッチ化まで解説。</summary>
  </entry>
  <entry>
    <title>UPDATE しただけなのに、なぜ Postgres のテーブルはどんどん太っていくのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-08.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-08.html</id>
    <updated>2026-09-08T08:38:22+09:00</updated>
    <summary>PostgreSQLのUPDATE/DELETEは行を上書きせず新しい行バージョンを追加し古い版をxmaxで無効化するだけのMVCC設計。dead tupleはautovacuumが回収するが通常のVACUUMはOSにディスクを返さずbloatや放置時のトランザクションID周回リスクも解説。</summary>
  </entry>
  <entry>
    <title>Rails のスレッドを増やしても速くならないのに、なぜ Go の goroutine は速くなるのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-07.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-07.html</id>
    <updated>2026-09-07T08:00:03+09:00</updated>
    <summary>Ruby(MRI)のGVLはCPUバウンドな処理を1スレッドずつしか進めずI/O待ち中だけ解放される一方、Goのgoroutineはランタイムが少数のOSスレッドに多数を割り当てるM:Nスケジューラで動くためCPUバウンドでも複数コアを使い切れる違いを解説。</summary>
  </entry>
  <entry>
    <title>GitHub Actions の jobs は、なぜ書いた順ではなく一斉に走り出すのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-06.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-06.html</id>
    <updated>2026-09-06T08:01:34+09:00</updated>
    <summary>jobsは既定で並列実行され、順序を決めるのはneedsだけ。各jobは毎回使い捨てのVMで動くため前段の成果物は自動で引き継がれず、actions/cacheのkey/restore-keysの一致順序とブランチスコープの制約を解説。</summary>
  </entry>
  <entry>
    <title>HTTP はステートレスなのに、なぜブラウザはログイン状態を覚えていられるのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-05.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-05.html</id>
    <updated>2026-09-05T08:06:13+09:00</updated>
    <summary>HTTPはステートレスでサーバーは前回のリクエストを覚えていないが、Set-Cookie/Cookieヘッダーの往復がログイン状態を運ぶ。HttpOnly/Secure/SameSiteが既定でオフな理由と、RailsのCookieStoreがセッションデータ自体を暗号化してCookieに格納する仕組みを解説。</summary>
  </entry>
  <entry>
    <title>なぜ文字列結合で組み立てたSQLは壊れるのに、プレースホルダなら壊れないのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-04.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-04.html</id>
    <updated>2026-09-04T08:21:28+09:00</updated>
    <summary>SQLインジェクションは文字列結合で入力中の引用符が構文として解釈されて起きる。プレースホルダはPREPAREで構文木を確定しBINDで値を束縛するため入力が構造を変えられない仕組みと、識別子はバインド対象外な点を解説。</summary>
  </entry>
  <entry>
    <title>平均レイテンシが正常なのに、なぜ「たまに遅い」と言われるのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-03.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-03.html</id>
    <updated>2026-09-03T08:25:43+09:00</updated>
    <summary>平均は分布の中心しか表さず、ファンアウト構成では稀なテールレイテンシが大多数のユーザー体験になる。Little's Lawで待ち行列が非線形に膨らむ理由と、p99を使ったタイムアウト・SLO設計を解説。</summary>
  </entry>
  <entry>
    <title>HTTP/2 でストリームをまとめたのに、なぜ HTTP/3 は TCP を手放したのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-02.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-02.html</id>
    <updated>2026-09-02T08:24:35+09:00</updated>
    <summary>HTTP/2はアプリ層のHOLブロッキングは解決したが、1本のTCPに多重化する限りパケットロス時は無関係なストリームまで足止めされる。QUICがストリームごとに独立した信頼性配送を実装し、コネクションIDで接続をIP・ポートから切り離した設計を解説。</summary>
  </entry>
  <entry>
    <title>Rails は自動でエスケープしているのに、なぜ XSS はなくならないのか？</title>
    <link href="https://tech-learn.kaion-lab.com/archive/2026-09-01.html"/>
    <id>https://tech-learn.kaion-lab.com/archive/2026-09-01.html</id>
    <updated>2026-09-01T09:46:02+09:00</updated>
    <summary>XSSは攻撃者のJSを被害者の権限でブラウザに実行させる攻撃で、防御の要はHTML本文・属性・JS文字列・URLという文脈ごとに異なる出力エスケープと、それが漏れた時の最後の壁となるCSPのscript-src許可リストだ。</summary>
  </entry>
</feed>
