CHAPTER 2 추상화 계층
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론) CHAPTER 2 추상화 계층 문제와 하위 문제를 어떻게 해결하는가도 중요하지만 그것들을 해결하는 코드를 어떻게 구성하는가도 중요하다 코드를 잘 구성한다는 것은 간결한 추상화 계층을 만드는 것으로 귀결될 때가 많다 널값 및 의사코드 규약 많은 프로그래밍
Writing
기술 자체보다 어떤 문제를 왜 그렇게 풀었는지에 초점을 둡니다.
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론) CHAPTER 2 추상화 계층 문제와 하위 문제를 어떻게 해결하는가도 중요하지만 그것들을 해결하는 코드를 어떻게 구성하는가도 중요하다 코드를 잘 구성한다는 것은 간결한 추상화 계층을 만드는 것으로 귀결될 때가 많다 널값 및 의사코드 규약 많은 프로그래밍
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART I 이론) CHAPTER 1 코드 품질 고품질 코드는 좀 더 신뢰할 수 있다 유지보수가 쉽다 버그가 적은 소프트웨어를 생산 좋은 코드는 좋은 소프트웨어를 만들기 위한 유일한 조건은 아니지만 중요한 조건중에 하나다 코드는 어떻게 소프트웨어가 되는가 코드베이스 : 소
가상면접으로 배우는 대규모 시스템 설계 기초 4장 처리율 제한 장치 설계 토큰 버킷 알고리즘 인자 버킷 크기 토큰 공급율 장점 구현이 쉽다 메모리 사용 측면에서도 효율적이다. 짧은 시간에 집중되는 트래픽도 처리가능하다 단점 버킷 크기와 토큰 공급률이라는 두개의 인자를 가지고 있는데 이값을 적절하게 튜닝하는게 어렵다. 누출
가상면접으로 배우는 대규모 시스템 설계 기초 3장 시스템 설계 면접 공략법 효과적 면접을 위한 4단계 접근법 문제 이해 및 설계 범위 확정 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 하라 구체적으로 어떤 기능들을 만들어야 하나? 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상되나? 회사가
가상면접으로 배우는 대규모 시스템 설계 기초 2장 개략적인 규모 추정 2의 제곱수 : 데이터 볼륨의 단위 1바이트, 1킬로바이트, 1메가바이트... 응답 지연값 : 구글의 제프 딘이 응답지연값을 공개한것이 있다. 메모리는 빠르지만 디스크는 아직도 느리다 디스크 탐색(seek)는 가능한 피하라 단순한 압축 알고리즘은 빠르다
가상면접으로 배우는 대규모 시스템 설계 기초 1장 사용자 수에 따른 규모 확장성 단일 서버 데이터베이스 분리 수평적 확장 vs 수직적 확장 수직적 확장 : 스케일업 단점 : 한계가 존재함, 장애 복구에 대한 방안이나 다중화 방안을 제시하지 않는다. 수평적 확장 : 스케일 아웃 로드벨런서 : L2(Data link 계층을
mysql (mariaDB) 성능 튜닝 (performance tuning) DB server 성능 튜닝 max connections : 데이터베이스 서버에 대한 최대 동시 연결 수를 제어합니다. 이 값을 너무 낮게 설정하면 연결 오류가 발생할 수 있고 너무 높게 설정하면 너무 많은 메모리를 사용하여 전체 성능이 저하될
이펙티브 코틀린(클래스설계) 아이템 42: compareTo의 규약을 지켜라 compareTo는 Any에 있는 메소드가 아니라 부등식으로 변환되는 연산자이다. 비대칭적 동작: a≥b 이고 b≥a 라면 a==b이다. 연속적 동작: a≥b 이고 b≥c라면 a≥c이다. 코넥스적 동작(connex relation): a≥b 또는
이펙티브 코틀린(클래스설계) 아이템 41: hashCode의 규약을 지켜라 해시 테이블 Map, Set : 컬렉션에 요소를 빠르게 추가하고 컬렉션에서 요소를 빠르게 추출해야한다고 할때 사용할 수 있는 자료구조 Map, Set은 중복 비허용 성능을 좋게 만드는 해결 방법 해시 테이블 해시 테이블은 각 요소에 숫자를 할당하는