CS17 1.1.5 프록시 패턴과 프록시 서버 🟩 프록시 패턴대상 객체에 접근하기 전, 접근에 대한 흐름을 가로채 해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 패턴객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용됨프록시 객체로 쓰이기도 하지만 프록시 서버로도 활용됨프록시 객체 : 대상의 기본적인 동작의 작업을 가로챌 수 있는 객체프록시 서버 : 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램🔹 프록시 패턴의 주요 목적접근 제어: 객체에 대한 접근을 제한하고, 조건을 만족하는 경우에만 접근 허용로깅/통계/모니터링: 메서드 호출 전후에 로그를 남기거나 성능 측정지연 초기화(Lazy Initialization): 리.. 2025. 5. 19. 1.1.4 옵저버 패턴 🟩 옵저버 패턴주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메소드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴주체 : 객체의 상태 변화를 보고 있는 관찰자옵저버 : 객체의 상태 변화에 따라 전달되는 메소드 등을 기반으로 '추가 변화 사항'이 생기는 객체 // Subject 인터페이스interface Subject { void registerObserver(Observer o); void removeObserver(Observer o); void notifyObservers();}// Observer 인터페이스interface Observer { void update(String message);}// ConcreteSubjectcl.. 2025. 5. 18. 1.1.3 전략 패턴 🟩 전략 패턴객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주며 상호 교체가 가능하게 만드는 패턴정리하면 행위를 캡슐화 하여, 실행 시점에 알고리즘을 선택 가능한 패턴🎯 예시 시나리오: 할인 정책일반 고객: 할인 없음VIP 고객: 10% 할인직원: 20% 할인→ 할인 전략을 각각 캡슐화하고, 고객 등급에 따라 전략을 선택해서 적용하는 구조가 전략 패턴. // 1. 전략 인터페이스 정의public interface DiscountStrategy { int applyDiscount(int price);}// 2. 다양한 전략(행동) 구현public class NoDiscount implements DiscountStrategy { .. 2025. 5. 16. 1.1.2 팩토리 패턴 🟩 1.1.2 팩토리 패턴객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정상위, 하위 클래스가 분리되기 때문에 느슨한 결합을 가짐상위 클래스에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 유연성을 가짐객체 생성 로직이 따로 떼어져 있기 때문에 유지 보수성 증가 🟩 팩토리 패턴이 사용되는 대표적인 경우 1. 다형성 기반 객체 생성// 인터페이스, 구현체public interface Animal { void speak();}public class Dog implements Animal { public void speak() { Syste.. 2025. 5. 16. 1.1.1 싱글톤 패턴 🟩 디자인 패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록하나의 '규약' 형태로 만들어 놓은 것 🟩 1.1.1 싱글톤 패턴하나의 클래스를 기반으로 단 하나의 인스턴스를 가지는 패턴데이터베이스 연결 모듈에 주로 사용됨하나의 인스턴스를 다른 모듈들이 공유하기 때문에 비용이 줄어드는 장점이 있음.의존성이 높아지는 단점 또한 존재함자바에서 싱글톤 패턴이 사용되는 경우🟩 하나의 인스턴스만 존재해야 하는 것의 의미 객체가 딱 하나만 생성되고, 이 객체가 프로그램 전체에서 공유되어 사용된다는 의미일반적인 클래스 사용 예User u1 = new User();User u2 = new User();싱글톤 클래스 사용 예Logger logger1 = Logger.. 2025. 5. 16. 이전 1 2 3 다음