✅ 생성 패턴 (Creational Patterns) - 5가지
객체를 어떻게 생성할지, 생성 과정을 유연하고 재사용 가능하게 설계하는 패턴
[빌프로 팩앱싱]
패턴 핵심 키워드 빌더 패턴
(Builder)- 복합 객체 생성할 때 객체 생성 과정과 구현(표현방법)을 분리
- 동일한 객체 생성에서도 서로 다른 결과 만들 수 있음
- 여러 구성 요소를 조합하여 하나의 객체를 만듦프로토타입 패턴
(Prototype)원본 객체를 복제하여 객체 생성 팩토리메서드 패턴
(Factory Method)- 객체 생성을 서브클래스로 위임
- 상위클래스에서 인터페이스 정의, 실제 생성은 서브 클래스가 담당추상팩토리 메서드
(앱 Abstract Factory Method)- 구체적인 내용들을 숨기고 틀만 제공
- 서로 관련된(연관/의존) 객체들을 묶어 조합하여 인터페이스를 만들어주는 틀
- 팩토리 메서드보다 상위개념(팩토리들의 팩토리)싱글톤
(Singleton)- 하나의 객체 생성
- 어디서든 참조, But 동시에 참조 x
- 인스턴스 하나 보장, 메모리 낭비 최소화
[☞ 구조패턴 공부하러 가기
[☞ 행위패턴 공부하러 가기]
① 빌더 패턴 (Builder Pattern)
🧠 개념 요약
복잡한 객체를 만들 때, 객체 생성 과정을 단계별로 나눠서 구성할 수 있게 해주는 패턴.
다양한 구성 요소를 조립해 하나의 객체를 만드는 데 유용.
🎓 왜 쓰는가?
생성자에 너무 많은 파라미터가 있는 경우 코드가 복잡해짐.
→ 이걸 build() 단계로 쪼개서 가독성을 높이고, 다양한 설정 조합을 쉽게 만들 수 있음.
🔧 예시
User user = new UserBuilder()
.setName("Karina")
.setAge(24)
.setEmail("karina@aespa.com")
.build();
🧃 비유
"햄버거 주문할 때 옵션 고르기"
- 번: 기본
- 패티: 소고기 or 치킨
- 추가: 치즈, 피클, 베이컨 등
→ 조합해서 나만의 햄버거 만들기
② 프로토타입 패턴 (Prototype Pattern)
🧠 개념 요약
기존 객체를 복제(clone) 해서 새로운 객체를 만들 때 사용하는 패턴.
특히, 객체를 만드는 비용이 클 때 유용.
🎓 왜 쓰는가?
객체 생성이 복잡하거나 무겁다면, 하나 만들어 놓고 복사(clone)해서 쓰는 게 효율적임.
🔧 예시
Document doc1 = new Resume("Karina", "Singer");
Document doc2 = doc1.clone(); // 내용은 같지만 다른 객체
🧃 비유
"디자인 파일 복붙하기"
- 이력서 템플릿 하나 만들어놓고, 이름/내용만 살짝 바꿔서 다른 지원서 만들기
③ 팩토리 메서드 패턴 (Factory Method Pattern)
🧠 개념 요약
객체 생성 코드를 서브 클래스에게 위임하는 패턴.
상위 클래스는 객체 생성 방식을 몰라도 됨.
🎓 왜 쓰는가?
객체 생성 코드를 캡슐화해서, 호출하는 쪽에서 어떤 구체 클래스가 만들어지는지 몰라도 사용 가능.
🔧 예시
abstract class Dialog {
abstract Button createButton();
}
class WindowsDialog extends Dialog {
Button createButton() { return new WindowsButton(); }
}
🧃 비유
"자판기에서 음료 뽑기"
- 버튼만 누르면 내부에서 어떤 브랜드의 음료를 꺼내줄지는 몰라도 결과는 동일하게 음료가 나옴
④ 추상 팩토리 패턴 (Abstract Factory Pattern)
🧠 개념 요약
서로 관련 있는 객체들을 묶음으로 생성할 수 있게 해주는 패턴.
팩토리들을 생산하는 "슈퍼 팩토리"
🎓 왜 쓰는가?
여러 개의 관련 객체를 같은 테마나 환경에 맞게 구성할 때 사용함.
(예: 다크 모드 테마에는 어두운 버튼/배경/글씨)
🔧 예시
interface GUIFactory {
Button createButton();
Checkbox createCheckbox();
}
class DarkModeFactory implements GUIFactory {
Button createButton() { return new DarkButton(); }
Checkbox createCheckbox() { return new DarkCheckbox(); }
}
🧃 비유
"스타일 세트로 제공되는 방 인테리어"
- 북유럽 스타일: 테이블, 소파, 조명 모두 동일한 스타일로 구성됨
⑤ 싱글톤 패턴 (Singleton Pattern)
🧠 개념 요약
클래스의 객체를 오직 하나만 생성하도록 보장하고, 어디서든 그 인스턴스에 접근할 수 있게 함.
🎓 왜 쓰는가?
- 전역 설정 관리
- DB 연결 관리
- 로그 시스템 등 "한 개만 존재해야 하는 객체"에 적합
🔧 예시
class Logger {
private static Logger instance = new Logger();
private Logger() {}
public static Logger getInstance() {
return instance;
}
}
🧃 비유
"한 학교에 한 명뿐인 교장 선생님"
[☞ 구조패턴 공부하러 가기]
[☞ 행위패턴 공부하러 가기]
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기 이론] 구조적(정적) 다이어그램 종류-클래스/패키지/컴포넌트 다이어그램 (3) | 2025.07.04 |
---|---|
[정보처리기사 실기 이론] UML 다이어그램 종류 쉽게 이해하기 (1) | 2025.07.03 |
[정보처리기사 실기 이론] 디자인 패턴 유형 | 구조패턴(Structural Pattern) 쉽게 이해하기 (2) | 2025.07.02 |
[정보처리기사 실기 이론] 디자인 패턴 개념과 유형 및 종류 (0) | 2025.07.02 |
[정보처리기사 실기 이론] 소프트웨어 아키텍처 패턴 (3) | 2025.07.02 |