アーキテクチャ用語集【中級】
設計パターン、システム設計、API設計、ドメイン駆動設計など、実務で必要な中級レベルの重要な用語を学習できます
中級アーキテクチャについて
中級レベルのアーキテクチャでは、設計パターン、システム設計、API設計、ドメイン駆動設計(DDD)など、実際の開発現場で重要となる概念を学習します。これらの知識は、保守性と拡張性の高いシステムを構築するための基盤となります。
用語数統計
アーキテクチャ中級用語一覧
12個の中級用語を詳細解説付きで紹介
-
API設計
(エーピーアイせっけい) API Design 中級アプリケーション間の通信インターフェースを設計すること。RESTful設計、GraphQL、使いやすさと拡張性を考慮した設計が重要。API設計は、システム間の通信を効率的かつ安全に行うためのインターフェース設計プロセスです。RESTful API、GraphQL、gRPCなどの手法があり、リソースの命名規則、HTTPメソッドの適切な使用、エラーハンドリング、認証・認可、バージョニング戦略などを考慮します。優れたAPI設計により、開発者体験の向上、システムの拡張性確保、メンテナンス性の向上が実現されます。
例: RESTful API, GraphQL, OpenAPI仕様, API Gateway -
ドメイン駆動設計
(ドメインくどうせっけい) Domain-Driven Design (DDD) 中級複雑なビジネスロジックを持つシステムで、ドメインの知識を中心とした設計アプローチ。エンティティ、値オブジェクト、集約などの概念を活用。ドメイン駆動設計(Domain-Driven Design, DDD)は、Eric Evansによって提唱された、複雑なソフトウェアプロジェクトにおけるモデリングと設計のアプローチです。ビジネスドメインの専門知識を中心に置き、エンティティ、値オブジェクト、集約、リポジトリ、ドメインサービスなどの戦術的パターンと、境界づけられたコンテキスト、コンテキストマップなどの戦略的パターンを組み合わせて、保守性の高いソフトウェアを構築します。
例: エンティティ, 値オブジェクト, 集約, 境界づけられたコンテキスト -
クリーンアーキテクチャ
(クリーンアーキテクチャ) Clean Architecture 中級依存関係を内側に向けることで、ビジネスロジックを外部の詳細から独立させるアーキテクチャパターン。テスタビリティと保守性を向上。クリーンアーキテクチャは、Robert C. Martin(Uncle Bob)によって提唱されたソフトウェアアーキテクチャの原則です。システムを同心円状の層に分け、依存関係を内側(ビジネスロジック)に向けることで、外部の変更からビジネスロジックを守ります。エンティティ、ユースケース、インターフェースアダプター、フレームワーク・ドライバーの4層構造により、テスタビリティ、独立性、保守性を実現します。
例: エンティティ層, ユースケース層, インターフェースアダプター層, 依存性逆転 -
SOA
(エスオーエー) Service-Oriented Architecture 中級ビジネス機能をサービスとして公開し、それらのサービスを組み合わせてアプリケーションを構築するアーキテクチャ手法。SOA(Service-Oriented Architecture)は、ビジネス機能を独立したサービスとして設計し、それらのサービスを組み合わせてアプリケーションを構築するアーキテクチャ手法です。サービスは疎結合で、標準的なインターフェース(通常はWebサービス)を通じて通信します。再利用性、柔軟性、統合性を重視し、エンタープライズ系システムで広く採用されました。マイクロサービスの前身的な概念でもあります。
例: Webサービス, SOAP, ESB, サービス契約 -
スケーラビリティ
(スケーラビリティ) Scalability 中級システムが増大する負荷に対応して性能を拡張できる能力。水平スケーリング(スケールアウト)と垂直スケーリング(スケールアップ)がある。スケーラビリティは、システムが増大する負荷や要求に対してうまく対応できる能力を指します。水平スケーリング(複数のサーバーを追加)と垂直スケーリング(単一サーバーの性能向上)の2つのアプローチがあり、クラウド環境では特に重要な概念です。
例: 水平スケーリング, 垂直スケーリング, オートスケーリング, ロードバランシング -
冗長性
(じょうちょうせい) Redundancy 中級システムの一部に障害が発生しても全体が停止しないよう、重要な要素を複数用意すること。可用性と信頼性の向上を目的とする。冗長性は、システムの信頼性と可用性を向上させるため、重要なコンポーネントやデータを複数保持する設計原則です。単一障害点(SPOF)を排除し、障害発生時でもサービス継続を可能にします。
例: データベース冗長化, サーバー冗長化, ネットワーク冗長化, バックアップ -
ロードバランシング
(ロードバランシング) Load Balancing 中級複数のサーバーに処理負荷を分散させる技術。システムの性能向上と可用性確保を実現する。ロードバランシングは、複数のサーバーに処理を分散することで、システム全体の性能と可用性を向上させる技術です。ラウンドロビン、重み付け、最小接続数などの分散アルゴリズムがあります。
例: ALB, NLB, ラウンドロビン, ヘルスチェック -
サーバーレスアーキテクチャ
(サーバーレスアーキテクチャ) Serverless Architecture 中級サーバーの管理を意識せずにアプリケーションを実行できるクラウドアーキテクチャ。FaaS(Function as a Service)が代表的。サーバーレスアーキテクチャは、開発者がサーバーのプロビジョニングや管理を意識せずにコードを実行できるクラウドアーキテクチャです。AWS Lambda、Azure Functions、Google Cloud Functionsなどが代表的なサービスです。
例: AWS Lambda, Azure Functions, Google Cloud Functions, イベント駆動 -
サービスメッシュ
(サービスメッシュ) Service Mesh 中級マイクロサービス間の通信を管理するインフラストラクチャレイヤー。サービス間の通信、セキュリティ、観測可能性を提供。サービスメッシュは、マイクロサービスアーキテクチャにおいて、サービス間の通信を管理する専用のインフラストラクチャレイヤーです。Istio、Linkerd、Consulなどがあり、トラフィック管理、セキュリティ、監視機能を提供します。
例: Istio, Linkerd, Consul, サイドカープロキシ -
サーキットブレーカーパターン
(サーキットブレーカーパターン) Circuit Breaker Pattern 中級外部サービスの障害が連鎖的に広がることを防ぐ設計パターン。障害を検知すると自動的に呼び出しを停止する。サーキットブレーカーパターンは、外部サービスへの呼び出しが失敗し続ける場合に、自動的に呼び出しを停止して障害の連鎖を防ぐ設計パターンです。Netflix Hystrix、Resilience4jなどのライブラリで実装できます。
例: Netflix Hystrix, Resilience4j, 障害の連鎖防止, タイムアウト -
バルクヘッドパターン
(バルクヘッドパターン) Bulkhead Pattern 中級システムリソースを分離し、一部の障害が全体に波及することを防ぐ設計パターン。船の隔壁のように障害を局所化。バルクヘッドパターンは、システムの重要なリソースを分離し、一部のコンポーネントの障害が他の部分に波及することを防ぐ設計パターンです。船の隔壁に由来し、スレッドプール、コネクションプール、CPU・メモリリソースなどを分離します。
例: スレッドプール分離, コネクションプール分離, リソース分離