일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 국비지원 예습
- 샤로수길 맛집
- 강아지종류
- 신포동 맛집
- 반려견 사료등급
- 강아지 유기농 사료
- 자동화봇
- 강아지
- 반려견 더위
- 반려견 열사병
- 티켓팅메크로
- 강아지 더위
- 티켓팅매크로
- 부산 맛집
- 강아지 유기농
- 강아지 열사병
- 반려견 홀리스틱
- 반려견 종류
- 닥스훈트
- 홀리스틱 유기농
- 강아지 홀리스틱
- 서울대입구 맛집
- 강아지 종류
- 쿠팡메크로
- 동인천 맛집
- 반려견
- 쿠팡매크로
- 반려견 유기농 사료
- 반려견 유기농
- 샤로수길 데이트
- Today
- Total
심심한잉여의 잡동사니
[디자인 패턴] 싱글톤 패턴(Singleton)이란? 본문
싱글톤(Singleton) 패턴이란?
객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.
public class Singleton {
private static Test test = new Test();
private Test() {
// 생성자는 외부에서 호출 못하게 private으로 지정
}
public static Test getTest(){
return test;
}
}
장점
싱글톤은 메모리 측면에서 처음에만 new 연산자를 통해 고정된 메모리 영역을 사용하는 것으로 메모리 측면에서 이점을 가져올 수 있다.
따라서, 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있으며 이미 생성되어 있는 인스턴스를 활용하여 속도도 더 빠르다는 장점이 있다.
또 다른 장점으론 다른 고셍서도 사용할 때 데이터 공유가 더 간단하다는 것이다.
위 코드로 보면 Test 인스턴스는 전역으로 사용되기 때문에 다른 클래스에서 접근하여 사용하더라도 같은 데이터를 가져 올 수 있다.
하지만 동시성 문제가 발생될 수 있다는 단점을 가지고 있으니 설계 시 유의하길 바란다.
단점
싱글톤 패턴의 문제점으로는 앞서 말한 동시성 문제가 있다.
멀티스레딩 환경에서 동시성 문제가 발생이 되기 때문에 syncronized 키워드를 잘 사용해야 한다.
테스트를 하기 어렵다.
싱글톤으로 구현한 자원이 이미 존재하기 때문에 격리된 환경에서 테스트하기 어렵다는 단점이 있다.
따라서, 이와 같은 테스트를 진행하기 위해선 매번 초기화를 새로 해줘야하지만 이 경우 다른 지점에서 오류가 발생하기 때문에 테스트가 어렵다.
결론
싱글톤의 경우 하나의 인스턴스 생성으로 인한 효율이 있지만 그에 따른 문제점도 많다.
스프링컨테이너와 같은 프레임워크의 도움을 받으면 많은 문제점을 보완하면서 장점을 극대화 시킬 수 있으나 프레임 워크를 사용하지 않고 사용하게 되면 장단점을 잘 고려하여 사용하는 것이 좋을것으로 보인다.
'코딩일기 > 자료 구조' 카테고리의 다른 글
[자료구조]덱/Dequeue(데크) Doubly-ended Queue (0) | 2023.02.20 |
---|---|
[디자인 패턴]추상 팩토리 패턴 (Abstract Factory Pattern) 이란? (0) | 2022.11.30 |
[디자인 패턴] 디자인 패턴이란 (0) | 2022.11.10 |
[자료구조] 큐(Queue) (feat. java) (0) | 2022.05.01 |
[자료구조] 스택(Stack)이란?(feat. Java) (0) | 2022.04.30 |