[시스템 디자인 개념 정리 - 데이터 베이스 편] 출, 퇴근 시간 또는 점심시간 30분 투자해서 시스템 디자인 면접에 가장 중요한 개념 정리 공부할 때 보면 좋은 영상 내용을 간단하게 요약해서 올립니다. 시스템 디자인 면접 준비 중이라면 아래 9가지 개념에 대해 알아두는 것이 좋습니다. 시스템의 요구 조건에 적합한 것을 빨리 캐치하고 언급하는 것이 좋습니다. 1️⃣ Cache 영상에서 공유한 예: - Read 쿼리 양이 많을 때 데이터 베이스로 쿼리 하지 않고 캐시(Cache)하기 - Latency를 줄이기 위해 특정 Response를 캐시(Cache)하기 (데이터 접근 속도 향상) 영상에서 공유한 옵션 - Redis, Memcache etc 2️⃣ File Storage 영상에서 공유한 예: - 사이트에 디스플레이할 이미지나 영상 저장할 때 영상에서 공유한 옵션 - Amazon S3 + CDNs 3️⃣ Text Search Engine 영상에서 공유한 예: - 넷플릭스에서 영화 검색할 때 - 아마존에서 구매할 물건 검색할 때 - 우버 앱에서 목적지 검색할 때 영상에서 공유한 옵션 - Elasticsearch, Solr etc 4️⃣ Fuzzy Text Search 영상에서 공유한 예: - 유저가 오타로 검색했을 때 (예: Airport대신 Airoprt로 검색한 경우) 영상에서 공유한 옵션 - Elasticsearch, Solr etc 3번과 4번은 데이터 베이스가 아니고 서치 엔진입니다. 데이터 베이스는 데이터가 손실되지 않도록 보장하지만, Elasticsearch와 Solr는 일반 데이터 베이스만큼 좋은 Availability와 Redundancy를 보장하지 않습니다. 따라서 프라이머리 소스를 저장하는 데 사용하는 것은 좋지 않습니다. 5️⃣ Timeseries Database 영상에서 공유한 예: - 메트릭 (metric) 같은 데이터 저장할 때 영상에서 공유한 옵션 - InfluxDB, OpenTSDB 시계열 데이터 베이스는 관계형 데이터 베이스의 확장 버전입니다. 간단하게 말하자면 관계형 데이터 베이스의 기능 일부가 없고, 시계열 데이터에 최적화된 기능이 일부가 추가되어 있습니다. 시계열 데이터 베이스 사용자는 메트릭 데이터를 자주 업데이트하지 않습니다. 사용자는 메트릭 데이터를 쿼리할 때 시간 범위에 대한 대량 쿼리를 합니다. 그리고 항상 "추가 모드"로 사용하기 때문에 이에 최적화되어있습니다. 6️⃣ Data Warehouse 영상에서 공유한 예: - 분석을 위해 대용량 데이터를 저장하려는 경우 - 애널리틱 데이터를 저장하는 경우 영상에서 공유한 옵션 - Hadoop 이런 데이터의 경우 offline reporting(리얼타임 아님)으로 사용합니다. 쿼리 시간이 굉장히 길 수 있음. 7️⃣ RDBMS 영상에서 공유한 예: - 정보가 구조화되어 있을 때 - ACID 게런티가 필요할 때 ACID란? ACID는 Atomicity, Consistency, Isolation, Durability의 줄임말입니다. (ACID 설명: https://databricks.com/glossary/acid-transactions) 영상에서 공유한 옵션 - MySQL, PostgreSQL, Oracle etc ACID 개런티가 필요할 때 스트럭처 데이터 베이스가 필요합니다 (예: 은행 트랜잭션/뱅킹). ACID 개런티 필요하지 않은 경우 아래 두 옵션도 사용 가능합니다. 8️⃣ NoSQL (Document DB) 영상에서 공유한 예: - 아마존 같은 이커머스 인벤토리 만들 때. 인벤토리 마다 속성 정보 항목이 다르기 때문에 (예: 셔츠 아이템은 사이즈 S, M, L의 속성이 있지만, 냉장고 사이즈의 경우 길이, 높이, 깊이와 같은 치수 속성이 있다) 영상에서 공유한 옵션 - MongoDB, CouchBase etc 구조화된 정보는 RDBMS에 JSON으로 형태로 저장할 수 있지만 NoSQL DB는 이러한 종류의 쿼리를 보다 최적화된 방식으로 처리하도록 설계되어 있습니다. 9️⃣ NoSQL (Columnar DB) 영상에서 공유한 예: - 복잡한 쿼리가 필요하지 않고 자료가 구조화되어 있지 않으며 끊임없이 데이터가 증가할 때 (예: 우버 드라이버가 운전할 때 계속 전송되는 위치 정보) 영상에서 공유한 옵션 - Cassandra, Hbase etc 🪴 함께 읽으면 좋은 글: [시스템 디자인 면접 잘하는 법] https://careerly.co.kr/comments/60956 [📚 시스템 디자인 해외 취업 인터뷰 책 추천] https://careerly.co.kr/comments/54566 [알고리즘 문제 풀기 공부하는 법] https://careerly.co.kr/comments/60668

Database Design Tips | Choosing the Best Database in a System Design Interview

YouTube

Database Design Tips | Choosing the Best Database in a System Design Interview

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 7월 3일 오전 4:01

 • 

저장 94조회 5,048

댓글 0