수백만 사용자를 지원하는 시스템을 설계하는 것은 백엔드 개발자에게 굉장히 도전적인 과제이다. 이 글에서는 규모 확장성과 관계된 설계 문제를 푸는 데 유용하게 쓰일, 사용자 수에 따른 시스템 설계 방식을 살펴볼 것이다.단일 서버 환경에서는 웹, 앱, 데이터베이스, 캐시
설계 방법론: 사용자 수에 따른 규모 확장성(1) 에서는 단일 서버 형태의 시스템과 그로부터 데이터베이스를 독립시켜 별도의 계층으로 두는 시스템을 살펴 보았다. 이어서 조금 더 많은 사용자 수를 수용할 수 있는 시스템을 살펴볼 것이다.수직적 규모 확장(vertical
설계 방법론: 사용자 수에 따른 규모 확장성(1)과 설계 방법론: 사용자 수에 따른 규모 확장성(2)에서 웹 계층과 데이터 계층에 대해 충분히 이해했다면, 이번엔 응답 시간(latency)를 개선해 볼 순서이
이제, 웹 계층을 수평적으로 확장하는 방법을 생각해 보자. 무상태(stateless) 웹 계층 무상태 웹 계층이란 상태 정보(사용자 세션 데이터 등)를 웹 계층에서 제거한 것을 의미한다. 상태 정보를 관계형 데이터베이스나 NoSQL 같은 지속성 저장소에 보관하고, 필
데이터베이스 규모 확장 수직적 확장 수평적 확장 출처: 가상 면접 사례로 배우는 대규모 시스템 설계 기초
개략적인 규모 추정(back-of-the-envelope estimation)은 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것이다.개략적 규모
처리율 제한 장치(rate limiter)란 처리율 제한 장치는 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치다. 요청 횟수가 제한 장치에 정의된 임계치(threshold)를 넘어서면 추가로 도달한 모든 호출은 처리가 중단된다. 예를 들면, 다음