1. バックエンド開発入門 MOC

2. サーバーサイドプログラミング言語 MOC (各言語詳細MOCへのポータル)

  • 言語選択の考慮事項
    • [[パフォーマンス要件]]
    • [[エコシステムとライブラリの充実度]]
    • [[コミュニティサポート]]
    • [[チームのスキルセットと学習コスト]]
    • [[プロジェクトの特性と規模]]
    • [[スケーラビリティと並行処理能力]]
  • TypeScript) によるバックエンド開発 MOC
    • [[Node.jsの概要と特徴 (イベント駆動、ノンブロッキングI/O)]]
    • [[Express.jsフレームワーク MOC]]
    • [[NestJSフレームワーク MOC]] (TypeScriptベース)
    • [[Fastify, Koaなどのフレームワーク概要]]
    • [[npm/yarnとパッケージ管理]]
    • [[非同期処理 (Callbacks, Promises, async/await)]] (再掲・バックエンド文脈)
    • [[Node.jsのテスト (Jest, Mocha)]]
    • [[Node.jsのデプロイメント]]
  • Pythonによるバックエンド開発 MOC
    • [[Pythonの概要と特徴 (可読性、豊富なライブラリ)]]
    • [[Djangoフレームワーク MOC]] (フルスタック、バッテリー同梱)
    • [[Flaskフレームワーク MOC]] (マイクロフレームワーク、柔軟性)
    • [[FastAPIフレームワーク MOC]] (高性能、型ヒントベース)
    • [[SQLAlchemy (ORM)]]
    • [[Celery (非同期タスクキュー)]]
    • [[Pythonのテスト (pytest, unittest)]]
    • [[Pythonのデプロイメント (Gunicorn, uWSGI, Docker)]]
  • Javaによるバックエンド開発 MOC
    • [[Javaの概要と特徴 (堅牢性、エンタープライズ向け、JVM)]]
    • [[Spring Framework / Spring Boot MOC]] (DI、AOP、豊富なモジュール)
    • [[Jakarta EE (旧Java EE) MOC]] (標準仕様ベース)
    • [[Micronaut, Quarkusなどのフレームワーク概要]]
    • [[Maven/Gradleとビルドシステム]]
    • [[JPA/Hibernate (ORM)]]
    • [[Javaのテスト (JUnit, Mockito)]]
    • [[Javaのデプロイメント (Tomcat, JBoss, Docker, Jar実行)]]
  • Rubyによるバックエンド開発 MOC
    • [[Rubyの概要と特徴 (開発者幸福度、DSL)]]
    • [[Ruby on Railsフレームワーク MOC]] (CoC - Convention over Configuration, DRY)
    • [[Sinatraフレームワーク概要]] (マイクロフレームワーク)
    • [[Active Record (ORM)]]
    • [[Sidekiq (非同期処理)]]
    • [[Rubyのテスト (RSpec, Minitest)]]
    • [[Rubyのデプロイメント (Puma, Unicorn, Docker)]]
  • PHPによるバックエンド開発 MOC
    • [[PHPの概要と特徴 (Web特化、広範なホスティングサポート)]]
    • [[Laravelフレームワーク MOC]]
    • [[Symfonyフレームワーク MOC]]
    • [[Composerとパッケージ管理]]
    • [[Eloquent ORM (Laravel), Doctrine (Symfony)]]
    • [[PHPのテスト (PHPUnit)]]
    • [[PHPのデプロイメント (Apache/Nginx + PHP-FPM, Docker)]]
  • Go (Golang) によるバックエンド開発 MOC
    • [[Goの概要と特徴 (シンプルさ、パフォーマンス、並行処理)]]
    • [[標準ライブラリの充実 (net/httpなど)]]
    • [[Gin, Echoなどのフレームワーク概要]]
    • [[GoroutinesとChannelsによる並行処理]]
    • [[Goのテスト (標準testingパッケージ)]]
    • [[Goのデプロイメント (静的バイナリ、Docker)]]
  • (.NET) によるバックエンド開発 MOC
    • [[C#とnetプラットフォームの概要|と.NETプラットフォームの概要]]
    • [[ASP.NET Coreフレームワーク MOC]] (クロスプラットフォーム、高性能)
    • [[Entity Framework Core (ORM)]]
    • [[C#のテスト-xunitnet-nunit-mstest|のテスト (xUnit.net, NUnit, MSTest)]]
    • [[C#のデプロイメント-iis-kestrel-docker-azure|のデプロイメント (IIS, Kestrel, Docker, Azure)]]
  • (オプション) Rustによるバックエンド開発 MOC (Actix, Rocket, Axumなど)
  • (オプション) Kotlinによるバックエンド開発 MOC (Ktor, Spring Boot with Kotlinなど)
  • (オプション) Scalaによるバックエンド開発 MOC (Play Framework, Akka HTTP, ZIO HTTPなど)

3. Webフレームワーク概論 MOC

  • Webフレームワークとは
  • 一般的なWebフレームワークの構成要素
    • [[ルーティング (Routing)]]
    • [[リクエストハンドラ (Request Handlers / Controllers)]]
    • [[ミドルウェア (Middleware / Filters)]]
    • [[テンプレートエンジン (Template Engine)]] (サーバーサイドレンダリングの場合)
    • [[ORM/データベース抽象化レイヤー]]
    • [[セッション管理]]
    • [[セキュリティ機能 (CSRF対策、XSS対策など)]]
  • Model-View-Controller (MVC) パターンとWebフレームワーク (再掲・バックエンド視点)
  • フレームワーク選択の基準 (言語MOCと重複するが重要)
  • フレームワークの学習方法とドキュメントの活用

4. データベース MOC

4.1. リレーショナルデータベース (SQL) MOC

  • SQLデータベースの基本
  • SQL (Structured Query Language) MOC
    • [[DDL (Data Definition Language - CREATE, ALTER, DROP)]]
    • [[DML (Data Manipulation Language - SELECT, INSERT, UPDATE, DELETE)]]
    • [[DCL (Data Control Language - GRANT, REVOKE)]]
    • [[TCL (Transaction Control Language - COMMIT, ROLLBACK, SAVEPOINT)]]
    • [[結合 (JOIN - INNER, LEFT, RIGHT, FULL)]]
    • [[集約関数 (Aggregate Functions - COUNT, SUM, AVG, MAX, MIN)]]
    • [[グループ化 (GROUP BY) とフィルタリング (HAVING)]]
    • [[サブクエリ (Subqueries)]]
    • [[ビュー (Views)]]
    • [[ストアドプロシージャとトリガー]] (概要)
    • [[インデックス (Indexes) とパフォーマンス]]
  • 主要なSQLデータベース
    • [[PostgreSQL MOC]] (特徴、高度な機能)
    • [[MySQL MOC]] (特徴、広く利用)
    • [[SQLite MOC]] (組み込み、軽量)
    • [[Microsoft SQL Server MOC]]
    • [[Oracle Database MOC]]
  • SQLデータベース設計のベストプラクティス
  • SQLインジェクション対策 (プリペアドステートメント、ORMの活用)

4.2. NoSQLデータベース MOC

4.3. ODM とデータベースマイグレーション MOC

5. API開発と実装 (バックエンド視点) MOC (API設計MOCと連携)

6. 認証と認可 (Authentication and Authorization - バックエンド) MOC

6.1. 認証 (Authentication) メカニズム実装 MOC

  • セッションベース認証 MOC
    • [[CookieとセッションIDの仕組み]]
    • [[サーバサイドでのセッション管理 (インメモリ、データベース、Redisなど)]]
    • [[セッション固定化 (Session Fixation) 対策]]
  • トークンベース認証 MOC
    • [[ステートレス認証]]
    • JWT (JSON Web Token) の発行と検証 MOC
      • [[JWTの構造 (Header, Payload, Signature)]]
      • [[署名アルゴリズム (HMAC, RSA)]]
      • [[アクセストークンとリフレッシュトークン戦略]]
      • [[JWTのセキュリティ考慮事項 (有効期限、失効、XSS対策)]]
  • OpenID Connect (OIDC) のサーバーサイド実装 MOC
    • [[認可サーバー (Authorization Server) の役割と構築]]
    • [[リソースサーバー (Resource Server) の役割とトークン検証]]
  • APIキー認証の実装
  • パスワード管理
    • [[安全なパスワードハッシュ化 (bcrypt, scrypt, Argon2)]]
    • [[ソルトの使用]]
    • [[パスワードポリシー]]
  • 多要素認証 (MFA - Multi-Factor Authentication) の実装サポート

6.2. 認可 (Authorization) メカニズム実装 MOC

7. サーバーアーキテクチャ MOC (再掲・バックエンド詳細)

8. デプロイメントとインフラストラクチャ MOC

8.1. Webサーバーとアプリケーションサーバー MOC

8.2. コンテナ化とオーケストレーション MOC (再掲・バックエンド文脈)

8.3. クラウドプラットフォームの活用 MOC

  • IaaS (Infrastructure as a Service) (EC2, Azure VMs, Google Compute Engine)
  • PaaS (Platform as a Service) (AWS Elastic Beanstalk, Azure App Service, Google App Engine, Heroku)
  • FaaS (Function as a Service) (AWS Lambda, Azure Functions, Google Cloud Functions)
  • マネージドデータベースサービス (AWS RDS, Azure SQL Database, Google Cloud SQL)
  • マネージドキャッシュサービス (AWS ElastiCache, Azure Cache for Redis)
  • マネージドメッセージキューサービス (AWS SQS, Azure Service Bus)
  • オブジェクトストレージ (AWS S3, Azure Blob Storage, Google Cloud Storage)

8.4. CDパイプライン (バックエンド向け) MOC (再掲・バックエンド文脈)

8.5. Infrastructure as Code (IaC) MOC (再掲・バックエンドインフラ)

9. キャッシュ戦略 (サーバーサイド) MOC

  • キャッシュの目的 (パフォーマンス向上、DB負荷軽減)
  • キャッシュの階層 (クライアント、CDN、ロードバランサ、アプリケーション、データベース)
  • インメモリキャッシュ MOC
    • [[Redis MOC]] (データ構造、永続化、クラスタリング)
    • [[Memcached MOC]]
    • [[アプリケーションレベルキャッシュ (EHCache, Guava Cacheなど)]]
  • CDN (Content Delivery Network) による静的/動的コンテンツのキャッシュ (バックエンドからの制御)
  • データベースキャッシュ (クエリキャッシュ、バッファプール)
  • キャッシュ戦略
    • [[キャッシュアサイド (Cache-Aside)]]
    • [[リードスルー (Read-Through)]]
    • [[ライトスルー (Write-Through)]]
    • [[ライトバック (Write-Back / Write-Behind)]]
  • キャッシュ無効化 (Cache Invalidation) 戦略
    • [[TTL (Time To Live)]]
    • [[イベントベースの無効化]]
    • [[バージョンベースの無効化]]
  • キャッシュの課題 (キャッシュコヒーレンシ、キャッシュスタンプede、キャッシュスラッシング)

10. パフォーマンスとスケーラビリティ (バックエンド) MOC

  • パフォーマンスボトルネックの特定
    • [[プロファイリングツール (サーバーサイド)]] (JProfiler, YourKit, cProfile, delve pprofなど)
    • [[APM (Application Performance Monitoring) ツールの活用]] (Datadog, New Relic, Dynatrace)
  • スケーラビリティの種類
  • ロードバランシング (Load Balancing) MOC
    • [[ロードバランサの種類 (L4, L7)]]
    • [[アルゴリズム (Round Robin, Least Connectionsなど)]]
    • [[スティッキーセッション]]
  • データベーススケーラビリティ
    • [[リードレプリカ (Read Replicas)]]
    • [[シャーディング (Sharding)]]
    • [[コネクションプーリング (Connection Pooling)]]
  • 非同期処理とメッセージキューによるスケーラビリティ向上 (詳細は後述)
  • ステートレスアーキテクチャとスケーラビリティ
  • バックエンドコードの最適化 (アルゴリズム、データ構造、I/O処理)

11. バックエンドセキュリティ MOC

  • OWASP Top 10 (サーバーサイド脆弱性) MOC
    • [[インジェクション (SQLi, NoSQLi, OS Command Injection)]]
    • [[認証の不備 (Broken Authentication)]] (再掲・サーバーサイド視点)
    • [[機密データの公開 (Sensitive Data Exposure)]]
    • [[XML外部実体参照 (XXE - XML External Entities)]]
    • [[アクセス制御の不備 (Broken Access Control)]] (認可の不備 - 再掲)
    • [[セキュリティ設定ミス (Security Misconfiguration)]] (デフォルト設定、不要な機能有効化)
    • [[安全でないデシリアライゼーション (Insecure Deserialization)]]
    • [[脆弱性のあるコンポーネントの使用 (Using Components with Known Vulnerabilities)]]
    • [[不十分なロギングとモニタリング (Insufficient Logging & Monitoring)]]
    • [[サーバーサイドリクエストフォージェリ (SSRF - Server-Side Request Forgery)]]
  • セキュアコーディングプラクティス
  • 依存関係管理と脆弱性スキャン (npm audit, Snyk, OWASP Dependency-Check)
  • シークレット管理 (Secrets Management) MOC (APIキー、DBパスワードなど)
    • [[HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, Google Cloud Secret Manager]]
    • [[環境変数での管理と注意点]]
  • DoS/DDoS攻撃対策 (レート制限、IPブロッキング、WAF)
  • Web Application Firewall (WAF)
  • セキュリティヘッダの設定 (Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Optionsなど)
  • 定期的なセキュリティ監査とペネトレーションテスト

12. バックエンドテスト MOC (テスト戦略MOCと連携)

13. ロギングとモニタリング (サーバーサイド) MOC

14. メッセージキューと非同期処理 MOC

  • 非同期処理の必要性 (応答性向上、長時間処理の分離、耐障害性)
  • メッセージキュー (Message Queue) の概要 MOC
    • [[メッセージブローカーの役割 (プロデューサー、コンシューマー、キュー)]]
    • [[Point-to-Point vs. Publish/Subscribeモデル]]
  • 主要なメッセージキューシステム
    • [[RabbitMQ MOC]] (AMQPプロトコル)
    • [[Apache Kafka MOC]] (分散ストリーミングプラットフォーム)
    • [[Redis Streams MOC]]
    • [[AWS SQS (Simple Queue Service)]]
    • [[Azure Service Bus]]
    • [[Google Cloud Pub/Sub]]
  • 非同期タスク処理の実装
    • [[バックグラウンドワーカーの作成]]
    • [[べき等な処理と再試行メカニズム]]
    • [[デッドレターキュー (DLQ - Dead Letter Queue)]]
  • メッセージキューの利点と適用ケース (負荷平準化、サービス間非同期連携、イベント駆動)
  • メッセージキューの課題 (メッセージ順序保証、トランザクション管理、監視)

15. バックエンド開発ワークフローとベストプラクティス MOC

  • バージョン管理 (Git) とブランチ戦略 (再掲・バックエンド開発フロー)
  • コードレビューと静的解析 (再掲)
  • CI/CDパイプライン (ビルド、テスト、アーティファクト作成、デプロイ)
  • Infrastructure as Code (IaC) (再掲)
  • 設定管理 (Configuration Management) (環境変数、設定ファイル、Config Server)
  • APIドキュメンテーションの維持 (Swagger/OpenAPIなど - 再掲)
  • 技術的負債の管理とリファクタリング
  • 12 Factor App (トゥエルブファクターアップ) の原則 (クラウドネイティブアプリ設計指針)
  • DevOpsプラクティスの採用
  • 継続的な学習と技術トレンドの追跡
  • バックエンド開発におけるアンチパターン