전체 글
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 9장. 웹 크롤러 설계📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2026. 1. 4. 23:38
웹 크롤러는 로봇 또는 스파이더라고도 부른다.검색 엔진에서 널리 쓰이는 기술로 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적이다.🎯 크롤러 활용 예시활용 예시설명검색 엔진 인덱싱검색 엔진의 로컬 인덱스를 구축하기 위해 사용. 예시: Googlebot (구글 검색 엔진이 사용하는 웹 크롤러)웹 아카이빙웹 사이트 정보를 주기적으로 수집하고 저장하여 아카이빙.웹 마이닝인터넷에서 유용한 지식을 찾아 분석해 의미있는 지식을 도출웹 모니터링저작권, 상표권이 침해되는 사례를 모니터링 웹 크롤러의 복잡도는 처리해야 하는 데이터의 규모에 따라 달라진다. 학급 프로젝트 수준일 수도 있고 별도의 엔지니어링 팀을 꾸려서 지속적으로 관리하고 개선해야 하는 초대형 프로젝트가 될 수도 있다.따라서, 설계한 웹 ..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 8장. URL 단축기 설계📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2026. 1. 4. 23:28
🤔 단축 URL을 사용하는 이유?이 글을 읽기 전에 왜 URL 단축기를 사용하여 단축된 URL을 사용하는지 궁금해져 한 번 정리를 해보려고 한다. 장점설명공간 절약 및 가독성웹사이트 링크는 많은 공간을 차지하기 때문에 SNS 환경이나 메시지 전송시에서 불편할 수 있다. 단축 URL은 가독성이 좋게 글자 수를 절약하며 링크를 전달할 수 있다.클릭 추적 및 분석언제 / 어디서 / 누가 클릭을 했는지 데이터 추적이 가능하다. (국가, 시간대, 디바이스 등)마케팅 효과A/B 테스트 등을 통해 어떤 메시지가 더 높은 클릭을 유도하는지 확인. 유입 경로(SNS, 이메일, 블로그 등)를 분석해 어떤 채널이 효과적인지 파악주소 마스킹원래 URL을 감춰 보안에 좀 더 유리. 민감한 정보 노출을 막음 1️⃣ 문제 이해 ..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 7장. 분산 시스템을 위한 유일 ID 생성기 설계📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2025. 12. 25. 14:31
1️⃣ 문제 이해 및 설계 범위 확정질문을 통해서 요구사항을 이해하고 모호함을 해소하자.ID는 유일해야 한다.ID는 숫자로만 구성되어야 한다.ID는 64비트로 표현될 수 있는 값이어야 한다.ID는 발급 날짜에 따라 정렬 가능해야 한다.초당 10,000개의 ID를 만들 수 있어야 한다. 2️⃣ 개략적 설계안 제시 및 동의 구하기분산 시스템에서 유일성이 보장되는 ID를 만드는 방법은 여러 가지이다.다중 마스터 복제 (Multi-master replication)UUID (Universally Unique Identifier)티켓 서버 (ticket server)트위터 스노플레이트 접근법 (snowflake) ©️ 다중 마스터 복제auto_increment 기능을 활용하는 방법 ID 값을 구할 때 1만큼 증가..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 6장. 키:값 저장소 설계📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2025. 12. 25. 14:19
키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스저장되는 값은 고유 식별자를 키로 가지고 각 값은 키를 통해서만 접근이 가능하다.키는 일반 텍스트일 수도 있고 해시 값일 수도 있다.키는 짧을수록 좋다.🤖 키-값 저장소 예시Amazon DynamoMemcachedRedis 🎯 이번 챕터에서 설계한 키-값 저장소 특성키-값 쌍의 크기는 10KB 이하이다.큰 데이터를 저장할 수 있어야 한다.높은 가용성을 제공해야 한다.장애가 있더라도 빨리 응답해야 한다.높은 규모 확장성을 제공해야 한다.트래픽 양에 따라 자동적으로 서버 증설 및 삭제가 이루어져야 한다.데이터 일관성 수준은 조정이 가능해야 한다.응답 지연시간(latency)이 짧아야 한다. 💻 단일 서버 키-값 저장소한 대 서버만 사..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 5장. 안정 해시 설계📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2025. 12. 25. 13:33
수평적 규모 확장성을 달성하기 위해서는 요청, 데이터를 서버에 균등하게 나누는 것이 중요 ☑️안정 해시는 이런 목표를 달성하기 위해 보편적으로 사용하는 기술이다.⚠️ 해시 키 재배치 문제 (rehash)N개의 캐시 서버가 있다고 했을 때 이 서버에게 균등하게 부하를 나누는 보편적인 방법은 해시 함수를 이용하는 것이다.serverIndex = hash(key) % N // N은 서버의 개수 👀 예시 - 4대의 서버키해시해시 % 4 (서버 인덱스)key0183586171key1261435840key2181311262key3358634960key4340858091key5275817033key6381649782key722530351†3- 해시 값과 서버 인덱스를 계산한 결과 키 값이 서버에 어떻게 분산되는지 ..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 4장. 처리율 제한 장치의 설계📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2025. 12. 25. 13:23
네트워크 시스템에서 처리율 제한 장치(rate limiter) 는 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치ex) 특정 기간 내에 전송되는 클라이언트 HTTP 요청 횟수를 제한ex) API 요청 횟수가 정의된 임계치를 넘어서면 추가 호출은 처리가 중단(block) 👍 좋은 점DoS(Denial of Service) 공격에 의한 자원 고갈(resource starvation)을 방지비용을 절감. 추가 요청에 대한 처리를 제한하면 서버를 많이 두지 않아도 됨서버 과부하를 막는다. 봇(bot)에서 오는 트래픽이나 사용자의 잘못된 이용패턴으로 유발된 트래픽을 걸러내는데 처리율 제한 장치를 활용 가능 🤔 처리율 제한 장치를 어디에 둘 것인가클라이언트 측에 둘 수도 서버 측에 둘 수 ..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 3장. 시스템 설계 면접 공략법📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2025. 12. 25. 13:07
🔍 시스템 설계 면접이 있는 이유??모호한 문제를 풀기 위해서 해결책을 찾아내는 과정에 대한 시뮬레이션정해진 결말도 정답도 없다!설계 기술을 시연하는 자리이고 설계 과정에서 내린 결정들에 대한 방어 능력을 보이는 자리이다.면접관의 피드백을 건설적인 방식으로 처리할 자질이 있음을 보이는 자리👨💼 면접관의 입장일차적 목표는 능력을 평가하는 것면접관이 시스템 설계 면접에서 찾고자 하는 것은 무엇일까?지원자가 협력에 적합한 사람인지압박이 심한 상황도 잘 헤쳐 나가는 자질이 있는지모호한 문제를 건설적으로 해결할 능력이 있는지설계의 순수성에 집착하여 트레이드 오프를 도외시하고 과도한 엔지니어링을 하는지🚶♂️ 효과적 면접을 위한 4단계 접근법1️⃣ 문제 이해 및 설계 범위 확정시스템 설계 면접 과정에서는 ..
-
[가상면접 사례로 배우는 대규모 시스템 설계 기초] 2장. 개략적인 규모 추정📕 book/가상 면접 사례로 배우는 대규모 시스템 설계 기초 2025. 12. 25. 13:01
시스템 설계 면접에서 시스템 용량, 성능 요구사항을 개략적으로 추정하라는 요구를 받게됨.개략적인 규모 추정(back-of-the-envelope estimation)보편적으로 성능 수치상에서 사고 실험을 행하여 추정치를 계산하는 행위어떤 설계가 요구사항에 부합할 것인지 보기 위함. 2️⃣ 2의 제곱수데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지 알아야 한다.2의 x제곱근사치이름축약형101천1킬로바이트1KB201백만1메가바이트1MB3010억1기가바이트1GB401조1테라바이트1TB501000조1페타바이트1PB 🕓 응답지연 값구글의 제프 딘이 2010년에 통상적인 컴퓨터에서 구현된 연산들의 응답지연 값을 공개한 바가 있다. 한 구글 엔지니어가 개발한 도구를 사용해 최근 기술 동향을 반영하여 20..