백엔드/아키텍처

[System Design Interview] 2장. 개략적인 규모 측정

박지환 2022. 8. 20. 00:13
개략적인 규모 추정(back-of-the-envelope estimation): 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위 → 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것

2의 제곱수

데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지 알아야 함

응답지연 값

통상적인 컴퓨터에서 구현된 연산들의 응답지연 값

응답 지연 값의 결론

  • 메모리는 빠르지만 디스크는 아직도 느리다
  • 디스크 탐색(seek)은 가능한 한 피하라
  • 단순한 압축 알고리즘은 빠르다
  • 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라
  • 데이터 센터는 보통 여러 지역(region)에 분산되어 있고, 센터들 간에 데이터를 주고받는 데는 시간이 걸린다

가용성에 관계된 수치들

고가용성(high availability): 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력, 퍼센트로 표현함

SLA(Service Level Agreement): 서비스 사업자와 고객 사이에 맺어진 합의, 서비스 사업자가 제공하는 서비스의 가용시간(uptime)이 공식적으로 기술되어 있음

  • ex) 가용률 99% → 연간 장애시간: 3.65일
  • ex) 가용률 99.999% → 연간 장애시간: 31.56초

면접 팁

결과를 잘 내는 것보다, 올바른 절차를 밟는 것이 중요함 → 문제 해결 능력
  • 근사치를 활용한 계산(rounding and approximation)
  • 가정(assumption)은 나중에 볼 수 있도록 적어두기
  • 모호함을 방지하기 위해 단위(unit)을 붙이기
  • 개략적 규모 추정 문제: QPS(Query Per Second), 최대 QPS, 저장소 요구량, 캐시 요구량, 서버 수 등을 추정함

 

Reference: http://www.yes24.com/Product/Goods/102819435

 

가상 면접 사례로 배우는 대규모 시스템 설계 기초 - YES24

“페이스북의 뉴스 피드나 메신저, 유튜브, 구글 드라이브 같은 대규모 시스템은 어떻게 설계할까?”IT 경력자라도 느닷없이 대규모 시스템을 설계하려고 하면 막막하다고 느낄 수 있다. 특히나

www.yes24.com