🌐 インターネットの基礎
- インターネットの仕組み
- URLの構造と構成要素1
- HTTP (HyperText Transfer Protocol) とは何か?
- HTTPプロトコルの概要と仕組み
- ブラウザの仕組み
- DNS (Domain Name System) の仕組み2
- ドメイン名とは?
- ホスティングとは?
🏗 アーキテクチャパターン
- モノリシックアプリケーション
- モノリシックアプリケーションの概要と設計
- マイクロサービス
- マイクロサービスアーキテクチャの設計と実装
- モジュラーモノリス
- モジュラーモノリス(Modular Monolith)アーキテクチャの詳細解説
- SOA (Service Oriented Architecture: サービス指向アーキテクチャ)
- メッセージブローカー
- コンテナ化 vs 仮想化
- Dockerによるコンテナ化の基礎
🚀 Webサーバー
- Nginx
- Apache
- Caddy
- Microsoft IIS (Internet Information Services)
🔄 コンテナ化
- Docker
- Dockerによるコンテナ化の基礎
- LXC (Linux Containers)
🔌 API (Application Programming Interface)
- REST (Representational State Transfer)
- RESTful APIの設計と実装
- GraphQL
- GraphQLの基礎と実装
- JSON (JavaScript Object Notation) API
- SOAP (Simple Object Access Protocol)
- HATEOAS (Hypermedia As The Engine Of Application State)
- OpenAPI仕様
- APIドキュメンテーションの作成と管理
- CAP (Consistency, Availability, Partition Tolerance) 定理
🔑 認証とセキュリティ
- 認証/認可の仕組み3
- 暗号化と認証の基礎
- OAuth (Open Authorization)
- Basic認証
- HTTP Basic Authenticationの概要と仕組み6
- トークン認証
- APIキー認証の概要と仕組み7
- JWT (JSON Web Token)
- JWTの概要と実装メカニズム
- OpenID
- SAML (Security Assertion Markup Language)
- Webセキュリティのベストプラクティス
- OWASP Top 10とWebセキュリティの基本8
- MD5 (Message Digest Algorithm 5) を使うべきでない理由
- SHA (Secure Hash Algorithm) ファミリー
- scrypt / bcrypt
- クッキー認証
- CORS (Cross-Origin Resource Sharing)
- HTTPS (HyperText Transfer Protocol Secure)
- HTTPSの概要と仕組み9
- コンテンツセキュリティポリシー
- OWASP (Open Web Application Security Project) のリスク
- SSL/TLS (Secure Sockets Layer/Transport Layer Security)
- セキュアコーディングプラクティス
- OWASP Top 10とWebセキュリティの基本8
🛠 キャッシュ
- キャッシング戦略の設計と実装
- Redis (Remote Dictionary Server)
- Memcached
- サーバーサイド
- クライアントサイド
- CDN (Content Delivery Network)
🗃 データベース
データベース最適化の手法と実装
リレーショナルデータベース
- PostgreSQL
- MySQL
- MariaDB
- Microsoft SQL Server
- Oracle Database
NoSQL (Not Only SQL) データベース
- ACID (Atomicity, Consistency, Isolation, Durability) の原則
- トランザクション
- N+1問題
- シャーディング戦略
- 正規化
- データレプリケーション
- データベースインデックス
NoSQLデータベースの種類
- ドキュメントDB: MongoDB, CouchDB
- 時系列DB: InfluxDB, TimescaleDB
- リアルタイムDB: Firebase, RethinkDB
- カラムDB: Apache Cassandra, Apache HBase
- キー・バリューストア: Redis, Amazon DynamoDB
- グラフDB: Neo4j
🧪 テスト
- 統合テスト
- 単体テスト
- 機能テスト
💻 OSと一般知識
- オペレーティングシステムの基礎
- メモリ管理
- プロセス間通信
- 入出力管理
- POSIX (Portable Operating System Interface) の基本 (標準入力, 標準出力, 標準エラー出力, パイプ)
- ネットワークの基本概念
- TCP/IPプロトコルの概要と仕組み
- ターミナルの使い方
- grep, awk, sed, lsof, curl, wget (基本的なUNIXコマンド)
- tail, head, less, find, ssh, kill, dig (システム管理コマンド)
- プロセス管理
- サーバー管理の基礎
- スレッドと並行処理
- OSの仕組み
🛠 バージョン管理
- Git
- GitHub
- リポジトリホスティングサービス
- Bitbucket
- GitLab
- バージョン管理システム
🏛 ソフトウェア設計とアーキテクチャ
- GoF (Gang of Four) デザインパターン
- DDD (Domain-Driven Design: ドメイン駆動設計)
- TDD (Test-Driven Development: テスト駆動開発)
- サーバーレス
- 移行戦略
- スケールの種類
- gRPC (Google Remote Procedure Call)
- CQRS (Command Query Responsibility Segregation)
- イベントソーシング
- イベント駆動アーキテクチャ (EDA) の詳細
- サービスメッシュ
- Twelve Factor Apps (12要素アプリケーション)
🔍 検索エンジン
- Elasticsearch
- Apache Solr
📡 メッセージングとストリーミング
- RabbitMQ
- Apache Kafka
- WebSocket
- SSE (Server-Sent Events: サーバー送信イベント)
🔥 スケール対応
- 負荷軽減戦略
- グレースフルデグラデーション
- スロットリング
- バックプレッシャー
- 負荷分散
- 負荷分散の設計と実装
- サーキットブレーカー
- 障害モード
📊 可観測性とモニタリング
- メトリクスの記録
- デバッグと問題解決
- インストルメンテーション
- プロファイリング
- パフォーマンス監視
- テレメトリー
🔗 DevOpsとCI/CD
- Kubernetes
- CI/CD (継続的インテグレーション/継続的デリバリー) パイプライン
- CI/CDパイプラインの概要と実装
- IaC (Infrastructure as Code)
- クラウドサービス
- クラウドサービスの基礎知識
📌 プログラミング言語を学ぶ
- Go
- Java
- Rust
- C#
- PHP
- JavaScript
- Python
- Ruby