본문 바로가기

System Design17

[시스템 설계 면접 공략법] 효과적 면접을 위한 4단계 접근법 1단계) 문제 이해 및 설계 범위 확정 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 해야합니다. 엔지니어가 가져야 할 가장 중요한 기술 중 하나는 올바른 질문을 하는 것, 적절한 가정을 하는 것, 그리고 시스템 구축에 필요한 정보를 모으는 것입니다. 질문을 던지면 면접관은 여러분이 질문에 대한 답을 바로 내놓거나, 아니면 여러분 스스로 어떤 가정을 하기를 주문할 것입니다. 후자의 경우에는 그 가정을 화이트보드나 종이에 적어두어야 합니다. 요구사항을 정확히 이해하는데 필요한 질문 구체적으로 어떤 기능들을 만들어야 하나? 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상하나? 석 달, 여섯 달, 일년 뒤의 규모는 얼마가 되리라 예상하는가? 회사가 주로 사용하는 기술 스택(tech.. 2021. 9. 29.
[개략적인 규모 측정] 팁 근사치를 활용한 계산(rounding and approximation): 면접장에서 복잡한 계산을 하는 것은 어려운 일입니다. 예를 들어, "99987 / 9.1"의 계산 결과는 무엇인가? 그러나 이런 데 시간을 쓰는 것은 낭비입니다. 계산 결과의 정확함을 평가하는 것이 목적이 아니라서입니다. 그러니 적절한 근사치를 활용하여 시간을 절약해야 합니다. 방금 살펴본 수식은 "100,000 / 10"로 간소화할 수 있습니다. 가정(assumption)들은 적어 두어야 합니다. 나중에 살펴볼 수 있도록. 단위(unit)를 붙여야 합니다. 5라고만 적으면 5KB인지 5MB인지 알 수가 없습니다. 나중에는 여러분 스스로도 헷갈리게 될 것입니다. 단위를 붙이는 습관을 들여두면 모호함을 방지할 수 있습니다. 많이 출제.. 2021. 9. 28.
[개략적인 규모 측정] 예제 - 트위터 QPS와 저장소 요구량 추정 가정 월간 능동 사용자(monthly active user)는 3억(300million) 명입니다. 50%의 사용자가 트위터를 매일 사용합니다. 평균적으로 각 사용자는 매일 2건의 트윗을 올립니다. 미디어를 포함하는 트윗은 10% 정도입니다. 데이터는 5년간 보관됩니다. 추정 QPS(Query Per Second) 추정치 일간 능동 사용자(Daily Active User, DAU) = 3억 X 50% = 1.5억(150million) QPS = 1.5억 X 2트윗/24시간/3600초 = 약 3500 최대 QPS(Peek QPS) = 2 X QPS = 약 7000 미디어 저장을 위한 저장소 요구량 평균 트윗 크기 tweet_id에 64바이트 텍스트에 140바이트 미디어에 1MB 미디어 저장소 요구량: 1... 2021. 9. 25.
[개략적인 규모 측정] 가용성에 관계된 수치들 고가용성(high availability) 고가용성은 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 지칭하는 용어입니다. 고가용성을 표현하는 값은 퍼센트(percent)로 표현하는데, 100%는 시스템이 단 한 번도 중단된 적이 없었음을 의미합니다. 대부분의 서비스는 99% ~ 100% 사이의 값을 갖습니다. SLA(Service Level Agreement) SLA는 서비스 사업자(service provider)가 보편적으로 사용하는 용어로, 서비스 사업자와 고객 사이에 맺어진 합의를 의미합니다. 이 합의에는 서비스 사업자가 제공하는 서비스의 가용시간(uptime)이 공식적으로 기술되어 있습니다. 가용시간은 관습적으로 숫자 9를 사용해 표시합니다. 9가 많으면 많을수록 좋다고 보.. 2021. 9. 23.