# [til] 10장. 클래스

## TIL (Today I Learned) 날짜
2024년 2월 11일
<br>

## 오늘 읽은 범위
10장. 클래스
<br>

### 책에서 기억하고 싶은 내용
#### 클래스는 작아야 한다!
- **단일 책임 원칙** :
클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙
- - 큰 클래스 몇 개보다 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.
- - 작은 클래스는 각자 맡은 책임과 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다.
- **응집도를 유지하면 작은 클래스 여럿이 나온다.**
- - 큰 함수를 작은 함수 여럿으로 나누기만 해도 클래스 수가 많아진다.
- 작은 클래스 여럿으로 쪼개면 프로그램에 점점 더 체계가 잡히고 구조가 투명해진다.
<br>

#### 변경하기 쉬운 클래스
새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하며, 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다.

- **변경으로부터 격리** :
요구사항은 변하기 마련이다. 따라서 코드도 변하기 마련이다. 상세한 구현에 의존하는 클라이언트 클래스는 구현이 바뀌면 위험에 빠지기 때문에 인터페이스와 푸상 클래스를 사용해 구현이 미치는 영향을 격리해야 한다.
<br>

### 오늘 읽은 소감
객체지향 프로그래밍의 핵심 원칙을 강조하는 "클래스" 장을 읽으면서, 단일 책임 원칙과 작은 클래스의 중요성, 그리고 변경에 유연하게 대응하는 클래스 설계의 필요성을 배울 수 있었다.

이러한 원칙들을 적용하면 프로그램의 구조를 더욱 명확하고 관리하기 쉽게 만들 수 있으며, 요구사항의 변화에 더욱 효과적으로 대응할 수 있다는 것을 느꼈다.
