책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 데이터베이스 개론
· ISBN : 9788996311409
· 쪽수 : 574쪽
· 출판일 : 2020-02-20
책 소개
목차
머리말
추천사
책의 특징과 구성
CHAPTER 1. NoSQL 개념
1.1 NoSQL이란?
1.2 NoSQL의 시대적 요구
1.3 NoSQL의 장점
1.4 NoSQL의 종류
1.5 NoSQL 제품군
1.6 MongoDB EcoSystem
1.7 적용 사례
CHAPTER 2. MongoDB 설치 및 데이터 처리
2.1 MongoDB란?
2.1.1 용어 설명(Terminology)
2.1.2 설치 환경 및 지원 드라이버
2.1.3 MongoDB 발전 추이
2.2 MongoDB 시작과 종료
2.2.1 MongoDB 서버 시작
2.2.2 MongoDB 서버 종료
2.2.3 기능 호환 버전 (feature compatibility version)
2.3 데이터 처리
2.3.1 Collection 생성과 관리
2.3.2 Insert & Update & Remove
2.3.3 Unique ID
2.3.4 JSON 타입과 BSON 타입
2.3.5 Data Type 종류
2.3.6 연산자(Operator) 종류
2.3.7 빅 데이터의 추출과 분석
2.3.8 MapReduce 기능
2.4 Lock 정책
2.4.1 Isolation과 Transaction
CHAPTER 3. 인덱스의 생성과 관리&사용자 관리
3.1 인덱스 생성과 관리
3.2 인덱스 재 구성과 삭제
3.3 인덱스의 종류
3.3.1 Single?key 인덱스와 Compound key 인덱스
3.3.2 Non?Unique 인덱스 & Unique 인덱스
3.3.3 Sparse 인덱스
3.3.4 Partial 인덱스
3.3.5 Background 인덱스
3.3.6 Covered 인덱스
3.3.7 GeoSpatial 인덱스
3.3.8 GeoMetry 인덱스
3.3.9 wildCard Index
3.4 사용자 생성과 관리
3.4.1 passwordPrompt() 메쏘드
3.5 시스템 롤과 사용자 롤
3.6 Auditing 기능
3.7 Client Side Field Level Encryption
CHAPTER 4. MongoDB를 위한 Data Modeling
4.1 MongoDB의 Data Modeling
4.2 MongoDB 설계 주요 특징
4.2.1 설계 개념
4.2.2 Rich Document 구조
4.2.3 중첩 구조
4.2.4 논-스키마 구조
4.2.5 비정형 데이터 구조
4.2.6 유연한 서버 구조
4.3 MongoDB 설계 기준
4.4 MongoDB 설계 패턴
4.4.1 Embedded Document(Rich Document)
4.4.2 Extent Document(Rich Document)
4.4.3 Link
4.4.4 DBRef 함수를 이용한 Link
4.4.5 N:M 관계 패턴
4.4.6 상속 패턴
4.4.7 계층형 패턴
4.4.8 View
4.4.9 Materialized View
4.5 Validator
4.5.1 $jsonSchema 연산자
4.6 Collection Diagram
4.7 Logical 설계
4.7.1 Database 설계
4.7.2 사용자 설계
4.8 실습 시나리오
4.8.1 실습 시나리오(영업관리 시스템)
4.8.2 실습 시나리오(비디오 렌털관리 시스템)
4.8.3 실습 시나리오(호텔객실 예약관리 시스템)
CHAPTER 5. 논리적 구조& 물리적 구조
5.1 MongoDB 서버 구조
5.2 스토리지 엔진
5.2.1 WiredTiger 저장엔진
5.2.2 Memory Mapping 저장엔진
5.3 Gobal Lock & PageFault
5.4 Text Search 엔진
5.5 GridFS
5.6 MongoDB 환경 명령어
5.7 MongoDB 관리 명령어
CHAPTER 6. Sharding System
6.1 Sharding System이란?
6.2 Sharding 구축을 위한 시스템 환경
6.3 CONFIG 서버
6.4 MongoS 프로세스
6.5 Sharding 환경 설정
6.5.1 샤드 서버 테스트
6.6 Sharding 시스템 구축 시 고려 사항
6.7 Shard 서버의 추가와 삭제
6.8 Chunk 크기 관리
6.9 샤딩 System의 문제점
6.10 ZONE Sharding
6.11 수동 샤딩
CHAPTER 7. Replica & ReplicaSets
7.1 Master & Slave 서버
7.1.1 MASTER & SLAVE 서버 환경 설정
7.1.2 MASTER & SLAVE 복구 방법
7.2 ReplicaSets
7.2.1 Priority(우선 순위)
7.2.2 멤버의 유형
7.2.3 Replica Sets 환경 설정
7.2.4 FailOver
7.2.5 replSetGetStatus 메쏘드
7.2.6 복제 서버의 추가와 삭제
7.2.7 OpLog의 크기 변경
7.2.8 리프리카셋 멤버의 동기화
7.2.9 dbHash 기능
7.2.10 Master-Slave를 ReplicaSets 서버로 변환
7.3 Change Stream
7.4 MongoClient API
7.4.1 Connection String Uri Format
7.5 물리적 설계
7.5.1 Collection 물리적 설계
7.5.2 MongoDB Storage Engine & HW 사양 결정
CHAPTER8 MongoDB 성능 튜닝
8.1 Performance Tuning Point
8.2 디자인 튜닝(Design Tuning)
8.3 문장 튜닝(Statement Tuning)
8.3.1 Profiling 시스템
8.3.2 Profiler 환경 분석 결과 및 상태 확인
8.3.3 Profile Collection의 재생성 및 관리
8.3.4 $planCacheStats 연산자
8.3.5 Profiling 분석 결과
8.3.6 Hint 함수와 Explain 함수
8.4 아키텍처 튜닝(Architecture Tuning)
8.5 인스턴스 튜닝(Instance Tuning)
8.6 하드웨어 튜닝(Hardware Tuning)
8.6.1 mongoperf 유틸리티
CHAPTER 9. MongoDB 백업/복구 & 유틸리티
9.1 백업과 복구 유형
9.2 MongoDump & MongoRestore
9.2.1 MongoDump
9.2.2 MongoRestore
9.3 BsonDump
9.4 MongoImport & MongoExport
9.4.1 MongoExport
9.4.2 MongoImport
9.5 CopyDatabase & CloneDatabase
9.5.1 CopyDatabase
9.5.2 Copy Remote Database
9.6 MongoStat & MongoTop
9.6.1 MongoStat 유틸리티
9.6.2 MongoTop 유틸리티
9.6.3 Web Monitoring
9.6.4 MongoDB Log 수집 & 분석
9.6.5 Log Level 설정 명령어
9.6.6 enableFreeMonitoring
INDEX
책속에서
● 머리말
올해는 저에게 있어서 매우 의미 있는 한 해입니다.
1983년 IT 분야에 몸담은 이래로 30년째 되는 해이기 때문 입니다.
당시에는 MainFrame을 기반으로 하는 정보 시스템이 주된 환경이었는데 지금과는 비교할 수 없을 만큼 하드웨어 장치는 매우 열악하여 시스템 운영과 관리에 많은 비용과 시간이 요구될 수 밖에 없었습니다.
컴퓨터가 발명된 이래로 기업에서 발생하는 데이터들은 파일 시스템을 기반으로 저장, 관리되었던 시대였습니다.
이후, 1988년 올림픽이 개최되던 해에 우리나라에도 퍼스널 컴퓨터가 보급되기 시작하면서 클라이언트/서버 환경의 개발 패러더임이 도래하게 되었고 관계형 데이터베이스 기술은 새로운 저장 기술로써 각광 받게 되는 계기를 맞게 됩니다. 오늘날, 대 부분의 기업 환경에서 사용하고 있는 관계형 데이터베이스 기술의 시발점이 된 것입니다.
1980년대 말부터 오늘날에 이르기까지 약 30년의 세월 동안 관계형 데이터베이스는 수 많은 기업 환경에서 널리 사용되어 왔지만 최근 무선 인터넷 망의 발전과 더불어 트위터, 카카오톡 등과 같은 SNS의 급속한 발전과 함께 우리 사회는 겉잡을 수 없을 만큼의 빅 데이터가 발생하고 있는 것이 현실입니다.
하지만, 1970년대, 트랜잭션 데이터의 효율적 관리를 위해 제공되었던 관계형 데이터베이스로는 이러한 빅 데이터를 빠르고 안전하게 저장, 관리하는 것은 결코 쉬운 일이 아니게 된 것 입니다.
이에 맞는 적절한 데이터 저장 기술이 많은 사용자들에 의해 요구되었는데 이것이 NoSQL 기술이 관심 받고 있는 이유이기도 합니다.
저는 30년 전에 파일 시스템을 기반으로 데이터를 저장, 관리했던 초창기부터 관계형 데이터베이스를 기반으로 했던 1990년대와 2000년대에 이르기까지 30년의 세월을 데이터 저장 기술의 발전과 함께 살아 온 산증인이라 감히 자부하고 싶습니다.
이제 30년째 되는 올해, 그 동안 집필해 왔던 관계형 데이터베이스 관련 서적들에 이어 NoSQL 관련 기술 서적을 출간하게 되면서 무한한 기쁨과 감회를 느끼고 있으며 데이터베이스 분야의 전문가로써 후학들에게 좋은 지침이 될 수 있기를 진심으로 바라며 이 책의 출간을 알리고자 합니다.
이 책의 집필을 응원하고 지원해 주신 MongoDB 공식 한국 사용자 그룹의 많은 분들과 미국 MongoDB inc.(MongoDB 개발 및 기술지원 업체)의 Adam Kroll 그리고 관련자 분들께 지면으로 나마 감사의 마음을 전합니다.
마지막으로 현장 실무자를 대상으로 수행하고 있는 데이터베이스 교육 사업에서 오랫동안 호흡을 맞추며 도와주신 한국데이터진흥원 김창식 선임연구원, 조진율 연구원님께 지면으로 감사의 말씀을 꼭 전하고 싶습니다. 그리고, (주)플랜정보기술에서 함께 근무하며 NoSQL 기술 전파에 열정을 쏟고 있는 김리나 대리에게도 고마움을 전합니다.