클린코드

[DAY 17] 클린 코드 TIL - 10장. 클래스

lado 2022. 2. 10. 21:45

🔖 오늘 읽은 범위 : 10장, 클래스 (p.179 ~ p.191)


😀 책에서 기억하고 싶은 내용

  • 큰 함수를 작은 함수 여럿으로 쪼개라.

    • 몇몇 함수가 몇몇 변수만 사용한다면 독자적인 클래스로 분리해라.

  • 변경하기 쉬운 클래스

    • 깨끗한 시스템은 클래스를 체계적으로 정리해 변경에 수반하는 위험을 낮춘다.

  • 개방 폐쇄 원칙Open-Closed Principle

    • 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다.

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

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

    • 시스템의 결합도를 낮추면 유연성과 재사용성도 높아진다.

    • 시스템 요소가 서로 잘 격리되어 있으면 각 요소를 이해하기 더 쉬워진다.

  • 의존 역전 원칙Dependency Inversion Principle

    • 클래스는 상세한 구현이 아니라 추상화에 의존해야 한다.

🤔 오늘 읽은 소감은?

  • 기존 코드를 변경하지 않고도 새 기능을 수정하는 코드를 작성하려면 진짜 노하우가 많이 쌓여야 할 것 같은 느낌이다.
  • 개방 폐쇄 원칙이 설명을 들어도 약간 이해 안됐는데 이번에 이해할 수 있었다.
  • 의존 역전 원칙도 전보다 조금 더 이해하게 된 것 같은데 그래도 아직 잘 모르는 것 같다. 타입스크립트로 구현해보는 연습을 해봐야겠다.

🧐 궁금한 내용이 있거나, 잘 이해되지 않는 내용

  • 결합도를 최소로 줄이는 게 어떻게 추상화에 의존하는 방식이 되는 건지 이해가 안됐다.

📌 소감 3줄 요약

  • 큰 함수를 작은 함수 여럿으로 쪼개라.
  • 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다.
  • 클래스는 상세한 구현이 아니라 추상화에 의존해야 한다.