목차

01 웹 어플리케이션과 싱글톤

왜 웹에 싱글톤이 사용되는지

02 싱글톤 패턴

    @Test
    @DisplayName("싱글톤 패턴을 적용한 객체 사용")
    void singletonServiceTest(){
        SingletonService singletonService1 = SingletonService.getInstance();
        SingletonService singletonService2 = SingletonService.getInstance();

        System.out.println("singletonService1 = " + singletonService1);
        System.out.println("singletonService2 = " + singletonService2);
    }

이렇게 instance로 참조하면 같은 객체를 반환하는 것을 확인할 수 있다.

Untitled

<aside> 💡 참고: 싱글톤 패턴을 구현하는 방법은 여러가지가 있다. 여기서는 객체를 미리 생성해두는 가장 단순하고 안전한 방법을 선택했다.

</aside>

싱글톤 패턴을 적용하면 고객의 요청이 올 때마다 객체를 생성하는 것이 아니라, 이미 만들어진 객체를 공유해서 효율적으로 사용할 수 있다. 하지만 싱글톤 패턴은 다음과 같은 수 많은 문제점을 가지고 있다.

싱글톤 패턴의 문제점


03 싱글톤 컨테이너

스프링 컨테이너는 싱글톤 패턴의 문제점을 해결하면서, 객체 인스턴스를 싱글톤 (1개만 생성)으로 관리한다. 지금까지 배운 스프링 빈이 바로 싱글톤으로 관리되는 빈이다.