본문 바로가기

독서25

클린 아키텍처 3부. 설계 원칙 7장. SRP: 단일 책임 원칙단일 모듈의 변경의 이유가 하나, 오직 하나뿐이어야 한다.SOLID 원칙 중 의미가 가장 잘 전달되지 못한 원칙은 단일 책임 원칙으로, 모듈이 단 하나의 일만 해야 한다는 의미가 아니다.SRP는 함수는 반드시 단 하나의 일만 해야 한다는 원칙이다.여기서 변경의 이유는 변경을 요청하는 한 명 이상의 사람들(액터)에 해당한다.즉, 하나의 모듈(소스 코드)은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다.모듈은 단순히 함수와 데이터 구조로 구성된 응집된 집합이다. ‘응집된(cohesive)’ 이라는 단어가 SPR를 암시한다.단일 액터를 책임지는 코드를 함께 묶어주는 힘이 바로 응집성(cohesion)이다. 징후 1: 우발적 중복코드의 중복을 피하기 위해 각기 다른 액터들이 .. 2024. 7. 19.
클린 아키텍처 2부. 벽돌부터 시작하기: 프로그래밍 패러다임 3장. 패러다임 개요구조적 프로그래밍최초로 적용된 패러다임으로 1968년 데이크스트라가 발견했다.데이크스트라는 무분별한 점프는 프로그램 구조에 해롭다는 사실을 제시했다.이러한 점프를 if/then/else와 do/while/until과 같이 더 익숙한 구조로 대체했다.구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다. 객체 지향 프로그래밍1966년 요한 달과 크리스텐 니가드에 의해 발견됐다.함수 호출 스택 프레임을 힙으로 옮기면, 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견했다.이러한 함수가 클래스의 생성자가 되었고, 지역 변수는 인스턴스 변수, 중첩 함수는 메서드가 되었다.함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 필연적으로 다형.. 2024. 7. 19.
클린 아키텍처 1부. 소개 1장. 설계와 아키텍처란?설계와 아키텍처아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 말한다.(ex. 집의 구조)설계는 저수준의 구조 또는 결정사항 등을 의미한다.(ex. 집 내부의 전등, 콘센트, 가구, 공간이나 방의 배치)아키텍처와 설계는 모두 소프트웨어 전체 설계의 구성요소다.이 둘은 단절 없이 이어지며, 이를 통해 대상 시스템의 구조를 정의한다.개별로 존재할 수 없고 두 실제로 구분 짓는 경계는 뚜렷하지 않다.고수준에서 저수준으로 향하는 의사결정의 연속성만이 있을 뿐임 좋은 소프트웨어 설계의 목표는?소프트웨어 아키턱처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화 하는 것설계 품질을 재는 척도는 고객의 요구를 만족시키는 데 드는 비용을 재는 척도와 다름없다.이 .. 2024. 7. 19.
개념적인 튜닝용어 기초 용어오브젝트 스캔 유형테이블 스캔과 인덱스 스캔으로 구분테이블 스캔 : 인덱스를 거치지 않고 바로 디스크에 위치한 테이블 데이터에 접근테이블 풀 스캔인덱스 스캔 : 인덱스로 테이블 데이터에 접근인덱스 범위 스캔인덱스 풀 스캔인덱스 고유 스캔인덱스 루스 스캔인덱스 병합 스캔📈 테이블 풀 스캔인덱스를 거치지 않고 테이블에서 바로 처음부터 끝까지 훑는 방식WHERE 절의 조건문을 기준으로 활용할 인덱스가 없거나, 전체 데이터 대비 대량의 데이터가 필요할 때 수행된다.성능 측면에서는 부정적이다.인덱스 없이 사용하는 유일한 방식이다.📈 인덱스 범위 스캔인덱스 범위 기준으로 스캔한 뒤 테이블의 데이터를 찾아가는 방식SQL문에서 BETWEEN ~ AND 구문이나, , LIKE 구문 등 비교 연산 및 구문에 .. 2024. 1. 30.