Afaik

객체지향 프로그래밍

🎯 핵심 개념 요약

  • 생성패턴: 객체 생성 방식의 유연한 제어와 캡슐화 (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: 언어 문법의 객체 표현

강의 내용을 그대로 옮기지 않고, 제 생각대로 요약하고 정리했습니다.

자세한 내용은 프론트엔드 마스터클래스를 참조해주세요.