정처기 감자
SW 설계디자인패턴

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

템플릿 메서드 template method 패턴 - 타입스크립트 예시

SW설계디자인패턴
읽는데 4분 소요
처음 쓰여진 날: 2025-09-01
마지막 수정일: 2025-09-01
조회수: —
선수학습(1개)
  • 정보처리기사 실기를 위한 디자인 패턴 암기 방법

요약

디자인 패턴 중 템플릿 메서드 template method 패턴을 타입스크립트 코드와 함께 알아봅니다.

템플릿 메서드 (Template Method) 패턴 요약

패턴 종류핵심 키워드
템플릿 메서드 (Template Method)변하지 않는 부분은 상위 클래스, 변하는 부분은 하위 클래스에서 재정의(override)
템플릿 메서드 패턴 감자
템플릿 메서드 패턴 감자

템플릿 메서드 (Template Method) 패턴

템플릿 메서드 패턴은 알고리즘의 골격(뼈대)은 상위 클래스에서 정의하고, 알고리즘의 특정 단계들은 하위 클래스에서 재정의(override)할 수 있도록 하는 패턴입니다. 즉, 전체적인 로직의 흐름(템플릿)은 부모가 통제하되, 세부적인 내용은 자식에게 위임하는 방식입니다.

앞서 비유로 들었던 '라면 끓이기' 가 바로 이 패턴의 완벽한 예시입니다. 라면을 끓이는 과정은 대체로 정해져 있습니다.

  1. 물을 끓인다.
  2. 면과 스프를 넣는다.
  3. (선택) 계란, 치즈, 만두 등 추가 재료를 넣는다.
  4. 그릇에 담아낸다.

이 전체 과정이 템플릿 메서드입니다. 여기서 '물을 끓인다'나 '면과 스프를 넣는다' 같은 단계는 모든 라면에서 동일하지만, '추가 재료를 넣는다'는 단계는 어떤 라면을 끓이느냐에 따라 달라집니다. 템플릿 메서드 패턴은 이처럼 변하지 않는 부분은 상위 클래스에 두고, 변하는 부분만 하위 클래스에서 구현하도록 하여 코드의 중복을 줄이고 일관된 구조를 유지하게 해줍니다.

기본 구조

  • AbstractClass: 템플릿 메서드를 정의하는 추상 클래스입니다. 템플릿 메서드는 알고리즘의 각 단계를 나타내는 여러 메서드를 순서대로 호출합니다. 이 중 일부는 하위 클래스에서 구현해야 하는 추상 메서드(abstract method)이거나, 선택적으로 재정의할 수 있는 hook 메서드일 수 있습니다.
  • ConcreteClass: AbstractClass를 상속받아, 알고리즘의 특정 단계를 실제로 구현하는 하위 클래스입니다.

예시: 세상의 모든 라면 만들기

다양한 종류의 라면을 만드는 과정을 템플릿 메서드 패턴으로 구현해 보겠습니다.

먼저, 라면 제조의 전체적인 흐름을 정의하는 AbstractClass인 RamenRecipe를 만듭니다.

typescript
코드 하이라이팅 중…

이제 RamenRecipe를 상속받아 구체적인 라면 레시피를 만드는 ConcreteClass인 CheeseRamen과 DumplingRamen을 구현합니다.

typescript
코드 하이라이팅 중…

cook()이라는 템플릿 메서드 덕분에 어떤 라면이든 일관된 순서로 만들어집니다. 개발자는 addExtraIngredients()처럼 달라지는 부분에만 집중하면 됩니다. 만약 '계란 라면'을 추가하고 싶다면, addExtraIngredients()에서 계란을 추가하는 EggRamen 클래스를 새로 만들기만 하면 됩니다.

템플릿 메서드 패턴 중요 키워드

  • 알고리즘의 골격을 상위 클래스에서 정의합니다.
  • 상속을 통해 동작을 확장합니다. (전략 패턴은 위임을 사용)
  • 코드 중복을 제거하고 일관된 구조를 강제할 수 있습니다.
  • 상위 작업의 구조를 바꾸지 않으면서 서브 클래스로 작업 일부분을 수행할 수 있습니다.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(1개)
  • 디자인 패턴 정보처리기사 기출 문제 모음

추천 개념

Beta

관련 글

(41개)
제목태그업데이트시험
추상 팩토리 abstract factory 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
빌더 builder 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
팩토리 메서드 factory method 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-11-03-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999