AbstractClass 추상 클래스
: 알고리즘 단계 메서드들을 선언하고, 특정 순서로 호출하게 하는 템플릿 메서드도 선언
각 단계들은 추상으로 선언되거나 디폴트 구현을 가짐
ConcreteClass 구상 클래스
: 템플릿 메서드 자체를 제외한 모든 단계들을 오버라이드 가능.