가상면접으로 배우는 대규모 시스템 설계 기초13장 검색어 자동완성 시스템
트라이 자료구조
트리형태의 자료구조
트리의 루트노드는 빈문자열을 나타낸다
각 노드는 글자 하나를 저장하며 26개의 자식 노드를 가질수 있다
각 트리노드는 하나의 단어 또는 접두어 문자열을 나타낸다 ...
가상면접으로 배우는 대규모 시스템 설계 기초11장 뉴스 피드 시스템 설계피드 발행 : 피드를 생성하면 데이터 베이스에 저장하고 새 포스팅은 친구들의 뉴스피드에도 전송 된다
뉴스 피드 생성 : 모든 친구의 포스팅을 시간 흐름 역순으로 모아서 만든다
팬아웃 : 어떤 사용자 ...
가상면접으로 배우는 대규모 시스템 설계 기초9장 웹 크롤러 설계웹 크롤러는 로봇 또는 스파이더라고도 부른다 검색엔진에 널리 쓰이는 기술로 웹에 새로 올라오거나 갱신된 컨텐츠를 찾는것이 주된 일이다.
크롤러의 용도
검색 엔진 인덱싱
웹 아카이빙
웹 마이닝
웹 모니터링
...
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론)CHAPTER 4 오류코드가 실행되는 환경은 불완전 하다. 사용자가 잘못된 입력을 제공하고, 외부 시스템이 다운되며, 자신이 작성한 코드와 다른 개발자가 작성한 코드가 종종 버그를 가질수 있다.
오류에 ...
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론)CHAPTER 3 다른 개발자와 코드 계약예측 가능한 코드를 작성하라, 코드를 오용하기 어렵게 만들라 두가지 원칙은 다른 사람이 작성한 코드와 상호작용할 때 일어날수 있는 일과 관련 있다
자신의 코드와 ...
가상면접으로 배우는 대규모 시스템 설계 기초8장 URL 단축기 설계
API 엔드포인트
URL 단축용 엔드포인트
URL 리다이렉션 엔드포인트
URL 리다이렉션
301 Moved Permanently : Location 헤더가 가르키는 주소로 영구 이동됨
302 Fou ...
가상면접으로 배우는 대규모 시스템 설계 기초7장 분산 시스템을 위한 유일 ID 생성기 설계분산 시스템에서 유일성이 보장되는 id를 만드는 방법
다중 마스터 복제(multi-master replication)
데이터 베이스의 auto_increment 기능을 활용함, ...
가상면접으로 배우는 대규모 시스템 설계 기초6장 키-값 저장소 설계키-값 저장소는 키-값 데이터베이스라고도 불리는 비관계형 데이터베이스다키는 유일해야 되며 성능상의 이슈로 키는 짧을수록 좋다값은 보통 무엇이 오던 상관하지 않는다
분산 키-값 저장소는 분산 해시 테이블이 ...