오늘 TIL 3줄 요약
- 단일 책임 원칙 SRP 는 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다.
- OCP 란 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다는 원칙이다.
- 클래스는 작아야 한다
- 클래스간의 결합도를 줄이자
TIL (Today I Learned) 날짜
- 2024.05.20.월
오늘 읽은 범위
- 10장 클래스
책에서 기억하고 싶은 내용을 써보세요.
- 클래스는 작아야 한다
- 함수는 물리적인 행 수로 크기를 측정했다면,
클래스는 맡은 책임을 센다. - 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 너무 커서 그렇다.
- 단일 책임 원칙 (Single Responsibility Principle, SRP)
- 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다.
- 많은 개발자는 자잘한 단일 책임 클래스가 많아지면 큰 그림을 이해하기 어려워진다고 우려한다. 큰 그림을 이해하려면 이 클래스 저 클래스를 수없이 넘나들어야 한다고 걱정한다.
- 도구 상자를 어떻게 관리하고 싶은가? 작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가? 아니면 큰 서랍 몇 개를 두고 모두를 던져 넣고 싶은가?
- 그래서 큰 함수를 작은 함수 여럿으로 쪼개다 보면 종종 작은 클래스 여럿으로 쪼갤 기회가 생긴다. 그러면 프로그램에 점점 더 체계가 잡히고 구조가 투명해진다.
- OCP (Open-Closed Principle) 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다.
- 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리도어 있다는 의미다.
- 결합도를 최소롤 줄이면 자연스럽게 또 다른 클래스 설계 원칙인 DIP를 따르는 클래스가 나온다. 본질적으로 DIP(Dependency Inversion Principles)는 클래스가 상세한 구현이 아니라 추상화에 의존해야 한다는 원칙이다.
'개발자 소양 독서 도전기 > 클린코드' 카테고리의 다른 글
3주간의 클린코드 도전기 (0) | 2024.05.24 |
---|---|
클린코드 직접 실습하기 (0) | 2024.05.23 |
클린코드 8장. 경계, 9장. 단위 테스트 (0) | 2024.05.18 |
7장. 오류처리 (1) | 2024.05.16 |
클린코드 6장 객체와 자료구조 (0) | 2024.05.13 |