コンテンツにスキップ

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つのアプリを 独立デプロイ・個別スケール可能 な小サービスに分割する」が本質

今マッチしている学習内容

  1. ネットワークプロトコルの仕組み(DNS階層、TCP/IP、TLS)
  2. Webセキュリティの基礎(OWASP Top 10 の正確な理解と防御策)
  3. 大規模システム設計(キャッシュ、CDN、ロードバランシング、スケーリング戦略)
  4. 設計原則とパターン(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