01장: 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션

데이터 시스템의 기초

01장: 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션

오늘날 소프트웨어는 계산 중심 과는 다르게 데이터 중심적이다

  • 데이터 베이스
  • 캐시
  • 검색 색인
  • 스트림 처리
  • 일괄 처리

소프트웨어 시스템의 관심사

  • 신뢰성
  • 확장성
  • 유지보수성

신뢰성

  • 애플리케이션은 사용자가 기대한 기능을 수행한다
  • 시스템은 사용자가 범한 실수나 예상치 못한 소프트웨어 사용법을 허용할수 있다
  • 시스템 성능은 예상된 부하와 데이터 망에서 필수적인 사용 사례를 충분히 만족한다
  • 시스템은 허가되지 않은 접근과 오남용을 방지한다

잘못될수 있는 일을 결함이라고 부른다 결함을 예측하고 대처할수 있는 시스템을 내결함성 또는 탄력성을 지녔다고 말한다
고의적으로 결함을 유도함 -> 카오스 몽키

  • 하드웨어 결함
  • 소프트웨어 오류
  • 인적 오류

신뢰성은 얼마나 중요할까?

확장성

확장성은 증가한 부하에 대처하는 시스템 능력을 설명하는 데 사용하는 용어

  • 부하 기술하기
  • 성능 기술하기
    • 처리량, 응답시간
  • 부하 대응 접근 방식
    • 스케일업, 스케일 아웃
    • 비공유 아키텍처

유지보수성

  • 운용성: 운영의 편리함 만들기
  • 단순성: 복잡도 관리
    • 우발적 복잡도를 줄인다
  • 발전성: 변화를 쉽게 만들기
    • 조직 프로세스 애자일

요구사항에는 기능적 요구사항과 비기능적요구사항

참조