개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
클래스는 작아야 한다!
클래스가 응집력을 잃는다면 쪼개라!
OCP(확장에 개방적이고 수정에 폐쇄적이어야 한다)
TIL (Today I Learned) 날짜
2022-05-11
오늘 읽은 범위
10장. 클래스
책에서 기억하고 싶은 내용을 써보세요.
캡슐화 - 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다는 법칙도 없다.
클래스 이름은 해당 클래스 책임을 기술해야 한다. 클래스 이름이 모호하다면 필경 클래스 책임이 너무 많아서다.
단일 책임 원칙(Single Responsibility Principle)은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다.
큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다. 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다.
우리는 응집도가 높은 클래스를 선호한다. 응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미기 때문이다.
새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직 하다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
책에서 이야기하는 것 처럼 '깨끗하고 체계적인 소프트웨어' 보다는 프로그램이 잘 돌아가기만 하면 무심코 그냥 넘어 갔던 것 같다. SRP를 잘 지키면서 클래스를 설계하는 것이 사실상 제한된 시간내에 프로젝트를 빨리 빨리 진행시켜야 하는 입장에서는 쉽지 않은 과정이지만 앞으로는 좀 더 신경쓰도록 노력해봐야겠다. 이 책은 참 반성을 많이 하게 만드는 책이다!