Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 10장. 클래스
#clean_code
2년 전
629
2

2022.05.10

💡 오늘 TIL 3줄 요약

  • 클래스는 작아야 한다.

  • 어떤 변경이든 클래스에 손대면 다른 코드를 망가뜨릴 잠정적인 위험이 존재한다

  • 새 기능을 수정하거나 기존 기능을 변경할 때 건드를 코드가 최소인 시스템 구조가 바람직하다.


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

  • 클래스 체계

    1. 정적 공개, 정적 비공개, 비공개 인스턴스

    2. 공개 함수, 비공개 함수

  • 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.

  • 클래스는 작아야 한다.

  • 클래스 설명은 if, and, or, but을 사용하지 않고 25단어 내외로 가능해야 한다.

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

  • “도구 상자를 어떻게 관리하고 싶은가? 작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가? 아니면 큰 서랍 몇 개를 두고 모두를 던져 넣고 싶은가”

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

  • 응집도: 인스턴스 변수를 매서드마다 사용하는 클래스는 응집도가 높다.

  • 어떤 변경이든 클래스에 손대면 다른 코드를 망가뜨릴 잠정적인 위험이 존재한다.

  • 우리가 재구성한 Sql클래스는 파생 클래스를 생성하는 방식으로 새 기능에 개방적인 동시에 다른 클래스를 닫아놓는 방식으로 수정에 폐쇄적이다.

  • 새 기능을 수정하거나 기존 기능을 변경할 때 건드를 코드가 최소인 시스템 구조가 바람직하다.

  • 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장 할 뿐 기존 코드를 변경하지는 않는다.

  • 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.


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

  • 클래스는 아직 좀 어렵다. 많이 다양하게 써보지 않아서 그렇지만 클래스도 결국 좋은 함수를 만드는 방법의 연장선에 있는거 같다. 간결하고 독립적인 클래스를 만드는 것, 귀찮다고 다 쑤셔넣는 것이 아니라 몇 개월, 몇 년이 지나 업데이트를 해야할 때도 불편하지 않게 만드는 것이 중요하다.

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

💬 오늘 읽은 다른사람의 TIL

2 comments