본문 바로가기
클린 코드

10장. 클래스

by 아토로 2022. 3. 9.

오늘 읽은 범위

  • 10장. 클래스

기억하고 싶은 내용

  • 클래스 체계 (p.172)
    • 정적(static) 공개(public) 상수 → 정적 비공개(private) 변수 → 비공개 인스턴스 변수 → 공개 함수 → 비공개 함수
    • 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫다.
  • 클래스는 작아야 한다! (p.172)
    • 클래스의 크기를 측정하는 척도는 클래스가 맡은 책임이다.
    • 단일 책임 원칙(Single Responsibility Principle, SRP): 클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙이다.
    • 응집도(Cohesion): 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미이다.
    • 응집도를 유지하면 작은 클래스 여럿이 나온다.
  • 변경하기 쉬운 클래스 (p.185)
    • 시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다.
    • 결합도를 최소로 줄이면 자연스럽게 클래스 설계 원칙인 DIP(Dependency Inversion Principle)를 따르는 클래스가 나온다.

소감 및 생각

  • 클래스는 작아야 한다. 하지만 그 크기가 중요한 것이 아니고 클래스가 맡은 책임이 한가지여야 한다는 점이 인상깊었다. 그동안 개발을 하면서 무의식적으로 한개의 클래스에 여러 책임을 부여하지 않았었나 반성하게 된다. 클래스의 책임을 명확히 파악하여 책임에 맞게 분리하는 연습을 해야겠다.

'클린 코드' 카테고리의 다른 글

9장. 단위 테스트  (0) 2022.03.06
7장. 오류 처리  (0) 2022.03.04
6장. 객체와 자료 구조  (0) 2022.03.01
5장. 형식 맞추기  (0) 2022.02.28
4장. 주석  (0) 2022.02.25

댓글