[시스템 디자인 개념 정리 - 데이터 베이스 편] 출, 퇴근 시간 또는 점심시간 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

 • 

저장 96조회 5,120

댓글 0

    함께 읽은 게시물

    한 번만 vs 한 번도

    

    ... 더 보기

     • 

    조회 571


    🕊️ 코딩테스트를 위한 리트코드 60

    많은 회사들이 채용 프로세스의 과정 중에 하나로 코딩 테스트를 가지고 있습니다. 벼락치기로 준비하기도 힘들 뿐더러 요령을 알아야 하기 때문에 취준생들이 꽤나 골치아파 합니다. 뻔한 말이지만 꾸준히 하는 것 밖에는 답이 없는 것 같습니다. 오늘은 '코딩 인터뷰를 위한 60가지 리트코드 문제'를 가져왔습니다. 구글 시트로 깔끔하게 정리된 버전도 있어서 후다닥 가져왔습니다. 저자에게 감사를(_ _) https://docs.google.com/spreadsheets/d/1Y98QKaYPazWImEt1nA_ocp... 더 보기

    60 LeetCode questions to prepare for coding interview

    Medium

    60 LeetCode questions to prepare for coding interview

     • 

    댓글 2 • 저장 1,081 • 조회 15,013


    포폴 코칭 시 기억에 남는 대화: 페르소나편

    🧑‍💻 멘티:

    ... 더 보기

    개발자의 장애 공유 문화

    ... 더 보기

    개발자의 장애 공유 문화

    K리그 프로그래머

    개발자의 장애 공유 문화

     • 

    저장 11 • 조회 2,536


    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 110 • 조회 3,021


    📰 Z세대의 80%가 AI와 결혼할 의향이 있다고

    “AI 챗봇 회사 Joi AI가 Z세대 2,000명을 대상으로 설문 조사를 실시한 결과, Z세대의 80%가 AI와 결혼할 의향이 있다고 답했습니다.”

    ... 더 보기