{
이번 항목에서 이 문구가 제일 마음에 와 닿는다. "나누고 정복하라. 작은 클래스가 만들기도 쉽고, 얻기도 쉬울 뿐만 아니라 테스트하고 사용하기도 쉬우며, 다양한 상황에서 활용하기에도 편리하다."
왜 이 부분이 와 닿았냐면, 나는 보통 주말에 청소를 한다. 여러가지 이유가 있겠지만, 아마도 빨래를 할 수 있는 날이기 때문이다. 그래서 바닥을 쓸거나 닦거나 책정리 나 쓰래기를 정리하는것을 몰아서 처리 한다.
이것은 청소 할 때마다 불편했다. 왜냐하면 좋지 못한 환경에서 지내야 하고, 청소 할 때 마다 많은 먼지가 발생하고, 이 먼지들이 여러곳에 달라 붙는다. 다시 이 먼지들을 털어내면서 더 많은 시간이 잡아 먹게 된다.
이제야 나는 청소를 할 수 있다면, 조금씩 청소를 해야 한다고 생각 했고, 각 파트별로 나누었다. 바닦 쓸기를 예로 들자면, 잠자기 전에 한번, 나가기 전에 한번씩 쓴다. 이렇게 나누고 청소해 보니 참 좋았었다.
빚데어 보자면, 클래스 하나에 기능을 몰아서 넣고 처리하다 보면, 복잡한 환경에서 계속 코딩해야 하고, 변경또한 다른곳에 영향이 쌓여 확산에 따른 작업 때문에 힘들어 진다는 것이다.
각각 분리하게 된다면 어떤 장점이 있을까?
1. 구분짖기가 쉽다.
2. 이해하기가 쉽고 재활용성이 좋다.
3. 분산 배치가 유리하다.
4. 캡슐화를 좀 더 강화시켜 준다.
5. 오류를 발견하고 수정하기 쉬워진다.
어떻게 분리 하는게 좋은가? 내가 경험으로 알게 된 것은 "오캄의 면도날"을 많이 생각해야 한다는 것 밖에 없다. ... 자 스스로 경험을 찾고 발전해 나가자.
}
최근댓글