(클린코드) 10장. 클래스

Posted by Eun JongHyeok on February 01, 2025

오늘 TIL 3줄 요약

  • SRP : 클래스가 맡은 역활은 하나, 변경해야할 이유도 하나
  • 큰 함수를 나누다보면 클래스를 나눌 수 있게 된다.
  • 인터페이스나 추상 클래스를 이용하여 변경이 미치는 영향을 격리할 수 있다.

TIL (Today I Learned) 날짜

  • 2025.02.02

오늘 읽은 범위

  • 10장. 클래스

책에서 기억하고 싶은 내용을 써보세요.

  • 클래스는 작아야 합니다. 무엇이 작아야 하냐면 클래스가 맡은 책임이 작아야 합니다.

  • 클래스 이름은 해당 클래스 책임을 기술해야 합니다. 클래스의 설명은 if(만일), and(그리고), or(하며), but(하지만)을 사용하지 않고 25 단어 내외로 설명 가능해야 합니다.

  • 단일 책임 원칙(SRP) : 클래스나 모듈을 변경할 이유가 단 하나뿐이여야 한다는 원칙입니다.

  • 클래스를 언제 변경해야할지 생각하다 보면 클래스를 추상화하기 쉬워지고 클래스를 나누는데 도움이 됩니다.

큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.

  • 응집도란 클래스의 메서드들이 인스턴스 변수들을 많이 사용할 수록 응집도가 높다 할 수 있습니다.

  • 함수를 쪼개다 보면 인스턴스 변수가 늘어나게 되고 응집력을 잃게됩니다. 클래스의 응집력이 떨어진다면 클래스를 나눌 기회가 생깁니다.

  • 시스템이든 요구사항이든 변경은 계속 가해집니다. 확장에 개방적이고 수정에 폐쇠적이여야 한다는 OCP 원칙을 적용되도록 변경할 수 있습니다.

  • 인터페이스나 추상 클래스를 사용하여 구현이 미치는 영향을 격리시킬 수 있습니다.

  • 결합도를 줄이면 자연스럽게 DIP를 따르는 클래스가 나옵니다. DIP는 클래스가 추상화에 의존해야 한다는 원칙입니다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 함수에서도 그랬듯이 클래스에서도 ‘이름을 어떻게 지어주어야 하나?’와 ‘어떻게 나누어야 하냐?’를 계속 고민하게 되는거 같습니다.
    양쪽다 추상화하는 연습을 요구하는 것 같습니다.😭

  • 이미 습관적으로 클래스 이름에 Manager나 Service를 붙였었고 Super는 아니지만 Core라는 이름도 사용해왔는데..
  • 예전이라면 그대로 두었겠지만 그래도 책에서 얘기한 기준으로 책임을 생각해보고 그 다음에 응집도를 생각해보고 하면서 조금씩 개선해보려 합니다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 책을 읽으면서 SOLID 원칙이 나왔는데 아직까지는 느낌으로만 이해하고 있는거 같습니다..
  • SOLID는 따로 구체적인 예제로 정리할 예정입니다.

오늘 읽은 다른사람의 TIL


nomadcoder
study
노마드코더
노개북
개발자북클럽

← Previous Post Next Post