[TIL] [2024.10.28] Clean Code

김동진김동진
2 min read

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

    작은 클래스는 각자 맡은 책임, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다.

  • 응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미이다.

💡
책에서 기억하고 싶은 내용을 써보세요.
  • 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.

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

  • 일반적으로 메서드가 변수를 더 많이 사용할수록 응집도가 높아진다.

  • 응집도를 유지하면 작은 클래스 여럿이 나온다.

  • 클래스 일부에서만 사용되는 비공개 메서드는 코드를 개선할 잠재적인 여지를 시사한다.

  • 개방 폐쇄 원칙 : 확장에 개방적이고 수정에 폐쇄적이어야 한다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장 할 뿐 기존 코드를 변경하지 않는다.

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

  • 의존 관계 역전 : 본질적으로 클래스는 상세한 구현이 아니라 추상화에 의존해야한다.

💡
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.
  • SOLID 5원칙에 대해서 Java에 입문했을 때부터 많이 들어왔지만, 정작 깨끗한 코드를 작성하기 위해 고민하지 않았던 지난날을 반성하게 되는 계기가 되었다. 각 원칙들이 이론적으로 어떤 이야기인지는 많이 접해왔지만 실무에 적용하기 위해 오픈한 프로젝트를 리팩토링 하기 위해 고민하지는 않았던 것 같다. 운영 중인 시스템이라는 부담감에 오류나 신규 개발이 아닌 기존의 코드를 더 효율적으로 사용하기 위해, 유지보수를 편하게 하기 위해 리팩토링을 적용하기에 부담이 컸던 것이 사실이다. 하지만 경험하지 않으면 발전할 수 없다는 걸 뒤늦게 깨달았다. 지금부터라도 리팩토링에 힘을 실어서 언젠가는 리팩토링이 아니더라도 우아한 코드를 작성할 수 있는 날이 오리라 믿어 의심치 않는다.
0
Subscribe to my newsletter

Read articles from 김동진 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

김동진
김동진