본문 바로가기
개발자 소양 독서 도전기/클린코드

10장 클래스

by vitaminFE 2024. 5. 21.

오늘 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)는 클래스가 상세한 구현이 아니라 추상화에 의존해야 한다는 원칙이다.