개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned) 날짜
2022. 03. 09
오늘 읽은 범위
10장. 클래스
책에서 기억하고 싶은 내용을 써보세요.
클래스는 작아야 한다. 두 번째 규칙도 크기다. 더 작아야 한다.
함수는 물리적인 행 수로 크기를 측정했다. 클래스는 다른 척도를 사용한다. 클래스가 맡은 '책임'을 센다.
단일 책임 원칙(SRP)
우리는 응집도가 높은 클래스를 선호한다. 응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미기 때문이다.
큰 함수를 작은 함수 여럿으로 쪼개다 보면 종종 작은 클래스 여럿으로 쪼갤 기회가 생긴다. 그러면서 프로그램에 점점 더 체계가 잡히고 구조가 투명해진다.
OCP(Open-Close Principle)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
오늘은 내가 가장 코드에 잘 적용해보고 싶은 클래스에 대한 내용을 읽어보았다. 결론적으로는 클래스를 잘 작성하는 방법은 함수를 잘 작성하는 노력과 비슷하였다. 클래스는 변수와 함수(메서드)로 구성되어 있어 그런 듯 하다.
실은 앞서 기억하고픈 내용에서도 언급했지만, 큰 함수를 작은 함수로 여럿 쪼갠다는 표현이 이 클린 코드에서 가장 많이 그리고 왜 그래야 하는지 이유가 납득되는 표현 중 하나였다. 처음 언어를 배울 때는 함수 하나에 모든 변수와 연산을 내용에 집어 넣었고, 나중에는 함수로 쪼개어 표현하는 게 어느 정도 익숙해져, 기능별로 내용을 분리할 수 있었다. 하지만, 클래스의 쓰임새에 대해서도 알고 있는 반면, 코드를 구성할 때, 적용해야 싶은 생각이 잘 떠오르지 않아 그동안 클래스와 많이 친해지지 못했다. 확실히 함수를 작게 나누는 것도 클래스를 적절히 구성하는 것도 객체 지향 개발의 의미 중 하나일텐데...클래스를 '자주' 쓸 수 있게 하려 노력하고 있었지만, 오늘 내용을 읽으며, 클래스를 '잘' 쓰려는 노력 또한 어떻게 해야 하는지 알아볼 수 있었던 것 같다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
X