민석강

가상 면접 사례로 배우는 대규모 시스템 설계 기초 7장 - 분산 시스템을 위한 유일 ID 생성기 설계

개요 auto_increment속성이 설정된 관계형 데이터베이스의 기본 키를 쓰는 방법이 있겠다. 하지만 분산환경에서 데이터베이스 서버 한 대로는 이 요청을 감당할 수 없을 것이고, 여러 데이터베이스를 쓰는 경우 서버들이 중복된 값을 반환하면 안되기에 이를 관리해줘야할텐데 이 때문에 지연시간을 낮추기가 어려울 것이다. ✏️ 1단계 문제 이해 및...

가상 면접 사례로 배우는 대규모 시스템 설계 기초 6장 - 키-값 저장소 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스다. 여기에 저장되는 값은 이를 식별할 수 있는 고유한 키를 가져야하고, 이러한 연결 관계를 키-값 쌍(pair)이라고 한다. put(key,value): 키-값 쌍을 저장소에 저장한다. ge...

가상 면접 사례로 배우는 대규모 시스템 설계 기초 5장 - 안정 해시 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요하다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다. ✏️ 해시 키 재비치(rehash) 문제 보편적으로 해시 함수는 다음과 같이 사용한다. serverIndex = hash(key) % N(서...

가상 면접 사례로 배우는 대규모 시스템 설계 기초 4장 - 처리율 제한 장치의 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 이 장에서는 클라이언트가 보내는 트래픽을 제한하는 방법을 설명한다. 클라이언트의 요청 횟수를 제한하는것이 대표적이며, 처리율을 제한함으로써 얻는 이점은 다음과 같은게 있다. Dos(Denial of Service) 공격에 의한 자원고갈을 방지할 수 있다. 비용...

가상 면접 사례로 배우는 대규모 시스템 설계 기초 3장 - 시스템 설계 면접 공략법

가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 시스템 설계 면접은 두 명의 동료가 모호한 문제를 풀기 위해 협력하여 해결책을 찾아가는 과정이다. 때문에 정답도 없고 결과도 없다. 설계과정에서 내린 결정에 대해 방어하는 능력을 보는 과정이고, 면접관의 피드백을 건설적인 방향으로 처리할 자질이 있음을 보는 면접이다. 시...

가상 면접 사례로 배우는 대규모 시스템 설계 기초 2장 - 개략적인 규모 추정

가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 이 장은 시스템 용량이나 성능 요구사항을 개략적으로 측정하는 방법에 대해 다룬다. 개략적 규모 추정을 효과적으로 필요한 기본기에 능숙해야 한다. 특히, 2의 제곱수나 응답지연(latency) 값, 그리고 가용성에 관계된 수치들을 기본적으로 잘 이해하고 있어야 한다고 한다...