이론/디자인패턴

    프록시 패턴

    프록시 패턴이란? 프록시는 “대리”라는 의미를 가진다. 그렇다면 무엇을 대리하는 것일까? 실제 객체의 ‘존재’를 대신한다. 실제 객체로 접근하기 전에 일단 프록시 객체를 거쳐가게끔 하는 방식이다. 구현 방식 프록시 객체는 실제 객체와 완벽히 같은 인터페이스를 구현하여야 한다. 그래야 다형성을 통해 프록시 객체가 실제 객체의 존재를 대신할 수 있다. 일단 동작을 위해 실제 객체의 존재를 대신하여 프록시 객체를 생성하여 메모리 상에 올려 놓는다. 이때, 프록시 객체는 실제 객체의 참조값을 갖고 있다. 실제 객체에 대한 요청이 들어오면 그때, 요청을 받은 프록시 객체가 실제 객체를 생성한다. 실제 객체가 로직을 실행합니다. 한번 실제 객체가 생성이 되었다면, 프록시 객체는 생성되어있는 실제 객체를 호출해줍니다..

    싱글톤 패턴이란?

    싱글톤 패턴이란? 클래스의 인스턴스가 단 1개만 생성되는 것을 보장하는 것 인스턴스가 2개 이상이 되지 않도록 막아야하므로 생성자의 접근제어자를 private 로 지정하여 new 로 생성하지 못하게 해야한다. 그럼 싱글톤 패턴을 대체 왜 쓰는 걸까? 예를 들어, UserService 라는 클래스가 있다고 하고, 고객이 접근을 할 때 필수적으로 사용된다고 해보자. 1분에 100명의 고객이 접근한다면, 분당 100개의 UserService 객체가 생성되고 사라져 엄청난 자원 낭비가 일어난다. 이런 문제를 해결하기 위해 모든 고객들이 하나의 객체를 공유하면 좋겠다는 아이디어에서 나온 것! 기본적인 싱글톤 패턴의 구현 방식 class Singleton { // static 으로 딱 1개만 private stat..