본문 바로가기
Data/Data Engineering & Analystics

데이터 중심 애플리케이션 설계 : 1장 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션

by DenverAlmighty 2024. 3. 21.

LDM 3기 책 스터디 발표 자료이다. 

 

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

한줄 요약

- 데이터 중심 어플리케이션이란?
데이터 , 데이터 복잡성, 데이터가 변하는 속도 등 데이터가 주요 도전 과제인 애플리케이션

- 신뢰성 / 확장성 / 유지보수성 3가지 핵심 요소를 고려해 설계해야한다. 

 

 

요약

더보기

 

1. 데이터 중심 어플리케이션이란

  • 개념
    • 데이터 중심 어플리케이션이란?
      데이터 , 데이터 복잡성, 데이터가 변하는 속도 등 데이터가 주요 도전 과제인 애플리케이션
    • 계산 중심 어플리케이션이란?
      CPU 사이클이 병목이 되는 애플리케이션
  • 데이터 중심 어플리케이션의 표준 구성 요소들
    • 데이터 베이스
      구동 애플리케이션이나 다른 애플리케이션에서 나중에 다시 데이터를 찾을 수 있게 데이터 저장
      제품 : MySQL, PostgresSQL, Oracle
    •  
    • 캐시
      읽기 속도 향상을 위해 값비싼 수행 결과를 기억
      제품 : Redis, Memcached
    • 검색 색인
      사용자가 키워드로 데이터를 검색하거나 다양한 방법으로 필터링할 수 있게 제공
      제품 : elasticsearch, Solr, apache Lucene
    • 스트림 처리(Stream Processing)
      비동기 처리를 위해 다른 프로세스로 메시지 전달
      제품 : apache Kafka
    • 일괄 처리(Batch Processing)
      주기적으로 대량의 데이터를 분석
      제품 : apache spark
더보기

2. 소프트웨어 시스템의 3가지 핵심 요소  : 신뢰성 / 확장성 / 유지보수성

1) 신뢰성

  • 하드웨어 / 소프트웨어 / 인적 오류로부터 얼마나 잘 견디는가
  • 목표 : 결함(Fault)을 예측하고 대처할 수 있는 시스템
  • 결함이란?
    • 하드웨어 결함
      • 하드디스크 고장
      • 정전 사태
      • 네트워크 케이블 유실
        • 잘못된 특정 입력이 있을 때 중단되는 소프트웨어 버그
        • CPU 시간, 메모리, 디스크 등 공유 자원을 과도하게 사용하는 일부 프로세스
        • 시스템의 속도가 느려져 반응이 없거나 잘못된 응답을 반환하는 서비스소프트웨어 오류
      • 인적 오류
        • 운영자의 설정& 조작 오류

2) 확장성

  • 목표 : 증가하는 부하에 대처할 수 있는 시스템
  • 성능 지표 3
    • 처리량(throughput) : 초당 처리할 수 있는 레코드 수
    • 서비스 응답 시간(response time) : 클라이언트가 요청을 보내고 응답을 받는 사이의 시간 
    • 꼬리 지연시간(tail latency) : 상위 백분위 응답 시간으로, 응답 시간이 길게 발생한 상황의 지표
  • 부하 대응 접근 방식
    • 용량 확장(scaling up) = 수직 확장(vertical scaling) : 장비 성능/용량 증가
    • 규모 확장(scaling out) = 수평 확장(horizontal scaling) : 장비 수 증가
    • 탄력적 시스템(elastic system) : 부하 증가를 감지하면 컴퓨팅 자원을 자동으로 추가하는 시스템

3) 유지보수성

  • 목표 : 지속적으로 이어지는 시스템
  • SW설계 원칙 3
    • 운용성 : 운영의 편리함 만들기
    • 단순성 : 복잡도 관리
    • 발전성 : 변화를 쉽게 만들기
    • -> 이 세가지를 고려헤 데이터 엔지니어가 시스템을 이해하기 쉽고, 운영, 변화하기 쉽도록 만들어라
    •  
    •  
        •  

감상

요즘 읽고있는 '데이터 엔지니어를 위한 97가지 조언' 이라는 책에 비슷한 내용이 있다. 

31번 조언 '안정적인 데이터 처리를위한 5가지 모범 사례'. 67번 '데이터 파이프라인의 관건은 속도가 아니다' 등