티스토리 뷰

반응형

🚀 스프링에서 디자인 패턴의 중요성

디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이
인정한 가장 효율적인 예시를 정리한 패턴의 집합이다.

🌠 프록시 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP)

프록시는 대리자/ 대변인의 역할을 수행하는 존재를 말한다.

디자인 패턴에서의 프록시는 서비스 메서드의 반환값에 가감하지 않는 것이 특징이다. 다만, 제어의 흐름을 제어하거나 다른 로직을
수행하기 위해 사용하는 패턴이다.

☄ 프록시 패턴 - 전

004

public class Service implements IService {
    public String runSomething() {

        return "서비스 짱!!!";
    }
}

public class ClientWithNoProxy {
    public static void main(String[] args) {
        // 프록시를 이용하지 않은 호출
        Service service = new Service();
        System.out.println(service.runSomething());
    }
}

☄ 프록시 패턴 - 후

005006


public interface IService {
    String runSomething();
}

public class Service implements IService {
    public String runSomething() {
        return "서비스 짱!!!";
    }
}

public class Proxy implements IService {
    IService service1;

    public String runSomething() {
        System.out.println("호출에 대한 흐름 제어가 주목적, 반환 결과를 그대로 전달");

        service1 = new Service();
        return service1.runSomething();
    }
}

public class ClientWithProxy {
    public static void main(String[] args) {

        // 프록시를 이용한 호출
        IService proxy = new Proxy();
        System.out.println(proxy.runSomething());
    }
}

🌠 정리

제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴

  • 대리자는 실제 서비스와 같은 이름의 메서드를 인터페이스를 통해 구현한다.
  • 대리자는 실제 서비스에 대한 참조 변수를 갖는다.(합성)
  • 대리자는 실제 서비스의 같은 이름을 가진 메서드를 호출하고, 그 값을 클라이언트에게 돌려준다.
  • 대리자는 실제 서비스의 메소드 호출 전후에 별도의 로직을 수행할 수도 있다.

🧾 Reference

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함