1.1.1 싱글톤 패턴

2026. 1. 5. 19:08·Study/면접을 위한 CS 전공지식 노트
반응형

디자인 패턴

  • 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것,

싱글톤 패턴(singleton pattern)

  • 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는패턴
  • 주로 데이터베이스 연결 모듈에 사용

장점

  • 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스 생성비용이 줄어듬

단점

  • 의존성이 높아짐
  • TDD에서 문제점이 생김
    • 싱글톤 패턴은 각 테스트마다 독립적인 인스턴스를 만들기가 어려워 단위테스트 진행이 힘듬. 또한, 모듈간의 결합을 강하게 만들 수 있음

의존성주입

  • 의존성주입으로 모듈간의 결합을 조금 더 느슨하게 만들 수 있음.
  • 장점
    • 모듈들을 쉽게 교체할 수 있는 구조가 되어 테스팅과 마이그레이션이 수월해짐
    • 구현할 때 추상화 레이어를 넣고 이를 기반으로 구현체를 넣어주기 때문에 애플리케이션 의존성 방향이 일관적임
    • 애플리케이션을 쉽게 추론 가능
    • 모듈간의 관계가 조금 더 명확해짐
  • 단점
    • 단위 테스트를 하기 어려움
    • 모듈들이 더욱 더 분리되므로 클래스 수가 늘어나 복잡성이 증가될 수 있음
    • 런타임 패널티가 생기기도 함
  • 원칙
    • 상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야 함
    • 둘다 추상화에 의존해야 하고 추상화는 세부사항에 의존하지 말아야 함

 

 

 

 

 

 

 


틀린 부분이 있거나 인용한 부분에 대해 문제가 있을 시
댓글로 알려주시면 감사하겠습니다.
반응형

'Study > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글

1.2.1 ~ 1.2.4 선언형과 함수형, 객체지향, 절차형 프로그래밍& 패러다임의 혼합  (0) 2026.05.03
1.1.9 ~ 1.1.10 MVP 패턴/MVVM 패턴  (0) 2026.05.03
1.1.6 ~ 1.1.8 이터레이터/노출모듈/MVC 패턴  (0) 2026.01.23
1.1.3~1.1.5 전략/옵저버/프록시 패턴과 프록시 서버  (0) 2026.01.21
1.1.2 팩토리패턴  (0) 2026.01.05
'Study/면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
  • 1.1.9 ~ 1.1.10 MVP 패턴/MVVM 패턴
  • 1.1.6 ~ 1.1.8 이터레이터/노출모듈/MVC 패턴
  • 1.1.3~1.1.5 전략/옵저버/프록시 패턴과 프록시 서버
  • 1.1.2 팩토리패턴
wwwjong
wwwjong
wwwjong 님의 블로그 입니다.
  • wwwjong
    wwwjong 님의 블로그
    wwwjong
  • 전체
    오늘
    어제
    • 분류 전체보기 (42) N
      • Programming (12) N
        • 트러블슈팅 (3)
        • Dev notes (9) N
      • CS (2)
        • Infra (2)
      • 개발환경 (6)
        • Ubuntu (6)
      • Algorithms (15)
        • 백준 (8)
        • Algorithm (3)
        • 코드트리 (3)
        • Programmers (1)
      • Study (6)
        • 면접을 위한 CS 전공지식 노트 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Jenkins
    Nginx
    면접을 위한 CS 전공지식 노트
    ubuntu server
    computer science
    Server
    docker compose
    AI
    LLM
    transformer
    코테공부
    딥러닝
    ubuntu
    트랜스포머
    docker
    CS
    코딩테스트
    skala
    코드트리
    백준
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
wwwjong
1.1.1 싱글톤 패턴
상단으로

티스토리툴바