AI Session Notes - 2026-03-16
技術スキル自己診断 - 弱点分析と学習ロードマップ
学んだこと
- 技術レベル判定テスト(10分野・100点満点)で 64/100点(シニアレベル) と判定
- 実務経験に基づく判断力(障害対応、チーム連携)は高い一方、CS基礎理論の深掘りに伸びしろがある
- 特に ネットワーク・セキュリティ・システム設計 の3分野が重点改善領域
弱点の詳細
1. ネットワーク(低レイヤー知識)
- DNS解決の階層構造(ブラウザキャッシュ → OSキャッシュ → 再帰リゾルバ → ルートDNS → TLDサーバー → 権威サーバー)を正確に説明できるようにする
- TCP 3ウェイハンドシェイク(SYN → SYN-ACK → ACK)の仕組み
- TLSハンドシェイクの流れ(ClientHello/ServerHello、証明書検証、鍵交換、共通鍵生成)
2. セキュリティ(Web攻撃手法と防御)
- SQLインジェクション: サニタイズではなく プリペアドステートメント(パラメータバインド) が根本対策
- XSS: 出力時の HTMLエスケープ と CSP(Content-Security-Policy)ヘッダー が防御の柱。反射型・DOM Based XSSも理解する
- CSRF: Same-Origin Policy/CORSとは別概念。ログイン済みユーザーのセッションCookieを悪用して意図しないリクエストを送信させる攻撃。防御は CSRFトークン、SameSite Cookie属性、Origin/Refererヘッダー検証
3. システム設計(スケーラビリティ)
- ID生成戦略: Base62エンコーディング、Snowflake ID、ハッシュ先頭N文字など
- Read/Write比率 に基づく設計判断(読み取りヘビーならキャッシュ層が必須)
- キャッシュ戦略: Redis/Memcachedによるホットデータのキャッシュ
- CDN による地理分散、ロードバランサー による負荷分散
- 逆引きインデックスなどデータモデル設計の具体性
4. 設計パターン・アーキテクチャ
- 疎結合の核心: モジュール間の依存を インターフェース(抽象) を介して行い、具体実装に依存しない。依存性注入(DI) が実現手法
- マイクロサービス: 「共通機能の共有化」ではなく「1つのアプリを 独立デプロイ・個別スケール可能 な小サービスに分割する」が本質
今マッチしている学習内容
- ネットワークプロトコルの仕組み(DNS階層、TCP/IP、TLS)
- Webセキュリティの基礎(OWASP Top 10 の正確な理解と防御策)
- 大規模システム設計(キャッシュ、CDN、ロードバランシング、スケーリング戦略)
- 設計原則とパターン(SOLID原則、DI、インターフェース設計)
おすすめ書籍
| 書籍 | 著者 | 補強分野 |
|---|---|---|
| マスタリングTCP/IP 入門編 | 竹下隆史ほか | ネットワーク基礎(TCP/IP、DNS、TLS) |
| Webを支える技術 | 山本陽平 | HTTP、URI、RESTなどWeb技術の本質 |
| 体系的に学ぶ 安全なWebアプリケーションの作り方(徳丸本) | 徳丸浩 | SQLi、XSS、CSRFの攻撃と防御の決定版 |
| System Design Interview | Alex Xu | スケーラビリティ設計の実践問題集 |
| Clean Architecture | Robert C. Martin | 疎結合、依存性逆転、レイヤー設計の原則 |
メタ情報
- ツール: Claude Code
- 関連技術: ネットワーク, セキュリティ, システム設計, アーキテクチャ, データベース, Git, Docker, CI/CD