본문 바로가기
Programming/Node.js

싱글톤 (Singleton) 패턴

by BTC_HemMu 2022. 10. 21.

싱글톤이란 클래스의 인스턴스가 단 하나만 생성되는 것을 보장하는 디자인 패턴이다.

그렇기 때문에 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다.

public class SingletonService {
    private static final SingletonService instance = new SingletonService();
    
    public static SingletonService getInstance() {
        return instance;
    }
    private  SingletonService(){

    }
    public void logic(){
        System.out.println("싱글톤 객체 호출");
    }
}

해당 예시는 private 생성자로 외부에서 사용하지 못하도록 막았다.

 

객체 인스턴스가 필요하면  getInstance() 메소드를 통해서만 조회 가능하다.

 

void singletonServiceTest(){
        SingletonService singletonService1 = SingletonService.getInstance();
        SingletonService singletonService2 = SingletonService.getInstance();

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

        //singletonService1 == singletonService2 Test
        Assertions.assertThat(singletonService1).isSameAs(singletonService2);
    }

싱글톤을 적용하면 요청이 올 때마다 객체를 생성하지 않고 미리 만들어진 객체를 공유해서 사용한다.

 

싱글톤을 사용하지 않으면 똑같은 요청마다 새로운 객체를 생성하므로 ex) 1000개의 요청시 1000개의 객체생성

메모리 낭비가 심하다.

'Programming > Node.js' 카테고리의 다른 글

Java Casting (형변환)  (0) 2022.11.30
[디자인 패턴] Strategy Pattern  (0) 2022.10.25
[Spring] 컨테이너 빈 이름으로 조회하기  (0) 2022.10.12
[JAVA] this  (0) 2022.10.11
[JAVA] 변수와 메서드  (1) 2022.10.11

댓글