대규모 시스템 설계 기초 스터디 2, 3회차 (챕터 6 ~ 8장,  9 ~ 11장)
Book & Lecture/Books2023. 9. 3. 18:35대규모 시스템 설계 기초 스터디 2, 3회차 (챕터 6 ~ 8장, 9 ~ 11장)

[ 9장 웹크롤러 ] 웹페이지의 내용을 수집해야 한다 이때 예의있게 수집해야 하는 것이 포인트다 즉 한 번 요청한 대상에 대해 되도록 다시 요청하지 않는다 해당 페이지 URL을 해시 등으로 변환한 값을 내부적으로 지니게 한 뒤에 포함여부를 조사하여 (해시 연산) 이미 방문했는지 여부를 알아낸다 그리고 DFS로 접근하면 안됀다! 깊이가 무한히 반복되는 덫 사이트가 있을 수 있다! 이런곳에 접근하면 크롤러가 빠져나올 수 없다... 너비 우선 탐색으로 접근하자 [ 나온 키워드들 ] 웹크롤러와 웹스크래핑 웹크롤러는 페이지를 계속 탐색해 나가면서 indexing을 해나간다 (주로 검색 엔진에 사용) 웹스크래핑은 계속 탐색해나가지는 않으면서 컨텐츠 내용을 수집한다 출처: https://www.baeldung.com..

안정해시 가상 노드 공간 변화의 비 증명
Book & Lecture/Books2023. 8. 17. 17:30안정해시 가상 노드 공간 변화의 비 증명

얼마전 대규모 스터디에서 가상 노드 공간 변화의 비에 대해 공부한 적이 있었다 이론에 따르면 가상 노드의 갯수를 늘릴 수록 데이터가 더욱 더 고르게 분포된다는 것이었다 이 이론을 보면서 느낌이 왔다, 간단한 수학으로 어느 정도 고르게 분포가 되는지를 알아낼 수 있다는 것을... 즉, 나는 이 비율을 숫자로 계산을 하고 싶다 실제로 증명을 해보니 어려운 수학은 들어가지 않았다 자 같이 증명해보자 > n이 1일때 1+1/1 = 2 책에서는 2라고 나온다! 가상노드가 세 개일 경우 (n이 4일때) 1 + 1/4 = 5/4 = 125% 역시 책에서 나온 것과 일치한다 (증명완료)

대규모 시스템 설계 기초 스터디 1회차  (챕터 1 ~ 5장)
Book & Lecture/Books2023. 8. 16. 23:21대규모 시스템 설계 기초 스터디 1회차 (챕터 1 ~ 5장)

요새 가상 면접 사례로 배우는 대규모 시스템 설계 기초 스터디를 하고 있다 배운 점이 많아서 정리를 해보았다! 1장 사용자 수에 따른 규모 확장성 수평적 확장을 하는 이유는 수직적 확장에는 한계가 있기 때문이다 성능 (CPU, Memory) 장애시 대응 문제 DB의 수평적 확장은 특별히 샤딩이라 한다 아래와 같은 문제들이 생긴다 재샤딩(resharding) DB 추가 불균형으로 샤드 키 재분배가 필요할때 유명인사(celebrity) 문제 조인 비정규화로 하여 하나의 테이블에서 질의가 수행될 수 있도록 한다 메시지 큐 서비스 또는 서버 간 결합이 느슨해짐, 규모 확장성을 보장 2장: 개략적인 규모 추정 Log Scale L1, L2 캐시 접근 1ns 뮤텍스 락 락/언락 100ns RAM 접근 100ns i..

유닛 테스트 책을 읽고
Book & Lecture/Books2023. 7. 30. 19:45유닛 테스트 책을 읽고

좋은 테스트란 무엇일까? 우아한테크코스에 있던 "A군"의 말이 생각난다... "최근 구조 하나를 바꿨어. 신규 기능을 하나 추가할 때마다, 코드가 n제곱씩 늘어나더라고? 그래서 각이다 싶어 상태패턴을 도입했지... 그랬더니 테스트가 60개 깨지네?" 무언가가 잘못됐다고 생각했다... 이 불편함의 근원에 대해 성실하게 조사해봤었어야 했는데 당시에는 무척 바빠서 그러지 못했다 그로부터 1년 가까이 지난 후 시간이 있을 때마다 테스트에 관한 책을 조금씩 읽어봤다 저자가 수학이란 학문을 좋아하는 것 같다 책에서 그런 느낌을 물씬 받았다 어떤 공리와 비슷한 것들을 정의해 놓고 그 위에 이론과 생각을 차곡차곡 쌓아나간다... 다행히 이론적이기만 한 책이 아니라 실용적인 관점에서 접근한 책이다 이게 가장 중요하다고 ..

image