객체지향 프로그래밍
🎯 핵심 개념 요약
- 생성패턴: 객체 생성 방식의 유연한 제어와 캡슐화 (5개)
- 구조패턴: 클래스/객체 조합으로 더 큰 구조 형성 (7개)
- 행동패턴: 객체 간 소통과 책임 분산 방식 정의 (11개)
- 설계 원칙: 단일 책임, 개방-폐쇄, 인터페이스 분리 원칙 기반
- 적용 기준: 유연한 설계와 변경 용이성 확보
🏗️ 생성 패턴 (Creational)
객체 생성 방식을 추상화하여 인스턴스화 로직 분리
| 패턴 | 핵심 개념 | 주요 사용 시기 |
|---|---|---|
| Singleton | 인스턴스 하나로 제한 | 전역 상태, 리소스 공유 |
| Factory Method | 서브클래스에 생성 위임 | 런타임 타입 결정 |
| Abstract Factory | 객체군 생성 추상화 | 제품군 교체 필요 |
| Builder | 단계별 복잡 객체 생성 | 선택적 매개변수 다수 |
| Prototype | 객체 복제로 생성 | 생성 비용 높음 |
과도한 추상화 주의
실제 필요성을 검토한 후 적용해야 하고, 단순한 경우 오히려 복잡성만 증가할 수 있다.
🔧 구조 패턴 (Structural)
클래스와 객체를 조합하여 더 큰 구조 형성
인터페이스 통합
| 패턴 | 해결 문제 | 핵심 아이디어 |
|---|---|---|
| Adapter | 인터페이스 호환성 | 변환기를 통한 통합 |
| Facade | 복잡한 서브시스템 | 단순한 통합 인터페이스 |
| Proxy | 접근 제어/지연 로딩 | 대리자 패턴 |
객체 확장
| 패턴 | 해결 문제 | 핵심 아이디어 |
|---|---|---|
| Decorator | 동적 기능 추가 | 구성을 통한 확장 |
| Composite | 개별-복합 처리 | 트리 구조 활용 |
| Bridge | 추상화와 구현의 강결합 | 독립적 변경 가능 |
| Flyweight | 메모리 효율성 | 공유를 통한 최적화 |
⚡ 행동 패턴 (Behavioral)
객체 간 상호작용과 책임 분산 방식 정의
행동 패턴 장점
- 객체 간 결합도 감소
- 런타임 동작 변경 가능
- 알고리즘과 구조의 독립성
알고리즘 관리
- Strategy: 알고리즘군 캡슐화하여 교체 가능
- Template Method: 골격 정의 + 서브클래스 구현
객체 간 통신
- Observer: 일대다 의존성으로 상태 변화 통지
- Mediator: 복잡한 통신을 중재자가 관리
- Chain of Responsibility: 요청 처리 객체를 체인 연결
상태와 실행 제어
- State: 객체 상태별 행동 변경
- Command: 요청을 객체로 캡슐화
- Memento: 이전 상태 저장과 복원
컬렉션과 해석
- Iterator: 컬렉션 순회 방법 추상화
- Visitor: 데이터 구조와 연산 분리
- Interpreter: 언어 문법의 객체 표현
강의 내용을 그대로 옮기지 않고, 제 생각대로 요약하고 정리했습니다.
자세한 내용은 프론트엔드 마스터클래스를 참조해주세요.