
C#은 어떻게 실행되고, 어떻게 자기 자신을 읽는가
이 글이 출발한 자리 언젠가 유니티 프로젝트의 C# 코드를 분석하는 작은 도구를 만들기로 했습니다. “이 프레젠터의 이 메서드가 실제로 어떤 구현을 호출하는가”를 따라가 주는 도구입니다. 코드를 짜기도 전에 두 가지 질문에 막혔습니다. 이 도구 자체를 어떻게 빌드해서 배포하지? — C#으로 만든 이 실행 파일을 어떤 형태로 내보내야 빠르고...

이 글이 출발한 자리 언젠가 유니티 프로젝트의 C# 코드를 분석하는 작은 도구를 만들기로 했습니다. “이 프레젠터의 이 메서드가 실제로 어떤 구현을 호출하는가”를 따라가 주는 도구입니다. 코드를 짜기도 전에 두 가지 질문에 막혔습니다. 이 도구 자체를 어떻게 빌드해서 배포하지? — C#으로 만든 이 실행 파일을 어떤 형태로 내보내야 빠르고...

序論: 「時々落ちる」の意味 Stage 2 を始めるとき、こんな問いを投げかけました。 スレッド二つが同じ変数に書き込むと、なぜプログラムが時々だけ落ちるのか? 7話 OS アーキテクチャ、8話 プロセスとスレッド、9話 スケジューリングを経て、答えの半分には辿り着きました。OS が見えないところでスレッドを入れ替えていて、その入れ替えの瞬間は予測不可能 — だから「時々...

この編で扱うこと シリーズ最終編です。2つのテーマをまとめます。 Part 1 — 動作原理: 本シリーズのインフラを成立させているメカニズム。家庭NAT 2重の奥にあるノートPC 2台がどうやって直通で通信するのか。STUN・ICE・hole punching・DERP・MagicDNSをひとまとめに整理します。 Part 2 — コスト・限界・振り返り: 年間1,100円インフ...

この回が扱うもの この回は、釜山の実家ノートPCを無人24/7のexit nodeに仕立てる運用全体を一気に整理します。作業は三つの段階に分かれます。 Phase どこで 何を 1. セットアップ 釜山の実家(1回訪問) install.ps1を一度実行 — 五つ...

このシリーズで扱うこと 福岡で1年以上暮らしてきた中で、韓国IPが必要になる場面が地味に積み重なってきました。韓国の決済・銀行・一部のコンテンツは海外IPからは正常に動作しなかったり追加認証を要求してきたりして、そのたびに商用の韓国向けVPNを一時的にONにするやり方は、コスト・信頼性・OS互換性のどれを取ってもすっきりしませんでした。 解決策として、釜山の実家の押し入れに7年眠って...

序論: Boxing 編が残したコピーコスト 第 1 回 (値型 vs 参照型と Boxing) の最後に一つの宿題を残しました。 “Boxing は避けられたが、struct そのもののコピーコストは残る。” Boxing 編の核心ルールを再掲します。 値型は代入・受け渡し・比較されるとき、内容全体がコピーされます。 このルールは普段は直感的で望ましいものです...

序論: 「スタック vs ヒープ」という説明が食い違う理由 C# の教科書の最初のページで、私たちはこう学びます。 “値型 (struct) はスタックに、参照型 (class) はヒープに格納されます。” この文章は間違いではないのですが、実務で直面するほぼすべての反例を覆い隠してしまいます。クラスのフィールドとして int を宣言すると、その int はスタックではなく...

序論: 同じIL、異なる運命 前の2篇では、.NETスタックの第4層 (Runtime) が複数の実装に分かれているという事実を確認しました。今回はその実装を一つずつ解剖して比較します。 現時点で実務的に意味のある5つのランタイムは次のとおりです。 ランタイム 所属 登場 状態 ...

序論 — Claudeは本当にナーフされたのか Claude Opus 4.6はしばらくの間、コーディング作業の基準線を一段階引き上げたと評価されていました。コードベース全体を投げつけても文脈を掴み、難しいリファクタリングを一発で終え、ツール呼び出し間の推論もクリーンでした。ところが2026年2月から異常な信号が蓄積され始めました。思考の深さ73%減少、トークン消費量122倍増加、St...

序論: 歴史を知ることが実用的な理由 この記事は三つの疑問に答えるための内容です。 「.NET 4」はなぜ飛ばされたのか? — .NET Core 3.1 の次のバージョンがなぜ 4 ではなく 5 なのか? 「Core」はなぜ名前から消えたのか? — .NET Core 3.1 は存在したのに、.NET Core 5 はなぜ存在しないのか? Unity はなぜ Mono...