데이터 중심 애플리케이션 설계
- Books
- 2022년 4월 27일
이 책은 총 3부로 구성되어 1부에서는 근본 개념에 대해 설명하고 2부에서는 데이터를 분산 저장하기 위한 내용을, 3부에서는 한 데이터셋에서 다른 데이터셋을 파생하는 시스템애 대해 설명한다.
1장. 데이터 시스템의 기초
1) 신뢰성
잘못될 수 있는 일을 결함이라 부른다. 이 결함을 예측하고 대처할 수 있는 시스템을 내 결함성/탄력성을 가졌다고 말할 수 있다.
결함과 장애는 동일하지 않은데, 결함은 사양에서 벗어난 시스템의 한 구성 요소로 정의되지만, 장애는 사용자에게 필요한 서비스를 제공하지 못하고 시스템 전체가 멈춘 경우이다.
결함 유형
- 하드웨어 결함
- 소프트웨어 오류 : 하드웨어 결함과 달리 신속한 해결책이 없으며 아래와 같은 방법들이 도움을 줄 수 있다.
- 시스템의 가정과 상호작용에 대해 주의 깊게 생각하기
- 빈틈없는 테스트
- 프로세스 격리
- 죽은 프로세스의 재시작 허용
- 시스템 동작의 측정
- 모니터링
- 인적 오류
2) 확장성
확장성은 증가한 부하에 대처하는 시스템 능력을 설명하는 데 사용하는 용어로 시스템에 부여하는 일차원적인 표식이 아니다! “X시스템은 확장 가능하다” 와 같은 말은 의미가 없는 말이다.
부하 기술하기
현재 시스템의 부하를 기술해야 부하 성장 질문 (부하가 두 배로 되면 어떻게 될까? 와 같은 질문) 을 논의 할 수 있다. 이때 부하는 초당 요청수, db의 읽기 대 쓰기 비율, 동시 활성사용자 수, 캐시 적중률과 같은 부하 매개변수라 부르는 값들을 통해 나타낼 수 있다.