Top

데이터베이스 신뢰성 엔지니어링 [탄력적인 데이터베이스 시스템 설계와 관리]

  • 원서명Database Reliability Engineering: Designing and Operating Resilient Database Systems (ISBN 9781491925942)
  • 지은이레인 캠벨(Laine Campbell), 채리티 메이저스(Charity Majors)
  • 옮긴이이설민
  • ISBN : 9791161757261
  • 35,000원
  • 2023년 02월 28일 펴냄
  • 페이퍼백 | 428쪽 | 188*235mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

요약

과거 DBA의 역할이 DBRE(DataBase Reliability Engineering)라는 새로운 패러다임을 만나게 되면서 그 역할이 어떻게 변해야 하는지 설명한다. 먼저 DBRE의 개념을 소개하고 백업, 복구, 복제, 인덱스, 모니터링과 같은 데이터베이스 관리의 기초 영역에서부터 스토리지, 보안, 데이터 스토어 등 인프라 관점에서 데이터베이스 관리자의 역할을 살펴본다. 그리고 서비스 및 아키텍처 관점에서 서비스 수준 요구 사항, 위험 평가 관리, 배포 관리, 분산 데이터베이스 설계를 알아보고 마지막으로 DBRE 문화를 형성하는 방법과 DBA에서 DBRE의 역할로 전환할 수 있는 다양한 방법을 살펴본다.

추천의 글

우리는 전반적인 데이터베이스 산업에서 전례 없는 변화와 혼란의 시기를 목격하고 있다. 기술 채택의 생명주기는 새로운 도전과 기회와 함께 머리를 어지럽게 만드는 지점까지 가속화됐다.
아키텍처는 매우 빠르게 진화하고 있어서 지금까지 익숙해진 업무는 더 이상 필요하지 않게 됐으며 그렇게 많이 투자했던 제반 기술은 이제 거의 연관이 없다. 보안, 코드형 인프라, 클라우드의 수용력(예를 들어 서비스형 인프라와 데이터베이스)과 같은 새로운 혁신과 압박으로 인해 우리가 어떻게 구축하고 있는지 재고할 필요성을 느끼게 한다.
필연적으로 기존의 관리성 작업 부하에서 벗어나 아키텍처, 자동화, 소프트웨어 엔지니어링, 지속적인 통합 및 배포, 시스템 편성 기술 등을 강조하는 프로세스로 전환했다. 그동안 우리가 보호하고 관리해 온 데이터의 가치와 중요성은 그 규모만큼이나(혹은 그 이상으로) 증가했고 앞으로도 그 가치가 증가하지 않는 미래는 그려지지 않는다. 우리는 이와 같은 세상에서 무언가 의미 있고 중요한 차이를 만들어낼 수 있는 운이 좋은 위치에 있다.
한때 본인이 뛰어난 데이터베이스 관리자라고 의심 없이 생각했던 많은 사람은 시대의 흐름에 압박 받고 있으며 심지어 뒤처질 위험에 처해 있다. 동시에 이 분야에 뛰어든 새로운 사람들은 조직의 패러다임을 갈망한다. 이 두 가지 상황에 대한 답은 동일하다. 학습의 즐거움, 자기 계발, 긍정적, 열정 그리고 자신감이다. 이는 피할 수 없는 고난과 위험에도 어떤 업무를 맡아 그것을 끝까지 관철시키기 위함이다. 이 책은 데이터베이스 인프라 엔지니어링에 대한 새로운 사고방식을 소개하고 운영, 가이드북, 플레이북 등 우리가 수행하고 재구성했던 모든 것을 새로운 방향으로 이끈다는 점에서 주목할 만한 성과다. 즉, 이것이 바로 데이터베이스 신뢰성 엔지니어링이다.

— 폴 밸리(Paul Vallee)/
파이시안(Pythian)의 사장 겸 CEO

이 책에서 다루는 내용

◆ 서비스 레벨 요구사항과 위험 관리
◆ 운영 가시성을 위한 아키텍처 구축 및 진화
◆ 인프라 엔지니어링 및 관리
◆ 릴리스 프로세스를 원활하게 수행하는 방법
◆ 데이터 저장, 인덱싱, 복제
◆ 데이터 스토어의 특성 식별과 모범 사례
◆ 데이터 스토어 아키텍처의 구성 요소와 데이터 기반의 아키텍처

이 책의 대상 독자

데이터 스토어의 설계, 구축, 안정적인 운영에 흥미가 있는 모든 사람을 대상으로 한다. 독자는 데이터베이스의 지식을 넓히려고 하는 소프트웨어 엔지니어 혹은 같은 이유를 가진 시스템 엔지니어일 수도 있다. 스킬 향상을 원하는 데이터베이스 전문가라면 여기서 가치를 발견할 것이고, 이 업계에 새로 들어온 사람이라면 확실한 이해를 줄 수 있을 것이다.

이 책의 구성

1장은 데이터베이스 신뢰성 엔지니어링(database reliability engineering)의 개념을 소개한다. 원칙을 안내하는 것에서 출발해 운영 중심부로 넘어가고 마지막으로 매슬로우의 욕구 계층(Maslow’s hierarchy of needs)을 기반으로 DBRE의 비전을 구축하기 위한 프레임워크를 제시한다.
2장에서는 서비스 수준 요구 사항(service level requirements)을 설명한다. 이는 제품을 위한 기능 요구 사항만큼이나 중요하다. 이 장은 서비스 수준 요구 사항이 무엇이고 어떻게 그것을 정의하는지 알아본다. 이후에는 이러한 요구 사항을 측정하고 처리하는 방법을 살펴본다.
3장에서는 위험 평가와 관리(risk assessment and management)를 알아본다. 위험의 기초적인 측면을 설명하고 난 후 시스템 및 데이터베이스 엔지니어링에 위험 평가를 접목시키기 위한 실전 프로세스를 살펴본다. 또한 함정과 복잡성도 살펴본다.
4장에서는 운영 가시성(operational visibility)을 다룬다. 지표(metric)와 이벤트를 이야기하고 이를 측정하기 위한 계획을 어떻게 세우는지, 시간이 지남에 따른 반복 작업은 어떤 게 있는지 알아본다. 그리고 모니터링 시스템의 구성 요소와 이를 사용하는 클라이언트를 파헤친다.
5장과 6장에서는 인프라의 엔지니어링과 관리(infrastructure engineering and management)를 자세히 살펴본다. 데이터 스토어를 위한 호스트 구축 원칙을 설명하고 가상화와 컨테이너, 환경설정 관리, 자동화와 오케스트레이션(orchestration)을 살펴본다. 이는 데이터를 저장하고 접근하는 시스템을 구축하고자 구동되는 모든 부분을 이해할 수 있게 도와준다.
7장에서는 백업과 복구(backup and recovery)를 다룬다. DBE를 마스터로 향하게 하는 가장 중요한 부분일 것이다. 데이터는 유실하게 되면 게임 끝이다. 서비스 수준 요구 사항에서 출발해 적절한 백업과 복구 방법을 평가하고, 어떻게 확장하는지 그리고 어떻게 이처럼 중요한 부분과 자주 간과하기 쉬운 운영 측면을 테스트하는지 평가한다.
8장에서는 릴리스 관리(release management)를 살펴본다. 데이터 스토어에 대한 변경 사항을 어떻게 테스트(test), 빌드(build), 배포(deploy)하는지와 데이터 접근 코드나 SQL에 대한 내용도 살펴본다.
9장에서는 보안(security)을 다룬다. 데이터 보안은 기업의 생존에 매우 중요하다. 끊임없이 발전하는 데이터 인프라에서 보안을 계획하고 관리하는 방법에 대한 전략을 다룬다.
10장에서는 데이터 스토리지와 인덱스 그리고 복제(data storage, indexing, and replication)를 다룬다. 관계형 데이터가 저장되는 방법을 설명한 후 이를 문자열 정렬과 로그 구조의 병합 트리(log structured merge tree)를 비교한다. 인덱스의 다양성을 살펴보고 난 후 데이터 복제 토폴로지를 살펴본다.
11장은 데이터 스토어의 필드 가이드(datastore field guide)다. 여기서는 여러분이 평가하고 운영해야 할 데이터 스토어에서 찾을 수 있는 수많은 다양한 속성을 살펴본다.
12장에서는 분산 데이터베이스에 사용되는 좀 더 일반적인 설계 패턴과 연관된 파이프라인을 살펴본다. 먼저 데이터베이스 생태계(ecosystem)에 전통적으로 자리 잡고 있는 아키텍처 구성 요소를 살펴보는 것부터 시작해서 이들이 가진 이점, 복합성, 일반적인 사용법 등을 살펴본다.
13장에서는 여러분 조직에서 데이터베이스 신뢰성 엔지니어링의 문화를 형성하는 방법을 다룬다. 그리고 오늘날의 조직에서 관리자(administrator)에서 엔지니어로서 DBRE의 역할로 전환할 수 있는 다양한 방법을 살펴본다.

저자/역자 소개

지은이의 말

이 책에서는 차세대 데이터베이스 전문가인 데이터베이스 신뢰성 엔지니어(DBRE)를 위한 프레임워크를 보여준다. 먼저 데이터베이스 관리자란 직업에 어떤 선입견이 있는지 떠올려보자. 이 불가사의한 생명체와 협력하고 있는 소프트웨어 또는 시스템 엔지니어들은 다음과 같은 선입견을 갖고 있을 것이다.
전통적으로 데이터베이스 관리자(DBA)는 데이터베이스(DB) 내부를 속속들이 이해했다. 그들은 옵티마이저, 쿼리 엔진, 특정 시스템의 성능 기준에 맞는 튜닝과 제작에 능했다. 이들은 데이터베이스를 더 잘 운영하고자 다른 기술을 습득해야 한다면 그렇게 했다. 컴퓨터 중앙처리장치(CPU)나 디스크 스핀들(disk spindles) 부하를 분산시키는 방법, CPU 친밀도(affinity)를 사용하고자 DB를 설정하는 방법, 스토리지 서브시스템을 평가하는 방법 등을 배웠다.
DBA가 가시성(visibility) 문제에 직면했을 때 그들은 핵심 지표를 식별하기 위한 그래프를 만드는 방법을 배웠다. 아키텍처의 한계에 직면했을 때 캐시 계층에 대해 배웠고, 개별 노드의 한계에 부딪혔을 때 샤딩과 같은 새로운 설계 패턴의 개발을 배우며 주도했다. 이러한 과정에서 캐시 무효화(cache invalidation), 데이터 리밸런싱(data rebalancing), 순차 DB 변경(rolling DB change) 작업 등과 같은 새로운 운영 기법을 정복하고 있었다.
하지만 오랫동안 DBA들은 사일로(silo)와 스노우플레이크(snowflake)를 만드는 비즈니스를 하고 있었다. 그들이 쓰는 도구와 하드웨어, 언어는 달랐다. DBA는 SQL, 시스템 엔지니어는 펄(perl), 소프트웨어 엔지니어는 C++, 웹 개발자는 PHP, 네트워크 엔지니어들은 그들만의 완벽한 어플라이언스를 만들고 있었다. 오직 팀의 절반 정도만 어떤 식으로든 버전 관리 시스템을 사용하고 있었고, 철저하게 서로의 영역에 관여하거나 침범하지 않았다. 마치 다른 나라로 들어가야 하는 것처럼 보였다.
이런 모델이 효과적이고 지속 가능하다는 것을 증명할 수 있는 시대는 얼마 남지 않았다. 이 책은 데이터베이스 엔지니어링 시야를 통해 바라본 신뢰성 엔지니어링의 관점이다. 모든 사례를 다루고 있지는 않지만 여러분의 경험에 빗대어 우리가 중요하게 여기는 것을 설명할 것이다. 이러한 프레임워크는 다양한 데이터 스토어, 아키텍처, 조직 등에 적용할 수 있을 것이다.

지은이 소개

레인 캠벨(Laine Campbell)

패스틀리(Fastly)의 프로덕션 엔지니어링 시니어 디렉터(Senior Director)다. 또한 오바마 포 아메리카(Obama for America), 액티비전 콜 오브 듀티(Activision Call of Duty), 어도비 에코사인(Adobe Echosign), 테크노라티(Technorati), 라이브 저널(Livejournal), 젠데스크(Zendesk)와 같은 기업의 데이터베이스 요구 사항을 처리하는 컨설팅 회사인 팔로미노DB(PalominoDB), 블랙버드(Blackbird)의 설립자이자 CEO였다. 18년 동안 대규모 데이터베이스 및 분산 시스템에서 실무자로 근무했다.

채리티 메이저(Charity Majors)

Honeycomb.io의 CEO이자 창립자다. 허니콤(Honeycomb)은 로그 수집기의 원시 정확도, 시계열 지표의 속도, APM(Application Performance Metrics)의 유연성을 결합해 세계 최초의 진정한 차세대 분석 서비스를 제공한다. 이전에 Parse/Facebook의 운영자였으며 레디스(Redis), 카산드라(Cassandra), MySQL와 더불어 대규모의 몽고DB(MongoDB)를 관리했다. 또한 페이스북의 RocksDB 팀과 긴밀히 협력해 플러그형 스토리지 엔진 API를 사용해서 세계 최초의 Mongo+Rocks를 개발하고 출시했다.

옮긴이의 말

과거 데이터베이스는 스페셜리스트만의 전유물이었다. 설치는 어려웠고 튜닝은 복잡했으며 쿼리 작성에 조금만 신경을 못 써도 서비스에 영향을 미치게 되는 두려운 존재였다. 데이터베이스는 아주 예쁜 유리병과도 같았고 이를 잘 다루려면 오랜 시간 동안 숙련된 장인의 손길이 필요할 것만 같았다. 하지만 최근 클라우드 컴퓨팅, MSA 아키텍처, 자동화 시스템 등의 기술 발달로 현대의 데이터베이스는 더이상 그들만의 전유물이 아니게 됐다. 필요하면 누구나 쉽게 접근할 수 있게 진입장벽이 낮아졌으며, 또한 어느 정도까지는 서비스도 가능할 정도로 표준화됐다.
이러한 시대의 변화는 자연스럽게 데이터베이스를 바라보는 관점의 변화를 만들었으며 이에 따른 데이터베이스 관리자의 역할도 적지 않게 바뀌었다. 이로 인해 DBRE라는 새로운 관점의 데이터베이스 관리가 필요하게 됐고 그에 맞는 요구 사항들이 생겨나기 시작했다. 그렇다면 DBRE의 개념은 무엇이며 그동안 데이터베이스 관리자의 역할과 어떤 점이 다른지 필연적으로 궁금증이 발생할 것이다.
이 책은 이러한 궁금증에 대한 답을 제시한다. 서비스, 아키텍처, 인프라 등 다양한 관점에서 데이터베이스를 바라보고 데이터베이스 관리자의 역할을 재정의해 어떤 배경지식이 필요한지 설명한다. 특히 데이터베이스 신뢰성이라는 관점으로 데이터베이스 관리를 지향하고 있으며 이를 위해 반복적인 관리 포인트를 줄이고 아키텍처나 퍼포먼스에 집중하고자 프레임워크를 만들고 수행 방안을 전개한다. 현대의 데이터베이스가 누구나 사용 가능하다고 해서 모두가 데이터베이스를 능숙하게 다룰 수 있는 것은 분명 아닐 것이다. 근본적으로 데이터베이스 관리자는 내부 구조, 아키텍처, 동작 원리를 학습해 기본기가 바탕이 돼야 함은 DBRE의 관점에서도 변함이 없다.
항상 새로운 기술이 나타나고 변화함에 따라 이에 맞는 도전 과제들을 수행하기 위해서 우리는 배워야 할 게 너무나 많은 세상을 살고 있다. 많은 데이터베이스 관리자는 DBRE라는 용어를 들어보지만 않았을 뿐 이미 이러한 변화를 피부로 느끼며 현업에서 데이터베이스 신뢰성 향상을 위해 노력하고 있을 것이다.
이 책이 최근 시대의 환경 변화로 인해 데이터베이스 관리자의 역할이 어디까지인지 고민하고 있던 사람에게 조금이나마 도움이 되기를 바란다. 이 책을 통해 다양한 관점에서 데이터베이스를 생각해볼 수 있으며 나아가 우리가 책임지고 있는 데이터베이스의 신뢰성을 좀 더 성숙하게 발전시킬 수 있는 전환점이 될 수 있기를 기대한다.

옮긴이 소개

이설민

엔씨소프트, 현대자동차, 카카오페이증권 등을 다니면서 다양한 분야에서 대규모 데이터를 처리하는 데이터베이스 관리자로 근무했다. 이와 관련해 클라우드 솔루션 개발 업무도 리딩하는 업무를 수행했다. 연세대학교 컴퓨터공학 전공으로 석사 학위를 받았으며 현재 SK텔레콤에서 DataBase Reliability Engineering, Automation, AI 기술에 흥미를 갖고 연구하고 있다.

목차

목차
  • 01장. 데이터베이스 신뢰성 엔지니어링 소개
    • DBRE의 원칙
      • 데이터 보호
      • 확장을 위한 셀프 서비스
      • 잡일 제거
      • 데이터베이스는 더 이상 특별한 스노우플레이크가 아니다
      • 소프트웨어와 운영 사이의 장벽 제거
    • 운영 핵심 개요
    • 욕구 단계
      • 생존과 안전
      • 사랑과 소속
      • 존중
      • 자아실현
    • 정리

  • 02장. 서비스 수준 관리
    • 서비스 수준 목표가 필요한 이유
    • 서비스 수준 지표(SLI)
      • 대기시간
      • 가용성
      • 처리량
      • 내구성
      • 비용과 효율성
    • 서비스 목표 정의
      • 대기시간 지표
      • 가용성 지표
        • 가용성에서의 회복 탄력성(resiliency)과 강건성(robustness)
        • 다운타임을 허용하는 설계
      • 처리량 지표
        • 비용 효과적인 지표
        • 고려 사항
    • SLO 관점의 모니터링과 리포팅
      • 가용성 모니터링
      • 대기시간 모니터링
      • 처리량 모니터링
      • 비용과 효율성 모니터링
    • 정리

  • 03장. 위험 관리
    • 위험 고려 사항
      • 알 수 없는 요인과 복잡성
      • 리소스 가용성
      • 인적 요인
      • 그룹 요인
    • 해야 할 것
    • 하지 말아야 할 것
    • 작업 프로세스: 부트스트래핑
      • 서비스 위험 평가
      • 아키텍처 인벤토리
      • 우선순위 지정
        • 심각한 영향(즉각적인 SLO 위반)
        • 중대한 영향(SLO 위반에 임박)
        • 보통의 영향
        • 사소한 영향
        • 통제와 의사결정
        • 식별
        • 평가
        • 완화와 제어
        • 구현
    • 지속적인 반복
    • 정리

  • 04장. 운영 가시성
    • 운영 가시성의 새로운 규칙
      • BI 시스템처럼 OpViz 시스템 처리
      • 표준에 따른 분산 임시 환경의 트렌드
      • 주요 지표의 고해상도 저장
      • 간소화 아키텍처 유지
    • OpViz 프레임워크
    • 데이터 입력
      • 텔레메트리(telemetry)/지표
      • 이벤트
      • 로그
    • 데이터 출력
    • 모니터링 부트스트래핑
      • 데이터가 안전한가?
      • 서비스가 실행 중인가?
      • 소비자가 불편을 겪고 있는가?
    • 애플리케이션 계측
      • 분산 추적
      • 이벤트와 로그
    • 서버와 인스턴스 계측
      • 이벤트와 로그
    • 데이터 스토어 계측
    • 데이터 스토어 커넥션 계층
      • 활용도
      • 포화도
      • 오류
    • 내부 데이터베이스 가시성
      • 처리량과 대기시간 지표
      • 커밋, 리두, 저널링
      • 복제 상태
      • 메모리 구조
      • 잠금과 동시성
    • 데이터베이스 객체
    • 데이터베이스 쿼리
    • 데이터베이스 어썰트와 이벤트
    • 정리

  • 05장. 인프라 엔지니어링
    • 호스트
      • 물리 서버
      • 시스템과 커널 운영
        • 사용자 리소스 제한
        • I/O 스케줄러
        • 메모리 할당과 파편화
        • 스와핑
        • 불균일 메모리 접근
        • 네트워크
        • 스토리지
        • 스토리지 용량
        • 스토리지 처리량
        • 스토리지 대기시간
        • 스토리지 가용성
        • 내구성
      • 스토리지 전용 네트워크
      • 물리 서버의 장점
      • 물리 서버의 단점
    • 가상화
      • 하이퍼바이저
      • 동시성
      • 스토리지
      • 활용 사례
    • 컨테이너
    • 서비스형 데이터베이스
      • 서비스형 데이터베이스의 과제
      • DBRE와 DBaaS
    • 정리

  • 06장. 인프라 관리
    • 버전 관리
    • 환경설정 정의
    • 환경설정에서의 구축
    • 환경설정 유지 보수
      • 환경설정 정의 시행
      • 설정 동기화
      • 컴포넌트 재배포
    • 인프라 정의와 오케스트레이션
      • 모놀리식 인프라 정의
      • 수직 분할
      • 계층 분할(수평적 정의)
    • 테스트와 컴플라이언스 승인
    • 서비스 카탈로그
    • 종합 시나리오
    • 개발 환경
    • 정리

  • 07장. 백업과 복구
    • 핵심 개념
      • 물리적과 논리적
      • 온라인과 오프라인
      • 전체, 증분, 차등
    • 복구할 때 고려 사항
    • 복구 시나리오
      • 계획된 복구 시나리오
        • 새로운 프로덕션(production) 노드와 클러스터
        • 다른 환경 구축
        • 데이터 스토어 다운스트림용 ETL과 파이프라인 프로세스
        • 운영 작업 테스트
      • 계획되지 않은 시나리오
        • 사용자 오류
        • 애플리케이션 오류
        • 인프라 서비스 오류
        • 운영체제 및 하드웨어 오류
        • 하드웨어 장애
        • 데이터 센터 장애
      • 시나리오 범위
      • 시나리오 영향도
    • 복구 전략 구조
      • 블록 쌓기 1: 탐지
        • 사용자 오류
        • 애플리케이션 오류
        • 인프라 서비스
        • 운영체제와 하드웨어 오류
        • 하드웨어와 데이터 센터 장애
      • 블록 쌓기 2: 스토리지 계층화
        • 온라인, 고성능 스토리지
        • 온라인, 저성능 스토리지
        • 오프라인 스토리지
        • 객체 스토리지
      • 블록 쌓기 3: 다양한 도구 상자
        • 전체 물리 백업
        • 증분 물리 백업
        • 전체 및 증분 논리 백업
        • 객체 스토어
      • 블록 쌓기 4: 테스트
    • 복구 전략 정의
    • 온라인, 전체 및 증분 백업과 빠른 스토리지
      • 사용 사례
      • 검출
      • 계층형 스토리지
      • 도구 상자
      • 테스트
    • 온라인, 전체 및 증분 백업과 느린 스토리지
      • 사용 사례
      • 검출
      • 계층형 스토리지
      • 도구 상자
      • 테스트
    • 오프라인 스토리지
      • 사용 사례
      • 검출
      • 계층 스토리지
      • 도구 상자
      • 테스트
    • 객체 스토리지
      • 사용 사례
      • 검출
      • 테스트
    • 정리

  • 08장. 릴리스 관리
    • 교육과 협업
      • 대외 활동
      • 대화 조성
      • 도메인 특화 지식
        • 아키텍처
        • 데이터 모델
        • 모범 사례와 표준
        • 도구
      • 협업
    • 통합
      • 전제 조건
        • 버전 관리 시스템
        • 데이터베이스 구축 자동화
        • 테스트 데이터
        • 데이터베이스 마이그레이션과 패키징
        • CI 서버와 테스트 프레임워크
    • 테스트
      • 테스트 친화적인 개발 예제
        • 추상화와 캡슐화
        • 효율화
      • 사후 커밋 테스트
        • 사전 빌드
        • 빌드
        • 사후 빌드
      • 전체 데이터 세트 테스트
      • 다운스트림 테스트
      • 운영 테스트
    • 배포
      • 마이그레이션과 버전 관리
      • 영향도 분석
        • 객체 잠금
        • 리소스 포화점
        • 데이터 무결성 이슈
        • 복제 지연
      • 마이그레이션 패턴
        • 패턴: 잠금을 발생시키는 작업
        • 패턴: 높은 리소스를 발생시키는 작업
        • 패턴: 롤링 마이그레이션
        • 마이그레이션 테스트
        • 롤백 테스트
      • 수동과 자동화
    • 정리

  • 09장. 보안
    • 보안의 목적
      • 침입자로부터 데이터 보호
      • 의도적 피해에서 보호
      • 사고에 의한 피해에서 보호
      • 노출에서의 데이터 보호
      • 컴플라이언스와 감사 표준
    • 함수형 데이터베이스 보안
      • 교육과 협업
      • 셀프 서비스
      • 통합과 테스트
      • 운영 가시성
        • 애플리케이션 계층 계측
        • 데이터베이스 계층 측정
        • OS 계층 측정
    • 취약점과 악용
      • STRIDE
      • DREAD
      • 기본 예방책
      • 서비스 거부
        • 완화
        • 리소스 관리와 부하 차단
        • 데이터베이스 액세스와 작업 부하의 지속적인 개선
        • 로깅과 모니터링
      • SQL 인젝션
        • 완화
        • 프리페어드 스테이트먼트
        • 입력 유효성 검사
        • 피해 감소
        • 모니터링
    • 네트워크와 인증 프로토콜
    • 데이터 암호화
      • 재무 데이터
      • 개인 건강 데이터
      • 사생활 개인 데이터
      • 군사 및 정부 데이터
      • 기밀/민감한 비즈니스 데이터
      • 전송 데이터
        • 암호 스위트의 해부
        • 네트워크 내부 통신
        • 네트워크 외부 통신
        • 안전한 데이터 연결 설정
      • 데이터베이스 데이터
        • 애플리케이션 수준의 보안
        • 데이터베이스 플러그인 암호화
        • 투명한 데이터베이스 암호화
        • 쿼리 성능 고려 사항
      • 파일 시스템 데이터
        • 파일 시스템에서의 데이터 암호화
        • 파일 시스템 암호화
        • 장비 수준의 암호화
    • 정리

  • 10장. 데이터 스토리지, 인덱싱, 복제
    • 데이터 구조 스토리지
      • 데이터베이스 행 스토리지
        • B-트리 구조
      • 문자로 정렬된 테이블과 구조화된 로그 머지 트리
        • 블룸 필터
        • 구현
      • 인덱싱
        • 해시 인덱스
        • 비트맵 인덱스
        • B-트리 순열
      • 로그와 데이터베이스
    • 데이터 복제
      • 싱글 리더
        • 복제 모델
        • 복제 로그 형식
        • 싱글 리더 복제 사용
        • 단일 리더 복제의 도전 과제
        • 단일 리더 복제 모니터링
      • 멀티리더 복제
        • 멀티리더 사용 사례
        • 기존의 다방면 복제의 충돌 해결 방안
    • 정리

  • 11장. 데이터 스토어 필드 가이드
    • 데이터 스토어의 개념적 속성
      • 데이터 모델
        • 관계형 모델
        • 키-값 모델
        • 문서 모델
        • 내비게이션 모델
      • 트랜잭션
        • ACID
        • 원자성
        • 일관성
        • 격리성
        • 내구성
      • BASE
    • 데이터 스토어의 내부 속성
      • 스토리지
      • 유비쿼터스 CAP 정리
        • 일관성
        • 가용성
        • 파티션 허용
      • 일관성과 대기시간의 트레이드오프
      • 가용성
    • 정리

  • 12장. 데이터 아키텍처 표본
    • 아키텍처 구성 요소
      • 프론트엔드 데이터 스토어
      • 데이터 접근 계층
      • 데이터베이스 프록시
        • 가용성
        • 데이터 무결성
        • 확장성
        • 대기시간
      • 이벤트와 메시지 시스템
        • 가용성
        • 데이터 무결성
        • 확장성
        • 대기시간
      • 캐시와 메모리 스토어
        • 가용성
        • 데이터 무결성
        • 확장성
        • 대기시간
    • 데이터 아키텍처
      • 람다와 카파
        • 람다 아키텍처
        • 카파 아키텍처
      • 이벤트 소싱
      • CQRS
    • 정리

  • 13장. DBRE 사례 만들기
    • 데이터베이스 신뢰성 문화
      • 장벽 파괴
        • 아키텍처 프로세스
        • 데이터베이스 개발
        • 프로덕션 마이그레이션
        • 인프라 설계와 배포
      • 데이터 기반 의사결정
      • 데이터 무결성과 회복성
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ p.112: 박스, 아래에서 2행]
사용자의 댜기시간에
->
사용자의 대기시간에