스프링 Spring - Singletorn 싱글톤

김진욱·2022년 2월 18일
0

study

목록 보기
2/6

Singletorn Pattern

애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴.

위 그림과 같이 동일한 서비스를 요청할 때, 요청한 만큼 객체가 계속 생성되고, JVM 메모리에 객체가 계속 쌓이게 됩니다.

이러한 문제를 해결하기 위한 디자인 패턴이 싱글톤 패턴입니다.

  • 테스트 시나리오
public class SingleTornClass {

    private static final SingleTornClass instance = new SingleTornClass();

    private SingleTornClass () {}

    public static SingleTornClass getInstance() {
        return instance;
    }

    public void doSomething() {
        System.out.println("싱글톤 테스트!");
    }
}

static 영역에 미리 객체를 생성하고 재생성이 불가하게 생성자를 private 으로 만든다.

@SpringBootTest
public class SingleTornTest {

    @Test
    public void test() throws Exception {
        SingleTornClass instance1 = SingleTornClass.getInstance();
        SingleTornClass instance2 = SingleTornClass.getInstance();

        Assertions.assertThat(instance1).isEqualTo(instance2);

    }
}

이 객체는 getInstance() 로만 접근이 가능하다

같은 객체임을 확인 할 수 있다.
profile
2021.12~ 공부의 기록

0개의 댓글