목차
2장 개략적인 규모 추정
태그: 대규모 시스템 설계 기초
주차: 1
개략적인 규모 추정 back-of-the-envelope estimation
- 보편적으로 통용되는 성능 수치상에서 사고 실험 thought experiments → 추정치 계산
- 어떤 설계가 요구사항에 부합할 것인지
- 규모 확장성 표현 이해 필요
2의 제곱수
- 데이터 볼륨의 단위를 2의 제곱수로 표현
- 최소 단위 1바이트, 8비트 구성
- ASCII 문자 하나 차지하는 메모리 크기: 1바이트
응답지연 값
- 구글의 제프 딘: (2010년) 컴퓨터에서 구현된 연산들의 응답지연 값 공개
- 결론
- 메모리는 빠르지만 디스크는 느리다
- 디스크 탐색은 가능한 피하라
- 단순한 압축 알고리즘은 빠르다
- 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라
- 데이터 센터는 보통 여러 지역 region에 분산, 센터들 간에 데이터를 주고 받는 데에는 시간이 소요된다.
가용성에 관계된 수치들
- 고가용성 high availability: 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력
- 아마존, 구글, 마이크로소프트와 같은 사업자는 99% 이상의 SLA 제공
- SLA: Service Level Agreement. 서비스 사업자가 제공하는 서비스의 가용시간 uptime 이 기술되어 있음
- 관습적으로 9를 사용해 표시. 9가 많을수록 좋음
3장 시스템 설계 면접 공략법
태그: 대규모 시스템 설계 기초
주차: 1
효과적 면접을 위한 4단계 접근법
1단계. 문제 이해 및 설계 범위 확정
- 바로 답하기 보다는 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 하라.
- 엔지니어가 가져야 할 가장 중요한 기술:
- 올바른 질문을 하는 것.
- 적절한 가정을 하는 것.
- 시스템 구축에 필요한 정보를 모으는 것
2단계. 개략적인 설계안 제시 및 동의 구하기
- 면접관과 협력하여 진행
- 설계안에 대한 최초 청사진 제시, 의견 구하기
- 핵심 컴포넌트를 포함하는 다이어그램 그리기
- 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지
3단계. 상세 설계
- 설계 대상 컴포넌트 사이의 우선 순위 정하기
- 시간 관리에도 주의하기
- 불필요한 세부사항에 시간 소요 x
4단계. 마무리
- 개선점 질문 시, 비판적 사고 능력을 보이자. 완벽한 설계 x
- 설계를 다시 한 번 요약해주는 것도 도움이 될 수 있다
- 오류 발생 시 무슨 일이 생기는지를 따져보는 것도 좋다
- 운영 이슈도 논의할 가치가 있다
- 향후 규모 확장 요구에 어떻게 대처할 것인지도 흥미로운 주제
- 시간 여유 시, 세부적인 개선사항들 제안
'Boaz > Real-time Data and Kafka' 카테고리의 다른 글
[카프카 핵심 가이드 #2] 3장 카프카 프로듀서: 카프카에 메시지 쓰기 (0) | 2024.08.22 |
---|---|
[카프카 핵심 가이드 #1] 1장 카프카 시작하기 (0) | 2024.08.22 |
[대규모 실시간 데이터 처리 #4] 대규모 시스템 설계 기초. 12장 채팅 시스템 설계 (0) | 2024.08.04 |
[대규모 실시간 데이터 처리 #3] 대규모 시스템 설계 기초. 9장 웹 크롤러 설계 (0) | 2024.08.04 |
[대규모 실시간 데이터 처리 #1] 대규모 시스템 설계 기초. 1장 사용자 수에 따른 규모 확장성 (1) | 2024.07.28 |