개발/ETC

템플릿 메소드 패턴

devhooney 2025. 5. 20. 07:29
728x90

 

템플릿 메소드 패턴에 대해서 알아보자!

 

 


 

 

728x90

 

 

템플릿 메소드 패턴(Template Method Pattern)은 행동(Behavioral) 디자인 패턴 중 하나로,
알고리즘의 뼈대를 상위 클래스에서 정의하고, 일부 단계는 하위 클래스에서 구현하도록 만드는 구조.

 

 

 

 

 

✅ 핵심 개념 요약

상위 클래스: 알고리즘 전체 구조(순서)를 정의
하위 클래스: 구체적인 단계만 재정의 (hook method 또는 abstract method)
의도: 공통 로직 재사용 + 유연한 확장 제공

 

 

 

✅ 구조 예시 (Java 스타일)

abstract class AbstractTask {

    // 템플릿 메소드 (알고리즘 전체 흐름 정의)
    public final void execute() {
        start();
        doWork();
        end();
    }

    protected void start() {
        System.out.println("작업 시작");
    }

    protected abstract void doWork();  // 하위 클래스가 구현

    protected void end() {
        System.out.println("작업 종료");
    }
}

 

 

- 하위클래스

class FileTask extends AbstractTask {
    @Override
    protected void doWork() {
        System.out.println("파일 처리 중...");
    }
}

 

 

- 사용

AbstractTask task = new FileTask();
task.execute();

 

 

- 결과

작업 시작
파일 처리 중...
작업 종료

 

 

 

 

✅ 언제 쓰면 좋은가?

상황 이유
알고리즘의 흐름은 같지만, 일부 단계만 다를 때 상속을 통해 단계별 맞춤 구현
코드 중복 없이 공통 프로세스 재사용하고 싶을 때 상위 클래스가 흐름 통제
후속 확장이 빈번한 경우 새로운 단계만 추가 가능 (OCP 만족)

 

 

 

 

✅ 실무 예시

도메인 예시
Spring Security AbstractAuthenticationProcessingFilter
테스트 프레임워크 JUnit의 @Before, @After + @Test 흐름
템플릿엔진 HTML 렌더링 흐름 제어
게임 개발 캐릭터의 공격/방어/죽음 흐름 구조화

 

 

 

 

✅ 장점 vs 단점

장점 단점
코드 재사용성 향상 상속 기반이므로 구조가 고정됨
알고리즘 구조 명확화 하위 클래스 수가 많아질 수 있음
개방/폐쇄 원칙(OCP) 만족 유연성보다 구성이 우선될 수 있음

 

 

 

 

 

 


 

 

✅ 요약

더보기

템플릿 메소드 패턴 =
"알고리즘의 흐름은 고정하고, 중간 단계만 자유롭게 바꿀 수 있도록" 만드는 상속 기반 설계 패턴.

 

 

 

 

728x90

'개발 > ETC' 카테고리의 다른 글

NoSQL DB 종류 알아보기  (39) 2025.05.18
결합도 공부  (67) 2025.05.08
이진 트리 공부  (74) 2025.04.30
페이지 교체 알고리즘 공부  (191) 2025.04.28
단일 프로세스 시스템 알아보기!  (41) 2025.04.16