객체지향 생활 체조 - 규칙 6: 모든 엔티티를 작게 유지

Photo by Xavi Cabrera on Unsplash

모든 엔티티를 작게 유지한다.

이 규칙이 가지는 의미

이 말은 50줄 이상 되는 클래스와 10개 파일 이상 되는 패키지는 없어야 한다는 뜻이다.

 이 규칙을 책에서는 위와 같이 설명했다. 이 말은 어느 정도 공감하지만 실제로 만들어지는 응용 소프트웨어에서도 가능한가?라고 했을 때의 답은 잘 모르겠다. 하다못해 어떤 객체에 기능이 5줄짜리인 메서드가 10개만 있어도 이 객체에는 더 이상 기능을 추가하기 어렵다. 말이 10개의 메서드이지 객체를 만들다 보면 10개의 기능은 금방 추가된다. 여기서 공감할 수 있는 부분은 객체가 가진 코드 줄의 수가 100줄만 이상만 돼도 그 객체가 무슨 행동을 하는지 파악하기가 어려운 것은 사실이다.

 

 또한 패키지도 객체처럼 응집력이 있고 단일한 목표가 있어야 한다고 말한다. 이 부분은 패키지가 작을수록 정체성 즉 목적을 뚜렷이 표현하기 때문이라고 생각한다. 어느 프로그래머든 패키지의 클래스 파일이 많으면 많을수록 분석하는 것도, 사용하는 것도 쉽지 않다.

정리하기

 이 규칙은 결론을 내리기가 어려운 부분이 있다. 규칙이 가지는 의미를 다시 새겨보면, "50줄 이상의 객체는 한 가지 이상의 일을 하고 있을 확률이 높다. 그러니 작게 유지해라"라는 말이다. 그런데 간혹 객체에서 분리하려는 행동이 그 객체가 가지고 있어야 문맥상 흐름이 맞는 경우가 있다. 그럴 때면 이런 경우는 어떻게 해야 하지?라는 생각이 든다.

 

 결론적으로 최대한 엔티티를 작게 유지할 수 있도록 노력해야 한다. 기본적으로는 50줄 이상 되는 객체를 만들지 않는 게 좋지만 상황에 따라서는 이 규칙을 적용하지 못하고 객체를 만들어야 하는 경우가 있다.

 

 

소프트웍스 앤솔러지 - 객체지향 생활 체조 학습하기

객체지향 생활 체조 규칙 알아보기 소프트웍스 앤솔러지 책 내용 중에는 10장 내외로 짧은 내용이지만 따라 하다 보면 자연스럽게 객체지향적인 코드를 작성할 수 있는 좋은 규칙이 있습니다.

7942yongdae.tistory.com

 

반응형

댓글

Designed by JB FACTORY