5장 안정 해시 설계
가상면접으로 배우는 대규모 시스템 설계 기초5장 안정 해시 설계수평적 규모 확장성을 달성하기 위해서 요청 또는 데이터를 서버에 균등하게 나누는게 중요하다 해시키 재배치 문제n개의 캐시서버의 부하를 균등하게 나누는 보편적인 방법은 serverindex = ha ...
Read more
CHAPTER 2 추상화 계층
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론)CHAPTER 2 추상화 계층 문제와 하위 문제를 어떻게 해결하는가도 중요하지만 그것들을 해결하는 코드를 어떻게 구성하는가도 중요하다 코드를 잘 구성한다는 것은 간결한 추상화 계층을 만드는 것으로 귀결 ...
Read more
CHAPTER 1 코드 품질
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론)CHAPTER 1 코드 품질고품질 코드는 좀 더 신뢰할 수 있다 유지보수가 쉽다 버그가 적은 소프트웨어를 생산 좋은 코드는 좋은 소프트웨어를 만들기 위한 유일한 조건은 아니지만 중요한 조건중에 하나 ...
Read more
4장 처리율 제한 장치 설계
가상면접으로 배우는 대규모 시스템 설계 기초4장 처리율 제한 장치 설계토큰 버킷 알고리즘인자 버킷 크기 토큰 공급율 장점 구현이 쉽다 메모리 사용 측면에서도 효율적이다. 짧은 시간에 집중되는 트래픽도 처리가능하다 단점 버킷 크기와 토큰 공급률이라는 두개의 인자 ...
Read more
3장 시스템 설계 면접 공략법
가상면접으로 배우는 대규모 시스템 설계 기초3장 시스템 설계 면접 공략법효과적 면접을 위한 4단계 접근법 문제 이해 및 설계 범위 확정 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 하라 구체적으로 어떤 기능들을 만들어야 하나? 제품 사용자 수는 얼마나 되나? 회사 ...
Read more
2장 개략적인 규모 추정
가상면접으로 배우는 대규모 시스템 설계 기초2장 개략적인 규모 추정 2의 제곱수 : 데이터 볼륨의 단위 1바이트, 1킬로바이트, 1메가바이트… 응답 지연값 : 구글의 제프 딘이 응답지연값을 공개한것이 있다. 메모리는 빠르지만 디스크는 아직도 느리다 디스크 탐색(se ...
Read more
1장 사용자 수에 따른 규모 확장성
가상면접으로 배우는 대규모 시스템 설계 기초1장 사용자 수에 따른 규모 확장성 단일 서버 -> 데이터베이스 분리 -> 수평적 확장 vs 수직적 확장 수직적 확장 : 스케일업 단점 : 한계가 존재함, 장애 복구에 대한 방안이나 다중화 방안을 제시하지 않는다 ...
Read more
mysql (mariaDB) HikariCP 성능 튜닝
mysql (mariaDB) HikariCP 성능 튜닝HikariCP 설정12345678910111213141516spring: datasource: hikari: data-source-properties: cachePre ...
Read more
mysql (mariaDB) 성능 튜닝 (performance tuning)
mysql (mariaDB) 성능 튜닝 (performance tuning)DB server 성능 튜닝 max_connections : 데이터베이스 서버에 대한 최대 동시 연결 수를 제어합니다.이 값을 너무 낮게 설정하면 연결 오류가 발생할 수 있고 너무 높게 설정하면 ...
Read more
이펙티브 코틀린 아이템 42: compareTo의 규약을 지켜라
이펙티브 코틀린(클래스설계)아이템 42: compareTo의 규약을 지켜라compareTo는 Any에 있는 메소드가 아니라 부등식으로 변환되는 연산자이다. 비대칭적 동작: a≥b 이고 b≥a 라면 a==b이다. 연속적 동작: a≥b 이고 b≥c라면 ...
Read more