기술 서적 정리 요약

    [친절한 SQL 튜닝] 목차 및 후기

    책 소개 데이터베이스 성능 분야 최고 베스트셀러인 ‘오라클 성능 고도화 원리와 해법’ 1, 2권을 저술한 조시형 저자님의SQL 튜닝 입문서입니다. -저자 소개 現) 주식회사 디비안 대표이사 오라클 성능 고도화 원리와 해법 1, 2 저자 국가공인 SQLP, DAP 자격검정 전문위원 한국데이터진흥원과 한국DB산업협의회가 공동 주관하는 제1회 우수DB人상을 수상 인터넷 카페 디비안 포럼(WWW.DBIAN.NET) 운영 前) 이랜드, 인슈넷, 디엠에스랩, 엔코아, 비투엔 구매 링크 SQLD 자격증을 준비중이며, 추후 SQLP도 도전해볼 생각이라 구매했습니다. DB 업무를 맡고 있는데 업무에 도움이 되고자 정독하며 정리해보려 합니다. 목차 각 제목에 정리한 글로 이동하도록 링크를 달아 놓을 예정입니다. 1장. S..

    6장 키-값 저장소 설계

    키-값 저장소란? 키-값 저장소(key-value store)는 키-값 데이터베이스라고도 불리는 비 관계형(non-relational) 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자(identifier)를 키로 가져야 한다. 키와 값 사이의 이런 연결 관계를 "키-값" 쌍(pair)이라고 지칭한다. java - (map) 이번 장에선 다음 연산을 지원하는 키-값 저장소를 설계해보자. put(key, value): 키-값 쌍을 저장소에 저장한다. get(key): 인자로 주어진 키에 매달린 값을 꺼낸다. 문제 이해 및 설계 범위 설정 읽기, 쓰기, 그리고 메모리 사용량 사이에 어떤 균형을 찾고, 데이터의 일관성과 가용성 사이에서 타협적 결정을 내린 설계를 만들었다면 쓸만한 답안일 것이다. 다음의..

    5장 안정 해시 설계

    안정 해시(Consistent hash)란? 수평적 규모 확장성을 달성하기 위해 요청 또는 데이터를 서버에 균등하게 나누는 보편적으로 사용되는 기술이다. 안정 해시 기술이 풀려고 하는 문제를 알아보자. 해시 키 재배치(rehash) 문제 N개의 캐시 서버가 있을때 이 서버들에 부하를 균등하게 나누는 보편적인 방법은 아래의 해시 함수를 사용하는 것이다. serverIndex = hash(key) % N (N은 서버의 개수이다.) 서버 풀(Server poll)의 크기가 고정되어 있을 때, 그리고 데이터 분포가 균등할 때는 잘 동작한다. 하지만 서버가 추가되거나 기존 서버가 삭제되면 키가 균등하게 분포되지 않는 문제가 발생한다. 안정 해시 위키피디아에 따르면 "안정 해시(consistent hash)는 해시..

    4장 처리율 제한 장치의 설계

    처리율 제한 장치란? 네트워크 시스템에서 처리율 제한 장치(rate limiter)는 클리이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치다. HTTP를 예로 들면 이 장치는 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한한다. API 요청 횟수가 제한 장치에 정의된 임계치(threshold)를 넘어가면 추가로 도달한 모든 호출은 처리가 중단(block)된다. 처리율 제한 장치 예제 사용자는 초당 2회 이상 새 글을 올릴 수 없다. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없다. 같은 디바이스로는 주당 5회 이상 리워드(reward)를 요청할 수 없다. API에 처리율 제한 장치를 두면 좋은 점 DOS(Denial of Service) 공격에 의한 자원..

    3장 시스템 설계 면접 공략법

    "널리 알려진 제품 X를 설계해보라" 는 식으로 어떠한 시스템의 설계 기술을 시연하고 설계 과정에서 내린 결정들에 대한 방어 능력을 보이며 면접관의 피드백을 건설적인 방식으로 처리할 자질이 있음을 보이는 자리이다. 설계의 순수성에 집착하여 타협적 결정을 도외시하는 over-engineering을 조심하라. 효과적 면접을 위한 4단계 접근법 1단계 문제 이해 및 설계 범위 확정 시스템 설계 면접시에 바로 답을 내지 말라. 올바른 질문, 적절한 가정을 통해 시스템 구축에 필요한 정보를 모으라 즉 면접관의 요구사항을 정확히 이해하는데 필요한 질문을 하라. 구체적으로 어떤 기능을 만들어야 하나. 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상하는가? 회사가 주로 사용하는 기술 스택은 무..

    2장 개략적인 규모 측정

    시스템 용량이나 성능 요구사항을 개략적으로 추정하기 개략적 규모 추정을 효과적으로 해 내려면 규모 확장성을 표현하는데 필요한 기본기에 능숙해야 한다. 특히 2의 제곱수나 응답지연(latency) 값, 그리고 가용성에 관계된 수치들을 기본적으로 잘 이해해야 한다. 2의 제곱수 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지 알아야 정확한 데이터의 양을 측정할 수 있다. 최소단위는 1바이트, 8비트로 구성 모든 프로그래머가 알아야 하는 응답지연 값 구글의 제프 딘은 2010년 통상적인 컴퓨터에서 구현된 연산들의 응답지연 값을 공개하였다. 한 구글 엔지니어는 이 수치를 쉽게 시각화하는 도구를 개발하였다. 이하 그림은 이 도구를 사용해 2020년 기준으로 시각화한 수치이다. 위 수치로 알 수 있는 사..