민석강

가상 면접 사례로 배우는 대규모 시스템 설계 기초 8장 - URL 단축기 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 URL 단축기는 말그대로 URL을 줄이는 모듈을 말한다. ✏️ 1단계 문제 이해 및 설계 범위 확정 여태까지 그래왔듯 질문을 통해 요구사항을 명확히 해야한다. 트래픽의 규모는? (예제에서는 매일 1억개의 단축url생성) url의 길이는? (예제에서는 최대한 ...

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

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

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

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

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

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

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

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

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

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