찾아볼 것

소프트웨어는 그 소프트웨어가 폐기되기 전까지는 항상 변화한다. 객체지향 설계를 하는 이유는 변화에 빠르고 안전하게 대응하기 위해서이다. 변화가 없다면 그냥 쉬운 절차지향 설계를 해서 쓰는게 더 좋다.

변경이 일어날 때 필요한 작업을 최소화하고 그 변경이 다른 곳에 문제를 일으키지 않도록 해야한다.

변화는 보통 집중된 한가지 관심에 대해 일어난다. 하지만 그에 따른 작업은 한 곳에 집중되지 않는 때가 많다.

따라서 우리가 준비해야할 일은 한 가지 관심은 한 군데에 집중되게 만들어야하는 것이다. 즉 관심이 같은 것끼리는 모으고, 관심이 다른 것은 따로 떨어져있게 해야하는 것이다. → 이것이 바로 프로그래밍의 기초인 관심사 분리 이다.

이를 객체지향 관점에서 본다면 관심이 같은 것 끼리는 하나의 객체로 또는 친한 객체로 모아주고, 관심이 다른 것은 가능한 한 따로 떨어져서 서로 영향을 주지 않게 만드는 것이다.