본문 바로가기

System Design18

13장 검색어 자동완성 시스템 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 여기서 설계하는 검색 시스템은 당근마켓 과 같은 경우에 적합할 것이라는 생각이 들었다. 잘못 입력했을 경우에 대한 교정이 없고, 단어 위주로 검색을 하게 되는 시스템에 유용할 거라는 생각이 들어서였다. 검색어 자동완성과는 또 다른 이야기이긴 하지만 당근마켓은 검색엔진으로 엘라스틱서치를 사용하고 있다고 한다. 아래 글이 생각나서 링크로 걸어둔다. 당근마켓 검색 엔진, 쿠버네티스로 쉽게 운영하기 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 사용자가 입력하는 단어는 자동완성될 검색어의 첫 부분이어야 하나요? 아니면 중간 부분이 될 수도 있습니까? - 몇 개의 자동완성 검색어가 표시되어야 합니까? - 자동완성.. 2023. 7. 20.
12장 채팅 시스템 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 이번 장에서는 채팅 시스템을 설계해 볼 것이다. 채팅 앱이라고 했을 때 사람들이 떠올리는 것은 제각각이다. 그러니 요구사항을 확실하게 해 두는 것이 아주 중요하다. 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 1:1 채팅 앱입니까? 아니면 그룹 채팅 앱입니까? - 모바일 앱인가요? 아니면 웹 앱인가요? - 처리해야 하는 트래픽 규모는 어느 정도입니까? - 그룹 채팅의 경우에 인원 제한이 있습니까? - 중요 기능으로는 어떤게 있을까요? - 첨부파일도 지원할 수 있어야 하나요? - 사용자 접속상태 표시도 필요한가요? - 메시지 길이에 제한이 있나요? - 종단 간 암호화(end-to-end encryptio.. 2023. 7. 14.
11장 뉴스 피드 시스템 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 개인적으로 이번 장은 두리뭉실하게 나온 부분이 많은 것 같아 너무 아쉬운 장이였다. 용어 통일에서도 조금 아쉬운 면이 있었던 것 같다. 뉴스피드(news feed)란 “뉴스 피드는 여러분의 홈 페이지 중앙에 지속적으로 업데이트되는 스토리들로, 사용자 상태 정보 업데이트, 사진, 비디오, 링크, 앱 활동(app activity), 그리고 여러분이 페이스북에서 팔로우하는 사람들, 페이지, 또는 그룹으로부터 나오는 ‘좋아요’ 등을 포함한다.” - facebook - 페이스북, 인스타그램. 트위터 등에서 사용 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 모바일 앱을 위한 시스템인가요? 아니면 웹? 둘 다 지원.. 2023. 7. 6.
10장 알림 시스템 설계 책에서는 iOS 푸시, 안드로이드 푸시, SMS 메시지, 이메일 에 대해서 다룬다. 한국 기준으로는 알림톡도 적용할 수 있을 것이며 요즘에는 웹 푸시에 점차 활성화 되어가고 있기 때문에 해당 부분도 고려하면 좋을 것이다. 서드파티를 이용하다보면 별별 일이 다 발생된다. 따라서 본문에서 나온대로 오류시 재시도를 할 수 있게 시스템을 구성하거나 오류 발생 시 업무 담당자가 수동으로 트리거 하여 발송할 수 있도록 처리를 해주는 것이 좋을 것이다. 또한 기기 변경 / 연락처 정보 변경 이 발생되었을 경우 어떻게 처리할지에 대한 부분도 고려하면 좋을 것이다. 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 어떤 종류의 알림을 지원해야 하나요? - 실시간 시스템이어야 하나요? - 어떤 종류의 단말을 지원해야 하.. 2023. 6. 29.
9장 웹 크롤러 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 개인적으로 크롤러를 이용해서 자동화 하는 것을 좋아한다고 생각하고 있었는데 이번 챕터를 읽으면서 이런 대규모 크롤러도 만들 수 있다는 것을 알게 된 것 같다. 가볍게 읽을 수 있을 것이라 기대했는데 생각보다 고려할 부분이 많았다. 개요 웹 크롤러의 복잡도는 웹 크롤러가 처리해야 하는 데이터의 규모에 따라 달라진다. 몇 시간이면 끝낼 수 있는 작은 학급 프로젝트 수준일 수도 있고, 별도의 엔지니어링 팀을 꾸려서 지속적으로 관리하고 새선해야 하는 초대형 프로젝트가 될 수도 있다. 1단계 문제 이해 및 설계 범위 확정 웹 크롤러의 기본 알고리즘은 간단하다. 1. URL 집합이 입력으로 주어지면, 해당 URL들이 가.. 2023. 6. 22.
8장 URL 단축기 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 개인적으로 URL 단축기를 만들어 쓰고 있는데 (공개할만한 수준은 아니기에 개인적인 용도로만 사용하고 있다.) 내가 만든 단축기의 경우, Firebase에서 제공하는 hosting에 Firebase의 database 기능을 이용해서 사용하고 있다보니 고려해야 할 부분이 적었다. unique 한 id 생성에 대한 부분도 firebase 자체 기능을 이용해서 크게 신경 쓸 부분이 없었는데 이 책에서는 베이스부터 어떻게 설계해야 하는지에 대해서 설명해줘서 개인적으로 재밌게 보았다. tinyurl 같은 url 단축기를 설계해보자. 1단계 문제 이해 및 설계 범위 확정 시스템 설계 면접 문제는 의도적으로 어떤 정해진 .. 2023. 6. 15.