전체 글(202)
-
Message Queue
1. Message Queue Message Queue란 비동기 메시지를 사용하는 다른 응용프로그램 사이의 데이터 송수신을 구현한 시스템을 의미합니다. 사용자가 많아져서 웹 요청이 증가하면 요청에 대한 응답을 기다리다가 대기 시간이 지연되어 서비스를 정상적으로 제공하지 못하게 됩니다. 이런 상황을 해결하기 위해 기존에 분산되어 있던 데이터 처리를 한 곳에 집중하면서 Message Broker를 두어서 필요한 프로그램에 작업을 분산시키는 것이 Message Queue의 목적입니다. 이러한 Message Queue는 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 Service Oriented Architecture의 개발에 도움을 줄 수 있습니다. 2. Message Queue의 장점 비동기: Que..
2020.05.08 -
Pub/Sub 모델
1. Pub/Sub 모델이란 Pub/Sub 모델은 Publish/Subscribe의 줄임말로 메시지 기반의 미들웨어 시스템을 말합니다. 일반적으로 메시지를 전송할 때는 publisher(sender)가 subscriber(receiver)에게 직접 메시지를 전송합니다. 하지만 Pub/Sub 모델에서는 publisher는 어떤 subscriber가 있는지 모르는 상태에서 메시지를 전송하고 subscriber는 publisher에 대한 정보 없이 자신의 Interest에 맞는 메시지만을 전송 받는 것을 말합니다. 위의 그림을 보면 sensor는 어떤 기기가 메시지를 받을지 모르는 상태에서 MQTT로 데이터를 전송합니다. 그리고 MQTT는 temperature가 필요한 기기들에게 메시지를 전송합니다. 이처럼 ..
2020.05.07 -
Transaction Template
1. @Transactional의 한계 public class TransactionInvoker { private A1Dao a1dao; private A2Dao a2dao; public void setA1dao(A1Dao dao){ this.a1dao = dao; } public void setA2dao(A2Dao dao){ this.a2dao = dao; } // 외부에서 호출하는 method public void invoke() throws Exception{ doInternalTransaction(); } @Transactional public void doInternalTransaction() throws Exception{ a1dao.insertA1(); a2dao.insertA2(); } }..
2020.05.07 -
Factory Pattern
1. Factory Method Pattern Factory Method Pattern은 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 인스턴스를 생성할지는 서브 클래스에서 결정하도록 하는 디자인 패턴입니다. Factory Method Pattern은 사용하는 인스턴스를 직접 생성하지 않고 팩토리 클래스를 통해 인스턴스를 생성합니다. 이렇게 객체의 생성과 사용을 분리함으로써 효율적으로 코드를 제어할 수 있고 결합도를 낮춰 유지보수가 용이합니다. 아래의 예제와 같이 생성합니다. Suit public abstract class Suit{ public abstract String getName(); } Suit의 구현 클래스 // SpaceSuit public class SpaceSuit extends ..
2020.05.06 -
Chain Of Responsibility
1. Chain Of Responsibility Chain Of Responsibility란 요청을 처리할 수 있는 기회를 하나 이상의 객체에 부여함으로써 요청하는 객체와 처리하는 객체 사이의 결합도를 제거하는 패턴입니다. 요청을 해결할 객체를 만날 때까지 객체 고리를 따라서 요청을 전달합니다. 일반적으로 처리할 수 있는 모든 객체들을 고리로 묶고 맨 처음 객체에게 전달하여 처리하지 못하면 다음 객체로 넘기는 방식으로 진행됩니다. 아래를 예제를 통해 어떻게 구현되는지 확인할 수 있습니다. 예제를 보면 숫자를 요청으로 전달했을 때, 객체 고리를 따라서 데이터를 전달합니다. 체인 public interface Chain { public abstract void setNext(Chain nextInChain)..
2020.05.02 -
Observer Pattern
Observer PatternObserver Pattern이란 한 객체의 상태 변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성하는 패턴입니다. 데이터의 변경이 발생했을 경우, 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용합니다.위의 이미지를 보면 Subject 인터페이스의 구현체의 상태에 변화가 있을 때, Observer 들에게 notify를 통해 상태 변화를 알려주는 것을 의미합니다.ObserverPattern의 예시예를 들어, 어떤 유저와 채팅 방이 있다고 가정하겠습니다. 유저는 채팅방에 말할 수 있고, 채팅을 받을 수 있습니다. 그리고 유저는 채팅방, 게임방에 임장을 해 각 채팅방에 메시지를 전달하는 상황입니다.public class User ..
2020.05.02