본문 바로가기

책 리뷰/가상 면접 사례로 배우는 대규모 시스템 설계 기초5

가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 6장 🔖 6장 : 키-값 저장소 설계읽은 날짜 : 2024.09.04지은이 : 알렉스 쉬출판사 : 인사이트 기억하고 싶은 내용키-값 저장소비 관계형 데이터베이스고유 식별자를 키로 가져야 하고, 값은 키를 통해서만 접근할 수 있다.키는 짧을수록 좋고, 값은 무엇이든 된다.e.g. AWS DynamoDB, Redis, Cassandra, BigTable 단일 서버 키-값 저장소가장 직관적인 방법은 키-값 전부를 메모리에 해시 테이블로 저장하는 것.메모리의 한계를 해결하기 위해 아래와 같은 방법이 있지만, 서버 한 대로 부족할 때가 도래한다.데이터 압축자주 쓰이는 데이터만 메모리에 두고 나머지는 디스크에 저장 분산 키-값 저장소키-값 쌍을 여러 서버에 분산시킨다.분산 시스템을 설계할 때 CAP 정리를 이해해야 한.. 2024. 9. 4.
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 5장 🔖 5장 : 안정 해시 설계읽은 날짜 : 2024.08.26지은이 : 알렉스 쉬출판사 : 인사이트 기억하고 싶은 내용해시 키 재배치(rehash) 문제N개의 캐시 서버가 있을 때 서버들에 부하를 균등하게 나누는 일반적인 방법은serverIndex = hash(key) % N특정 키가 보관된 서버의 인덱스를 계산하는 방법이 방법은 서버 풀의 크기가 고정되어 있을 때와 데이터 분포가 균등할 때는 잘 동작한다.그러나 서버가 추가되거나 기존 서버가 삭제되는 경우(즉, N 값이 바뀜), 서버 인덱스 값이 바뀌면서 대규모 캐시 미스(cache miss)가 발생한다. 안정 해시(consistent hash)해시 테이블 크기가 조정될 때 거의 대부분의 키를 재배치하는 전통적인 방식과 달리, 안정 해시는 평균적으로 k.. 2024. 8. 26.
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 4장 🔖 4장 : 처리율 제한 장치의 설계읽은 날짜 : 2024.08.20지은이 : 알렉스 쉬출판사 : 인사이트 기억하고 싶은 내용처리율 제한 장치를 두면 좋은 점DoS(Denial of Service) 공격에 의한 자원 고갈 방지서버 개수나 서드 파티 API 사용료에 대한 비용 절감봇(bot)에서 오는 트래픽이나 사용자의 잘못된 이용 패턴으로 유발된 트래픽으로 인한 서버 과부하 방지 1단계 : 문제 이해 및 설계 범위 확정클라이언트 측 제한 장치인가, 서버 측 제한 장치인가?서버 측이라면 API 호출을 제어하는 기준은? - IP 주소, 사용자 ID 등시스템의 규모는?시스템이 분산 환경에서 동작해야 하는가?처리율 제한 장치는 독립적인 서비스인가, 애플리케이션 코드에 포함될 수 있는가?사용자의 요청이 처리율 .. 2024. 8. 20.
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 2~3장 🔖 2~3장 : 개략적인 규모 추정 ~ 시스템 설계 면접 공략법읽은 날짜 : 2024.08.19지은이 : 알렉스 쉬출판사 : 인사이트 기억하고 싶은 내용개략적인 규모 추정(back-of-the-envelope estimatation)보편적으로 통용되는 성능 수치상에서 사고 실험을 행하여 추정치를 계산하는 행위어떤 설계가 요구사항에 부합할 것인지 보기 위한 것2의 제곱수, 응답지연 값, 가용성과 관련된 수치를 이해해야 한다. 2의 제곱수최소 단위는 1바이트(=8비트). ASCII 문자 하나가 1바이트.1 byte(바이트) - 1KB(킬로바이트) - 1MB(메가바이트) - 1GB(기가바이트) - 1TB(테라바이트) - 1PB(페타바이트)단위가 바뀔 때마다 2의 10제곱씩 곱해진다. 응답지연 값메모리는 빠르.. 2024. 8. 19.
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 1장 🔖 1장 : 사용자 수에 따른 규모 확장성읽은 날짜 : 2024.08.13지은이 : 알렉스 쉬출판사 : 인사이트 기억하고 싶은 내용✔️ 시스템 규모 확장 방법 정리웹 계층은 무상태 계층으로모든 계층에 다중화 도입가능한 한 많은 데이터를 캐시할 것여러 데이터 센터를 지원할 것정적 콘텐츠는 CDN을 통해 서비스할 것데이터 계층은 샤딩을 통해 그 규모를 확장할 것각 계층은 독립적 서비스로 분할할 것시스템을 지속적으로 모니터링하고, 자동화 도구들을 활용할 것 단일 서버 아키텍처사용자 단말(웹/앱)에서 도메인으로 접속DNS에 도메인을 조회하여 IP 주소로 변환IP 주소로 HTTP 요청HTML이나 JSON 응답데이터베이스웹/모바일의 트래픽을 처리하는 서버와 데이터베이스 서버를 독립적으로 확장해 나갑니다.데이터베이.. 2024. 8. 14.