- 요구사항이란 무엇이며, 어떤 것들이 있나요?
- 기능적 요구사항( Functional Requirements )
: 반드시 구현되어야 하는 사항 ( 사용자 입장에서 A를 요구하면 B가 된다. )
- 비기능적 요구사항( Non-Functional Requirements )
: 그 기능이 어떻게 되느냐, 지연 없이 되느냐
- 시스템이란 무엇이며, 시스템을 설계한다는 것은 무엇을 의미하나요?
- 컴포넌트
- 컴포넌트 간 통합( Integration, macro )
- APIs
- 데이터 모델 분산 시스템( Scale well but complex )
분산 시스템
물리적으로 다양한 네트워크에 서로 연결되어 있는 컴퓨터들이 메시지를 주고 받으며 하나의 서비스를 위해 협력하는 시스템
- Internet
- DNS
- SMTP(Email)
- Aircraft control systems
- Wireless Sensor network
- Meta, Apple, Netfilx, Google, Amazon ( FAANG )
Lamport : 시스템 안에서 컴퓨터 하나에 오류가 발생했을 때 소유자는 그 사실을 모르면서 이윽고 컴퓨터가 사용할 수 없게 만드는 것이다.
분산 시스템을 사용하는 이유
1. 요구사항 충족을 위해 무언가를 분산
- 워크로드, 기능 분리
- 가용성, 지연시간, 장애 대응
- 관리 용이성
- 법/정치적 요구
2. 고객의 요구사항
분산 시스템의 장점과 단점
장점
- Scalability and Modular Growth
하나의 모듈이 늘어남에 따라 모듈이 성장 ( EC2 생성 -> EC2 추가 생성 )
- Fault Tolerance and Redundancy
- Low Latency
- Cost Effectiveness
- Efficiency
단점
- Complexity
- Higher Initial Cost
- Security Concerns
(~31:20 )