노마드북클럽/클린코드

📚 10장. 클래스

햅삐한 포메라리안 2022. 3. 8. 10:32
반응형

오늘 TIL 3줄 요약

  • 클래스의 크기는 작을수록 좋다.
  • 클래스나 모듈을 변경할 이유는 하나, 단 하나뿐이어야 한다.
  • 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다.

 

TIL (Today I Learned)

2022.03.08

 

오늘 읽은 범위

10장. 클래스

 

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

  • 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. (p.172)
  • 클래스를 만들 때 첫 번째 규칙은 크기다. 클래스는 작아야 한다. 두 번째 규칙도 크기다. 더 작아야 한다. (p.172)
  • 클래스 설명은 만일("if"), 그리고("and"), -(하)며("or"), 하지만("but")을 사용하지 않고서 25단어 내외로 가능해야 한다. (p.175)
  • 단일 책임 원칙(Single Responsibility Principle, SRP)은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. (p.175)
  • "도구 상자를 어떻게 관리하고 싶은가? 작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가? 아니면 큰 서랍 몇 개를 두고 모두를 던져 넣고 싶은가?" (p.177)
  • 큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다. 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다. (p.177)
  • OCP(Open-Closed Principle)란 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다는 원칙이다. (p.188)
  • 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다. (p.188)
  • 시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다. 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다. 시스템 요소가 서로 잘 겨길되어 있으면 각 요소를 이해하기도 더 쉬워진다. (p.190)

 

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

  • 큰 서랍과 작은 서랍에 대한 비유가 정말 인상깊었다. 정리할 때 큰 서랍에 모든 것을 때려 박았던 경험이 있다. 그리고 후에 큰 서랍에 있는 모든 물건을 쏟아서 원하는 물건을 꺼낸다. 다시 물건을 큰 서랍에 때려 박는다. 이것을 반복한다. 오우야...

  • 정리의 신이 되는 방법은 사실 간단할지도 모른다. 물건이 없으면 정리할 것도 없다. 미니멀리스트를 지향하자.
  • 다음에 다시 오겠습니다! 이해는 나중에~ 빠잉

 

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

  • 일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 더 높다. (중략) 일반적으로 이처럼 응집도가 가장 높은 클래스는 가능하지도 바람직하지도 않다. (p.177)
  • 응집도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다. (p.178)
  • 불행히도 이렇게 하면 클래스가 응집력을 잃는다. (p.178)
  • 응집도가 높을수록 좋지 않다고 했는데 응집도가 높아지도록 클래스를 쪼갠다(?) 응집도가 높을수록 좋다는건가? 안좋다는 건가? /// 결론: 응집도가 높을수록 좋음

 

THX

 

결합도와 응집도 링크

THX

 

오늘 읽은 다른사람의 TIL

 

반응형