템플릿 메소드 패턴이란 알고리즘의 구조를 메소드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경 없이 알고리즘을 재정의 하는 패턴입니다. 알고리즘이 단계별로 나누어지거나, 같은 역할을 하는 메소드지만 여러 곳에서 다른 형태로 사용이 필요한 경우 유용한 패턴입니다. 토비의 스프링에서는 다음과 같이 정의합니다. 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어 두고 자주 변경되며 확장할 기능은 서브클래스에 만들도록 한다. 조건 클래스는 추상(abstract) 클래스로 만들어야 됩니다. 단계를 진행하는 메소드는 수정이 불가능하도록 final 키워드를 추가합니다. 각 단계에서 외부는 막고, 자식들만 활용할 수 있도록 protected로 선언합니다...