delpho

[Java] 싱글톤 패턴에 대해서 설명해주세요. 본문

CS/Java

[Java] 싱글톤 패턴에 대해서 설명해주세요.

delpho 2022. 9. 4. 19:08

_1. 

싱글톤 패턴 = 디자인 패턴의 한 종류

 

디자인 패턴이 뭔데?

[ 패턴 ]

일정한 형태의 양식이나 유형

 

[ 디자인 패턴 ]

객체 지향 프로그래밍 설계를 할 때, 자주 발생하는 문제들을 피하기 위해 사용되는 패턴

 

 

 

_2.

[ 싱글톤 패턴 (Singleton parttern) ]

객체의 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디서든 동일한 인스턴스에 접근할 수 있도록 하는 디자인 패턴

 

 

[ 싱글톤 패턴 예시 ]

public class Singleton {

    private static Singleton instance = new Singleton();
    
    private Singleton() {
        // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다.
    }

    public static Singleton getInstance() {
        return instance;
    }

    public void say() {
        System.out.println("hi, there");
    }
}

 

 

 

 

_3. 

이걸 왜 쓰는건데?

[ 싱글톤 패턴 사용하는 이유 ]

1. 메모리 낭비 방지

2. 두 번째 호출부터 객체 로딩 시간 줄어들어 성능 업

 

 

 

 

_4. 

단점은 없어?

[ 싱글톤 패턴의 단점 ]

1. 싱글톤 패턴을 남용하면 자원을 차지하고, GC가 자원을 회수하지 못함.

2. 멀티 스레드 환경에서 여러 스레드가 동시에 인스턴스를 호출하게되면 getInstance함수로 인해 두개 이상 생김

 


출처

https://zzang9ha.tistory.com/392

 

[Java, 디자인 패턴] - 싱글턴 패턴(Singleton Pattern)

📎 글또 6기 포스팅 1. 미치도록 더웠던 7월의 회고 2. 사용자가 게시물을 작성할 때의 트랜잭션 처리 3. Spring AOP - (1) 프록시 패턴, 데코레이터 패턴 4. [MySQL] - 트랜잭션의 격리 수준(Isolati

zzang9ha.tistory.com

https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/

 

싱글톤(Singleton) 패턴이란?

이번 글에서는 디자인 패턴의 종류 중 하나인 싱글톤 패턴에 대해 알아보자. 싱글톤 패턴이 무엇인지, 패턴 구현 시 주의할 점은 무엇인지에 대해 알아보는 것만으로도 많은 도움이 될 것이라

tecoble.techcourse.co.kr

https://lanicc.medium.com/%EC%8B%B1%EA%B8%80%ED%86%A4-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80-4bdf9f1cf765

 

싱글톤 패턴이란?

작년부터 안드로이드를 주 개발로 삼으면서 주변 지인들에게 코드리뷰를 받았을때 “왜 싱글톤 안썼어?” 라는 말을 많이 들었더랩죠. 그때 처음 싱글톤 이라는 단어를 접하게 됐는데 이 글에

lanicc.medium.com