반응형

STUDY/책 3

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

시스템 설계 면접을 하는 이유는 설계 과정에서 내린 결정의 이유와 면접관의 피드백을 어떠한 방식으로 처리할 것인지를 볼 수 있기 때문이다.  이번 장에서는 시스템 설계 면접을 보게 되었을 때의 꿀팁(4단계)을 정리했다. 1단계 문제 이해 및 설계 범위 확정설계 해야하는 범위를 명확하게 해야한다. 면접관에게 질문을 하면서 범위를 구체화 시킨다. 예를 들어, 어떤 기능을 만들어야 하는지, 사용자는 어느 정도인지 등등 시스템을 혼자 추상화하여 대답하지 말자.  2단계 개략적인 설계안 제시 및 동의 구하기설계안에 대한 청사진을 제시하고 면접관에게 의견을 구한다. 그리고 핵심 종이나 화이트보드에 그려가며 얘기하자. 이 설계안이 시스템 규모에 관계 된 제약사항을 커버할 수 있는지 개략적으로 계산해 보자.  3단계 ..

STUDY/책 2024.07.31

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

시스템 용량이나 성능 개선을 위해서 아래의 수치를 기본적으로 숙지하고 있어야 한다.  2의 제곱수최소 단위는 1바이트고, 8비트로 구성된다. 데이터 볼륨의 단위를 2의 제곱수로 표현하면 아래의 테이블과 같다. 2의 x 제곱근사치이름축약형101천1킬로바이트1KB201백만1메가바이트1MB3010억1기가바이트1GB401조1테라바이트1TB5010001페타바이트1PB 응답 지연 값아래의 표는 통상적인 컴퓨터에서 구현된 연산의 응답 지연 값이다. 이 수치를 기반으로 컴픀터 연산들의 처리 속도가 어드 정도인지 짐작 할 수 있다. 연산명시간L1 캐시 참조0.5ns분기 예측 오류 (branch mispredict)5nsL2 캐시 참조7ns뮤텍스(mutex) 락/언락100ns주 메모리 참조100nsZippy로 1KB 압축..

STUDY/책 2024.07.31

1장. 사용자 수에 따른 규모 확장성 - 가상 면접 사례로 배우는 대규모 시스템 설계 기초

사용자가 많지 않은 경우에는 단일 서버로 운영할 수 있지만, 사용자가 많아지면 서버에 부하가 쉽게 가므로 위와 같은 시스템으로 설계해야한다.  각각의 컴포넌트가 어떤 역할을 하는지 어떤 흐름도를 갖는지 정리하고자 한다.  클라이언트(웹이나 모바일)에서 API url을 통해 API를 호출한다. 이때, 가장 먼저 CDN을 통해 API url을 로드 벨랜서 ip로 바꿔 호출해 준다. 로드 밸랜서는 서버의 부하를 분산 시키는 역할을 한다. 위에서 말한 단일 서버의 경우, 로드 밸랜서를 쓸 필요가 없다. 왜냐면 서버가 한개인데, 분산 시켜봤자 갈 곳은 한 곳 뿐이니까.로드 밸랜서가 각 서버와 private IP로 통신한다. 이런 면에서는 로드밸런서가 proxy 역할을 하는 것 같다.  로드 밸런서가 task를 분..

STUDY/책 2024.07.30
반응형