디자인패턴

프록시 패턴과 프록시 서버 💡 프록시 패턴(proxy pattern) 대상 객체(subject)에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인패턴이다. 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용한다. 프록시 객체로 쓰이기도 하지만 프록시 서버로도 활용된다. 📌 프록시 서버에서의 캐싱 캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용하는 것을 말한다. 이를 통해 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있다는 장점이 있다. 💡 프록시 서버 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 ..
전략 패턴(정책패턴) 객체의 행위를 바꾸고 싶은 경우, '직접' 수정하지 않고 전략이라고 부르는 '캡슐화 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다. 💡 캡슐화 데이터와 알고리즘을 하나로 묶는 것(관련있는 변수와 함수를 하나의 클래스로 묶는 것) 외부에서 쉽게 접근하지 못하도록 은닉하는게 핵심 💡 컨텍스트 프로그래밍에서의 컨텍스트는 상황, 맥락, 문맥을 의미하며 개발자가 어떠한 작업을 완료하는데 필요한 모든 관련 정보를 말한다. 어떤 것을 살 때 네이버페이, 카카오페이 등 다양한 방법으로 결제하는 것처럼 결제 방식의 '전략'만 바꿔서 결제하는 것 예제코드 전체보기 더보기 import java.text.DecimalFormat; import java.util.ArrayLi..
팩토리 패턴 팩토리 패턴에는 2가지가 있다. 먼저 심플 팩토리(Simple Factory) 패턴을 알아보자. 💡 심플 팩토리 패턴 객체 만드는 작업을 하나의 팩토리 클래스에 모아두는 것을 의미한다. 심플 팩토리 패턴에서 createPhone() 부분에서 Factory에서 직접 객체를 만드는 것을 Factory를 상속한 서브클래스에서 객체를 만들게끔 하는 것이 팩토리 메소드 패턴이다. 위의 코드에 팩토리 메소드 패턴을 적용해보자. ① 팩토리 메소드 패턴 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것이다. 심플 팩토리 패턴에서 만들었던 객체 생성하는 함수를 모아둔 클래스를 인터페이스화하여 서브클래스에서 어떤 객체를 생성할지 결정하는 것이다. 이렇게 서브 클래스를 둔다면 아이폰, 안드로이드폰의 종류..
디자인패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ’규약‘형태로 만들어 놓은 것을 의미한다. 1. 싱글톤 패턴(singleton pattern) 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에, 보통 데이터베이스 연결 모듈에 많이 사용한다. 장점 : 인스턴스 생성할 때 드는 비용이 줄어든다. 왜?????? 단점 : 의존성이 높아진다. 💡 인스턴스 * Java로 싱글톤 패턴을 구현하는 7가지 방법 2. 팩토리 패턴 팩토리 패턴에는 2가지가 있다. 먼저 심플 팩토리(Simple Factory) 패턴을 알아보자. 💡 심플 팩토리 패턴 객체 만드는 작업을 ..
sesam
'디자인패턴' 태그의 글 목록