Singleton 패턴

2022. 5. 4. 15:31·개발정보
반응형

1. Singleton

객체의 인스턴스가 오직 1개만 생성되는 패턴이다. 

 

사용하는 이유 

최초 한번만 new 연산자를 사용해서 고정된 메모리 영역을 사용하기 때문에 다시 접근할 때 메모리 낭비를

방지할 수 있다.

 

뿐만 아니라 이미 생성된 인스턴스를 사용하니 속도 측면에서도 이점이 있으며, 

서로 다른 클래스간 데이터 공유가 쉬워진다. 

 

싱글톤 인스턴스는 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다. 

하지만 동시에 많은 접근을 하게되면 동시성 문제가 발생할 수 있다. 

 

문제점 

당연히 장점만 있는 것이 아닌 단점도 있는다.

 

1. Singleton 패턴을 구현하는 코드 자체가 많이 필요하다. 

 

2. 테스트가 어렵다. 

어플리케이션 전역에서 상태를 공유하기 때문에 테스트를 진행하려면 매번 상태를 초기화시켜야 하는 단점이 있다. 

 

3. 자식 클래스를 만들수 없다. 

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'개발정보' 카테고리의 다른 글

웹소켓  (0) 2022.06.06
Side Effect  (1) 2022.05.16
바인딩  (2) 2022.05.02
브라우저 캐싱  (1) 2022.04.12
디자인 패턴  (1) 2022.04.02
'개발정보' 카테고리의 다른 글
  • 웹소켓
  • Side Effect
  • 바인딩
  • 브라우저 캐싱
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    next.js
    typescript
    리얼학습일기
    바질 키우기
    ReactNative
    덤프
    영어회화
    javascript
    프로그래머스
    알고리즘
    네이버 부스트캠프
    타입스크립트
    리액트
    CSS
    다이소
    redux
    리얼클래스
    Babel
    Docker
    react
    네트워크
    식물
    CCNA
    바질
    webpack
    자바스크립트
    영어독학
    타일러영어
    Node.js
    ChatGPT
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
Singleton 패턴
상단으로

티스토리툴바