2장 3

2장. 주변 친구

"주변친구" 기능은 본인 위치 정보 접근 권한을 허락한 사용자에 한해 인근의 친구 목록을 보여주는 시스템이다.근접성 서비스의 경우 사업장 주소는 정적이지만, 주변 친구 위치는 자주 바뀔 수 있다.1단계: 설계 범위 확정기능 요구 사항모바일 앱에서 주변 친구를 확인할 수 있어야 한다.주변 친구 목록에 보이는 각 항목에는 해당 친구까지의 거리, 해당 정보가 마지막으로 갱신된 시각(timestamp)이 함께 표시친구 목록은 몇 초마다 한 번씩 갱신되어야 한다.비기능 요구 사항낮은 지연 시간(low latency): 주변 친구의 위치 변화가 반영되는데 오랜 시간이 걸리면 안된다.안정성: 때로 몇 개 데이터가 유실되는 것 정도는 용인할 수 있다.결과적 일관성(eventual consistency):강한 일관성을 ..

1장. 근접성 서비스 - 2편

※ 내용을 1편(1, 2단계)과 2편(3, 4단계)으로 나눴습니다. ※  근접성 서비스(proximity service)는 음식점, 호텔, 극장, 박물관 등 현재 위치에서 가까운 시설을 찾는데 이용 3단계. 상세 설계시스템 형태 중 일부 더 상세하게 살펴본다. 3.1 데이터베이스의 규모확장성중요한 사업장 테이블과 지리 정보 색인 테이블의 규모 확장성을 살펴본다.1) 사업장 테이블한 서버에 담을 수 없을 수 있다.샤당하기 좋은 후보이다. 사업장 ID를 기준으로 샤딩한다.2) 지리 정보 색인 테이블지오해시 테이블 구성 두 가지 방법방법 1: 지오해시에 연결되는 모든 사장 ID를 JSON 배열로 만들어 같은 열에 저장방법 2: 지오해시에 속한 사업장 ID 각각을 별도 열로 저장 추천: 두 번째(방안 2) 방법..

2장. 개략적인 규모 측정

시스템 설계 면접을 볼 때, 시스템 용량이나 성능 요구사항을 개략적으로 추정해 보라는 요구를 받게 된다. 구글의 시니어 펠로 제프 딘에 따르면 "개략적인 규모 추정은 보편적으로 통용되는 성능 수치상에서 사고 실험을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것"이다. 개략적 규모 추정을 하려면 규모 확장성을 표현하는데 필요한 기본기가 능숙해야 한다.2의 제곱수나 응답지연(latency) 값, 그리고 가용성에 관련된 수치. 2의 제곱수제대로된 계산 결과를 얻으려면 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지 알아야 한다. 최소 단위는 1바이트이고, 8비트로 구성된다.아스키 문자 하나가 차지하는 메모리 크기가 1바이트이다. 2의 x 제곱근사치이름축약형1..