DB 엔지니어?
- DB 구성 및 설계
- DB Replication:
- 재난 상황을 대비하여 Disaster Recovery 정책 수립
- DB 백업 및 복구
- CPU utilization을 보면서 비상 사태를 대비할 것
- DB 용량 산정
- scale-out: db 해당 사이즈를 여러개
- scale-up: db 사이즈를 크게
- DB 최적화
- query per second를 측정하여 최적화
- DB 보안
- 접속 권한에 대한 보안 필요!
- DB 트러블 슈팅
- 현상 및 원인 파악 -> 문제해결/정상화 -> 원인 상세 분석 -> 재발 방지 대책 수립
서비스 특징에 따라 DB 정하기
- RDBMS
- 대표 벤더: Oracle, MySQL, PostgreSQL, SQLite
- 저장 구조: 테이블, 칼럼, 로우
- 스키마: 변경에 어려움
- 확장: 수직적 확장
- 우선사항: ACID
- NoSQL
- 대표 벤더: redis, mongoDB, casandra, HBASE
- 저장 구조: Document, Key-Value, Graph
- 스키마: 동적 변경 가능
- 확장: 수평적 확장
- 우선 사항: 유연한 사용, 확장성, BASE
DB Key Point
1. OLTP
2. ACID
3. MVCC
DB 엔지니어의 미래
- 인프라 전반을 이해하기
- 클라우드 & 컨테이너 환경에 대한 이해
- DBA + 개발자 => DevOps로 나아가기
NoSQL: Document DB, Key Value DB, GraphDB
- Document DB (mongoDB)
- json document로 데이터 저장
- 데이터의 포맷이 일관될 필요 없음
- Key Value DB (CassandraDB, DynamoDB)
- 많이 쓰고 개빨리 읽어야 할 때
- Graph DB (Tao)
- column, document 필요없음
- 각 노드 사이 관계 알아야 할 때
- 각각의 엔티티 만들고 연결관계 저장
- 페이스북에서 사용