독서/가상 면접 사례로 배우는 대규모 시스템 설계 기초13 11장. 뉴스 피드 시스템 설계 뉴스 피드 시스템의 핵심 기능 피드 발행 사용자가 스토리를 포스팅하면 해당 데이터를 캐시와 데이터베이스에 기록한다. 새 포스팅은 친구의 뉴스 피드에 전송된다. 피드 발행 시스템의 개략적 형태는 다음과 같다. 사용자 : 모바일 앱이나 브라우저에서 새 포스팅을 올리는 주체 로드벨런서 : 트래픽을 웹 서버로 골고루 분산한다. 웹 서버 : HTTP 요청을 내부 서비스로 중계하는 역할을 한다. 포스팅 저장 서비스 : 새 포스팅을 데이터베이스와 캐시에 저장한다. 포스팅 전송 서비스 : 새 포스팅을 친구의 뉴스 피드에 푸시한다. 뉴스 피드 데이터는 캐시에 보관하여 빠르게 읽어갈 수 있도록 한다. 알림 서비스 : 친구들에게 새 포스팅이 올라왔음을 알리거나, 푸시 알림을 보내는 역할을 담당한다. 뉴스 피드 생성 뉴스 피.. 2023. 12. 26. 10장. 알림 시스템 설계 알림 유형별 지원 방안 알림시스템은 모바일 푸시알림, SMS 메시지, 이메일로 분류할 수 있다. iOS 푸시 알림 iOS에서 푸시 알림을 보내기 위해서는 세 가지 컴포넌트가 필요하다. 알림 제공자(provider) : 알림 요청을 만들어 애플 푸시 알림 서비스(APNS)로 보내는 주체다. 알림 요청을 만들라면 다음과 같은 데이터가 필요하다. 단말 토큰(device token) : 알림 요청을 보내는 데 필요한 고유 식별자 페이로드(payload) : 알림 내용을 담은 JSON 딕셔너리 APNS : 애플이 제공하는 원격 서비스. 푸시 알림을 iOS 장치로 보내는 역할 iOS 단말 : 푸시 알림을 수신하는 사용자 단말 안드로이드 푸시 알림 안드로이드 푸시 알림도 iOS와 비슷한 절차로 전송한다. APNS 대.. 2023. 12. 21. 9장. 웹 크롤러 설계 웹 크롤러는 로봇(robot) 또는 스파이더(spider) 라고도 부른다. 검색 엔진에서 널리 쓰는 기술로, 웹에 새로 개신되는 콘텐츠를 찾아내는 것이 주된 목적이다. 웹 크롤러는 몇 개 웹페이지에서 시작하여 그 링크를 따라 나가면서 새로운 콘텐츠를 수집한다. 검색 엔진 인덱싱 : 크롤러의 가장 보편적인 용례다. 크롤러는 웹 페이지를 모아 검색 엔진을 위한 로컬 인덱스를 만든다. 일례로 Googlebot은 구글 검색 엔진이 사용하는 웹 크롤러다. 웹 아카이빙 : 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모으는 절차를 말한다. 웹 마이닝 : 웹의 폭팔적인 성장세는 데이터 마이닝 업계에 전례 없는 기회다. 웹 마이닝을 통해 인터넷에서 유용한 지식을 도출해 낼 수 있는 것이다. 웹 모니터링 : .. 2023. 12. 20. 8장. URL 단축기 설계 tiny url 같은 URL 단축기를 설계 1단계. 문제 이해 및 설계 범위 확정 쓰기 연산 : 매일 1억 개의 단축 URL 생성 초당 쓰기 연산 : 1억(100million) / 24 / 3600 = 1160 읽기 연산 : 읽기 연산과 쓰기 연산 비율은 10:1 이라고 가정하면, 읽기 연산은 초당 11600회 발생한다. (1160 * 10 = 11600) URL 단축 서비스를 10년간 운영한다고 가정하면 1억(100million) * 365 * 10 = 3650억(365billion) 개의 레코드를 보관해야 한다. 축약 전 URL의 평균 길이는 100 가정. 따라서 10년 동안 필요한 저자 용량은 3650억 * 100바이트 = 36.5TB다. 2단계. 개략적 설계안 제시 및 동의 구하기 API 엔드포인.. 2023. 12. 11. 이전 1 2 3 4 다음