일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- nnictl
- 구글클라우드서밋
- golang
- Associate
- DataFlow
- 쿠버네티스
- 머신러닝
- 딥러닝
- 구글클라우드
- 마이크로서비스
- 도커
- 네트워크
- 구글 클라우드
- docker
- 클라우드 자격증
- cdk
- GCP
- coursera
- 자격증
- 구글클라우드플랫폼
- 클라우드
- go
- aws
- AWS #빅데이터 #분석 #데이터
- Dataproc
- 코세라
- Kubernest
- 구글
- cloud
- Today
- Total
목록프로그래밍/시스템 디자인 (6)
JD의 블로그
구글 검색 또는 아마존 검색창에 단어를 치게 되면 검색어와 관련된 검색어를 자동으로 완성해서 보여주는 것을 찾아볼 수 있었을 것이다. 이런 기능은 많은 제품에서 중요하게 사용되는 기능이다. 여기서는 많이 이용된 검색어 k개를 자동완성하여 출력하는 시스템을 설계해 보도록 하겠다. 1단계 문제 이해 및 설계 범위 지정 1. 사용자가 입력하는 단어는 자동완성될 검색어의 첫 부분이어야 하는지 중간 부분이어도 상관없는지 물어보기 EX) 첫 부분으로 한정한다. 2. 몇 개의 자동완성 검색어가 표시되어야 하는지 물어보기 EX) 5개 3. 자동완성 검색어 5개를 고르는 기준이 무엇인지 물어보기 EX) 질의 빈도에 따라 정해지는 검색어 인기 순위를 기준으로 4. 맞춤법 검사 기능도 제공해야 하는지 물어보기 EX) 아니다..
채팅 앱이라고 했을 때 사람들이 떠올리는 것은 제각각이다. 그러니 요구사항을 확실하게 해 두는 것이 중요하다. 예를 들어 면접관이 생각하고 있는게 일대일 채팅 앱일 때 그룹 채팅 앱을 설계하면 곤란하다. 1단계 문제 이해 및 설계 범위 확정 어떤 채팅 앱을 설계하려는지 확실히 해 두는 것이 중요하다. 현재 시장에 나와있는 앱을 보면 페이스북 메신저, 위챗, 왓츠앱처럼 1:1 채팅에 집중하는 앱들이 있는가 하면 슬랙 같은 그룹 채팅에 중점을 둔 업무용 앱이나, 게임 채팅에 쓰이는 디스코드 같이 대규모 그룹의 소통과 응답지연이 낮은 음성 채팅에 집중하는 앱도 있다. 1. 1:1 채팅 앱인지 그룹 채팅 앱인지 물어보기 EX) 둘 다 지원할 수 있어야 한다. 2. 모바일 앱인지 웹 앱인지 물어보기 EX) 둘 다..
뉴스 피드란 홈 페이지 중앙에 지속적으로 업데이트되는 스토리들로, 사용자 상태 정보 업데이트, 사진, 비디오, 링크, 앱 활동, 여러분이 팔로하는 사람들, 페이지, 또는 그룹으로부터 나오는 좋아요 등을 포함한다. 비슷한 유형의 문제로 "페이스북 뉴스 피드 설계", "인스타그램 피드 설계", "트위터 타임라인 설계" 등이 있다. 1단계 문제 이해 및 설계 범위 확정 뉴스 피드 시스템을 설계하라고 했을 때 최소한 어떤 기능을 지원해야 할지는 반드시 파악해야 한다. 1. 모바일 앱을 위한 시스템인지, 웹인지 아니면 둘 다 지원해야하는지 물어보기 EX) 둘 다 지원해야 한다. 2. 중요한 기능이 어떤 것이 있는지 물어보기 EX) 사용자는 뉴스 피드 페이지에 새로운 스토리를 올릴 수 있어야 하고, 친구들이 올리는..
알림 시스템은 많은 프로그램에서 채택한 인기 있는 기능이다. 이 기능을 갖춘 애플리케이션 프로그램은 최신 뉴스, 제품 업데이트, 이벤트, 선물 등 고객에게 중요할 만한 정보를 비동기적으로 제공한다. 알림 시스템은 단순히 모바일 푸시 알림에만 한정되지 않고 SNS 메시지, 이메일, 그리고 푸시 알림 이렇게 3가지로 분류할 수 있다. 1단계 문제 이해 및 설계 범위 확정 1. 어떤 종류의 알림을 지원해야 하는지 물어보기 EX) 푸시 알림, SMS 메시지, 그리고 이메일이다. 2. 실시간 시스템이어야 하는지 물어보기 EX) soft real-time 시스템이라고 가정한다. 알림은 가능한 빨리 전달되어야 하지만 시스템에 높은 부하가 걸렸을 때 약간의 지연은 무방하다. 3. 어떤 종류의 단말을 지원해야 하는지 물..
스터디로 하고 있는 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 정리한 내용이다. 웹 크롤러는 로봇 또는 스파이더라고도 부른다. 검색 엔진에서 널리 쓰는 기술로, 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적이다. 여기서 콘텐츠는 웹 페이지일 수도 있고, 이미지나 비디오, 또는 PDF 파일일 수 도 있다. 웹 크롤러는 몇 개 웹페이지에서 시작하여 그 링크를 따라 나가면서 새로운 콘텐츠를 수집한다. 크롤러는 다양하게 이용된다. 검색 엔진 인덱싱 크롤러의 가장 보편적인 용례다. 크롤러는 웹 페이지를 모아 검색 엔진을 위한 로컬 인덱스를 만든다. 예를 들어 Googlebot은 구글 검색 엔진이 사용하는 웹 크롤러다. 웹 아카이빙 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모..
스터디로 하고 있는 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 정리한 내용이다. URL 단축기 설계 이번 장에서는 고전적인 시스템 설계 문제 가운데 하나인 tiny url 같은 URL 단축기를 설계하는 문제를 풀어본다. 1 단계 문제 이해 및 설계 범위 설정 시스템 설계 면접 문제는 의도적으로 어떤 정해진 결말을 갖지 않도록 만들어진다. 따라서 면접장에서 시스템을 성공적으로 설계해 내려면 질문을 통해 모호함을 줄이고 요구사항을 알아내야 한다. 1. URL 단축기가 어떻게 동작하는지 물어보기 EX) https://www.systeminterview.com/q=chatsystem 입력으로 주어졌다고 했을 때 이 서비스는 https://tinyurl.com/y7ke-ocwjdh 와 같은 단축 URL을..