Dev/System Design(2)
-
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 11. 뉴스 피드 시스템 설계
요구사항 개략적 설계 피드 발행 뉴스 피드 조회 상세 설계 피드 발행 상세 설계 뉴스피드 조회 상세 설계 캐시 구조 마무리 뉴스피드 시스템은 인스타그램이나 트위터와 같이 홈페이지 중앙에서 지속적으로 업데이트되는 포스팅 시스템을 말합니다. 뉴스피드 시스템을 설계하는데에서 고민해야하는 부분은 아래와 같습니다. 내가 작성한 포스팅을 나를 팔로워한 사용자들에게 발행하는 것 팔로잉하고 있는 사용자의 피드를 나의 뉴스피드에서 읽는 것 간단하게 표현하자면, 데이터를 쓰는 파트 그리고 데이터를 읽는 파트에 대해 설계하면 됩니다. 1. 요구사항 뉴스피드 시스템을 설계하기 위해 필요한 요구사항들을 생각해봅니다. 모바일, 웹 모두 지원 뉴스 피드 내가 직접 포스팅을 올릴수도 있고 팔로잉하고 있는 사용자가 올린 포스팅을 뉴스..
2023.08.26 -
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 01. 사용자 수에 따른 규모 확장성
※ 이 포스팅은 가상 면접 사례로 배우는 대규모 시스템 설계 기초의 1장. 사용자 수에 따른 규모 확장성 부분을 정리한 것입니다. 개요 웹계층 Scale Out 로드밸런서 stateless 메시지 큐 로그, 메트릭, 자동화 데이터 계층 Scale Out 로드밸런서 && 데이터베이스 다중화 데이터베이스 규모 확장 샤딩 데이터베이스 종류에 대한 고민 응답시간 개선 캐시 CDN Cache && CDN 적용 결과 데이터 센터 1. 개요 1.1. 단일서버? 모든 컴포넌트(웹앱, DB, 캐시서버 등)가 단 한대의 서버에서 실행되는 시스템입니다. 웹서비스를 이용하고자하는 사용자가 웹서버에 바로 접근하는 구조로 웹서버가 다운될 경우 웹사이트 접속이 불가능합니다. 또, 데이터베이스가 하나이기 때문에 장애가 발생했을 시,..
2023.05.19