변화에 대처 가능한 코드를 짜려면 어떻게 해야할까? 컴파일에 결정되는 코드가 아닌 런타임에 결정되는 코드를 짜야 한다. 대표적으로 동작 파라미터화(behavior parameterization)가 있다. 많은 데이터 중 원하는 데이터만 필터링 하려한다. 가볍게 데이터를 파라미터로 받아 조건문으로 필터링하면 된다. 하지만 요구사항은 바뀐다. 필터링 조건은 끊임없이 바뀌고 그럴 때마다 필터링하는 메소드도 복잡해진다. 요구사항이 변함에 따라 필터로직도 수없이 바뀐다. 그렇다면 우리는 어떻게 변화에 대응해야할까? 첫 번째 대응 방법은 '전략 디자인 패턴(Strategy Pattern)'이다. 전략 디자인 패턴은 문제해결을 위한 여러가지 전략이 존재할 때, 전략의 패밀리를 인터페이스로 구현하고 런타임시, 상황에 ..