본문 바로가기

PATTERN

(4)
[PATTERN] Proxy Pattern 프록시는 대리인이라는 뜻으로, 무엇인가를 대신 처리하는 의미입니다. 일종의 비서라고 생각하시면 됩니다. 사장님한테 사소한 질문을 하기보다는 비서한테 먼저 물어보는 개념이라고 생각할 수 있겠습니다. > https://blog.outsider.ne.kr/789에서 프록시 패턴의 정의를 작성한건데 다른 어느곳보다 제일 이해가 쉬웠다. 프록시 패턴의 쓰임 가상프록시 꼭 필요로 하는 시점까지 객체의 생성을 연기하고, 해당 객체가 생성된 것처럼 동작하도록 만들고 싶을때 사용하는 패턴입니다. 프록시 클래스에서 자잘한 작업들을 처리하고 리소스가 많이 요구되는 작업들이 필요할 때에만 주체 클래스를 사용하도록 구현하며 위에서 예로 들었다시피 해상도가 아주 높은 이미지를 처리해야 하는 경우 작업을 분산하는것을 예로 들 수 ..
[PATTERN] Producer - Consumer 여러 개의 producer는 각각 동일한 작업을 해서 queue에 집어넣고, consumer에서는 queue에 있는 작업을 가져가서 각자 동일한 작업으로 수행합니다. 여기서 여러 개의 producer와 consumer들이 각각 동일한 작업을 수행하는 여러개의 쓰레드 혹은 프로세스로 구성이 되므로 병렬처리가 되는 것입니다. 실무에서 사용하는 예시로 에러기록을 쌓는 경우 사용됩니다. 만약 어플리케이션 서버에 수 많은 이용자가 에러를 발생시킨다면 이 에러를 처리하는 서버는 과부가하 걸리고 다른 요청을 처리 못하게 됩니다. 이때 프로바이더 컨슈머 패턴을 사용하면 어플리케이션 서버에서 오류가 발생하면 오류를 담아두는 객체를 생성하고 해당내용을 큐에 넣어둡니다. 큐는 어플리케이션 서버에서 주기적으로 읽어 오류가 있..
[PATTERN]Adapter Pattern 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할수 있다. 이렇게 함으로써 클라이언트와 구현된 인터페이스를 분리시킬수 있으며, 향후 인터페이스가 바뀌더라도 그 변경 내역 은 어댑터에 캡슐화 되기 때문에 클라이언트는 바뀔 필요가 없어진다. 예를 들어보면 기존 시스템의 서버간 통신은 EJB, Socket(TCP/IP)를 사용중이 었으나 추가된 시스템은 Http통신이 필요하다. public class HttpTransfer { public void doProcess() { System.out.println("doProcess call : " + this.getClass().getName()); } } Transfer transfer = new HttpTransferAdapter(new HttpTr..
[PATTERN] DelegationPattern 정의 Business delegate pattern은 Java EE design pattern의 하나로 특정 케이스마다 처리해야 하는 로직이 틀린 경우에 사용이 되는 패턴입니다. 아래 구조를 보면 클라이언트는 Business delegate에게 이런 비즈니스 로직을 수행하겠어 요청을 하면 Lookup Service가 상황에 맞는 비즈니스클래스를 룩업해 로직을 수행하도록 합니다. Structure Business delegate - client가 특정 서비스를 요청할 클래스 (비즈니스 로직 안가지고 있음) Lookup Service - delegate가 호출하는 클래스로 특정 케이스마다 처리를 담당하는 실제 구현체를 반환 Business Service - 실제 사용될 서비스 인터페이스로 실제 비즈니스 로직..