Software Architecture
저자: Erdem Alparslan
1. State
2. Boundary Anatomy
2.1. Independence
2.2. Drawing Boundary Lines
2.3. Decoupling Layers
2.4. Partial Boundaries
3. OOP Design Patterns
3.1. Creational Patterns
3.1.1. Abstract Factory
3.1.2. Factory Method
3.1.3. Builder
3.1.4. Prototype
3.1.5. Singleton
3.2. Structural Patterns
3.2.1. Adapter
3.2.2. Bridge
3.2.3. Composite
3.2.4. Decorator
3.2.5. Facade
3.2.6. Flyweight
3.2.7. Proxy
3.3. Behavioral Patterns
3.3.1. Chain of Responsibility
3.3.2. Command
3.3.3. Interpreter
3.3.4. Iterator
3.3.5. Mediator
3.3.6. Momento
3.3.7. Observer
3.3.8. Strategy
3.3.9. Template
3.4. Visitor
4. Data Architecture
4.1. Data Models and Query Languages
4.2. Replication
4.3. Partitioning
4.3.1. Storage and Encoding
4.4. Transaction Management and ACID
4.5. Distributed Systems
4.6. Batch Processing
4.7. Stream Processing
5. Scalable Systems
5.1. Hardware
5.2. Caching CDN
6. Transactions Management (SAGA)
7. Design Principals (SOLID Principals)
7.1. SRP: Single Responsibility Pr
7.2. ISP: Interface Segregation Pr
7.3. DIP: Dependency Inversion Pr
7.4. LSP: Liskov Substitution Pr
8. Component Principals
8.1. Component Cohesion
8.2. Component Coupling
9. Microservices Architecture
9.1. REST
9.2. Decomposition Strategies
9.3. Interprocess Communication
9.4. Business Logic Design and Event Sourcing
9.5. Implementation of Queries (CQRS: Common Query Responsibility Segregation)
9.6. Test Strategies
9.7. Deployment Strategies
9.8. Orchestration
9.9. Monolith Breaking Strategies
10. Messaging Architecture
11. Serverless Architectures
11.1. OCP: Open-Closed Pr
12. Security
12.1. Secure Architecture
12.2. Authentication/Authorization