Reference

    [Design Pattern] Proxy

    "헤더퍼스트 디자인패턴" + "면접을 위한 CS 전공 지식 노트"에 개인적인 의견과 생각들을 추가하여 작성한 포스팅이므로 틀린 내용이 있을 수 있습니다. (있다면 지적 부탁 드립니다.) 📕 목차 1. Proxy Pattern 2. Remote Proxy : Monitoring 3. Protection & Dynamic Proxy 1. Proxy Pattern 📌 프록시 패턴 다른 객체의 대리인을 두어 로직의 흐름을 제어하는 행동 패턴 Client가 대상 객체(Subject)의 메서드를 직접 실행하지 않고, Proxy 객체의 메서드에서 추가적인 로직을 처리한 뒤 접근하게 한다. 대상 클래스가 민감한 정보를 가지고 있거나, 원본 객체의 불변성을 유지하면서 생성 비용이 비싼 혹은 추가적인 기능을 가미하고 싶을..

    [Design Pattern] Observer

    "헤더퍼스트 디자인패턴" + "면접을 위한 CS 전공 지식 노트"에 개인적인 의견과 생각들을 추가하여 작성한 포스팅이므로 틀린 내용이 있을 수 있습니다. (있다면 지적 부탁 드립니다.) 📕 목차 1. Observer Pattern 2. 기상 스테이션 코드 3. Functional Interface & Observer 1. Observer Pattern 📌 옵저버 패턴 한 객체의 상태가 바뀌면, 그 객체에 의존하는 다른 객체에게 연락을 취해 자동으로 내용이 갱신되는 일대다 의존성 주체가 어떤 객체(Subject)의 상태 변화를 감지하면, 상태 변화가 있을 때마다 메서드 등을 통해 관찰자(Observer)들에게 통지하고, 관찰자들은 알림을 받아 조치를 취한다. 주체: 객체의 상태 변화를 보고 있는 관찰자 옵..

    [Design Pattern] Strategy

    📕 목차 1. Strategy Pattern 2. 예시 코드 1. Strategy Pattern 📌 전략 패턴 정책 패턴(policy pattern)이라고도 한다. 실행(런타임) 중에 객체의 행위를 바꾸는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체하는 패턴 전략이란 일종의 알고리즘이며, 특정 목표를 수행하기 위한 기능이나 동작 계획을 말한다. 어떤 일을 수행하는 알고리즘이 여러가지 일 때, 변형이 빈번하게 필요한 경우 적합하다. 결제 방법은 네이버 페이, 카카오 페이 등 다양한 방법이 존재한다. OAuth 인증 방법은 네이버, 카카오, 구글, 애플 등 다양한 방법이 존재한다. 구조 클라이언트: 특정 전략 객체를 Context에 전달하여, 전략을 등록하거나 전략 알고리즘 실행 결과를 받는다...

    [Design Pattern] Factory

    "헤더퍼스트 디자인패턴" + "면접을 위한 CS 전공 지식 노트"에 개인적인 의견과 생각들을 추가하여 작성한 포스팅이므로 틀린 내용이 있을 수 있습니다. (있다면 지적 부탁 드립니다.) 📕 목차 1. Legacy Client 2. Simple Factory 3. Factory Method Pattern 4. Dependency Injection 5. Dependency Inversion Principle 6. Abstract Factory Pattern 1. Legacy Client 📌 클라이언트가 피자 주문하기 public class LegacyPizzaStore { public Pizza orderPizza(String type) { Pizza pizza = null; if (type.equals("..