본문 바로가기

스터디-공부/시스템 디자인20

4장 처리율 제한 장치의 설계 (1) 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 4장 처리율 제한 장치의 설계 처리율 제한 장치 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치다. 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한한다. 임계치를 넘어서면 추가로 도달한 모든 호출은 처리가 중단된다. 영어로는 Rate Limit. 처리율 제한 장치를 두면 좋은 점 - DOS 공격에 의한 자원 고갈을 방지할 수 있다. - 비용을 절감한다. 서버를 많이 두지 않아도 되고, 우선순위가 높은 다른 API에 더 많은 자원을 할당할 수 있다. - 서버 과부하를 막는다. 봇이나 사용자의 잘못된 이용 패턴으로 유발된 트래픽을 걸러낼 수도 있다. 1단계 문제 이해 및 설계 범위 확.. 2023. 5. 17.
3장 시스템 설계 면접 공략법 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 3장 시스템 설계 면접 공략법 시스템 설계 면접이 있는 이유 두 명의 동료가 모호한 문제를 풀기 위해 협력하여 그 해결책을 찾아내는 과정에 대한 시뮬레이션. 시스템 설계 면접을 통해 볼 수 있는 것 - 설계 기술 능력 - 설계 과정에서 내린 결정들에 대한 방어 능력 - 면접관의 피드백을 건설적인 방식으로 처리할 수 있는지. - 협력에 적합한가 - 압박이 심한 상황에서도 잘 헤쳐 나가는가 - 모호한 문제를 건설적으로 해결할 능력이 있는가 - 적절한 타협적 결정(trade off)를 할 수 있는가 - 과도한 엔지니어링(over-engineering)을 하지는 않는가 - 완고함. 편협함은 없는가 효과적 면접을 위한.. 2023. 5. 10.
2장 개략적인 규모 추정(back-of-the-envelope estimation) 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 2장 개략적인 규모 추정 개략적인 규모 추정 개략적인 규모 추정은 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것이다. 이를 위해 알아야 할 상식들과 예시를 이번 장에서는 소개한다. 2의 제곱수 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지 숙지 해두자. 최소 단위는 1바이트이고, 8 비트로 구성. ASCII 문자 하나가 차지하는 메모리 : 1바이트 2의 x 제곱 근사치 이름 축약형 10 1천(thousand) 1킬로바이트(Kilobyte) 1KB 20 1백만(million.. 2023. 5. 5.
1장 사용자 수에 따른 규모 확장성 (5) - 메시지큐, 로그, 메트릭, 자동화, 데이터베이스의 규모 확장 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 1장 사용자 수에 따른 규모 확장성 : 어떻게 수백만 사용자를 지원하는 시스템을 설계할 것인가. 1장 사용자 수에 따른 규모 확장성 (1) - 웹서버, 데이터베이스, 로드밸런스 1장 사용자 수에 따른 규모 확장성 (2) – 데이터베이스 다중화 1장 사용자 수에 따른 규모 확장성 (3) – 캐시, CDN 1장 사용자 수에 따른 규모 확장성 (4) - 무상태 웹 계층, 데이터 센터 에서 이어지는 글입니다. 메시지 큐 메시지 큐는 메시지의 무손실(durability, 즉 메시지 큐에 일단 보관된 메시지는 소비자가 꺼낼 때까지 안전히 보관된다는 특성)을 보장하는, 비동기 통신을 지원하는 컴포넌트이다. 메시지의 버퍼 .. 2023. 5. 4.
1장 사용자 수에 따른 규모 확장성 (4) - 무상태 웹 계층, 데이터 센터 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 1장 사용자 수에 따른 규모 확장성 : 어떻게 수백만 사용자를 지원하는 시스템을 설계할 것인가. 1장 사용자 수에 따른 규모 확장성 (1) - 웹서버, 데이터베이스, 로드밸런스 1장 사용자 수에 따른 규모 확장성 (2) – 데이터베이스 다중화 1장 사용자 수에 따른 규모 확장성 (3) – 캐시, CDN 에서 이어지는 글입니다. 무상태(stateless) 웹 계층 Q : 어떻게 웹 계층을 수평적으로 확장할 것인가 A : 바람직한 전략 : 상태 정보를 관계형 데이터베이스나 NoSQL 같은 지속성 저장소에 보관하고, 필요할 때 가져오도록 한다. → 이렇게 구성된 웹 계층을 무상태 웹 계층 이라 부른다. 상태 의존적.. 2023. 5. 3.
1장 사용자 수에 따른 규모 확장성 (3) - 캐시, CDN 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 1장 사용자 수에 따른 규모 확장성 : 어떻게 수백만 사용자를 지원하는 시스템을 설계할 것인가. 1장 사용자 수에 따른 규모 확장성 (1) - 웹서버, 데이터베이스, 로드밸런스 1장 사용자 수에 따른 규모 확장성 (2) – 데이터베이스 다중화 에서 이어지는 글입니다. 캐시 캐시는 값비싼 연산 결과 또는 자주 참조되는 데이터를 메모리 안에 두고, 뒤이은 요청이 보다 빨리 처리될 수 있도록 하는 저장소이다. 캐시 계층 캐시 계층은 데이터가 잠시 보관되는 곳으로 데이터베이스보다 훨씬 빠르다. 별도의 캐시 계층을 두면 성능이 개선될 뿐 아니라 데이터베이스의 부하를 줄일수도 있고, 캐시 계층의 규모를 독립적으로 확장시.. 2023. 5. 2.