본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

싱글톤 패턴(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 8. 7.
728x90
반응형
싱글톤 패턴

싱글톤 패턴

싱글톤 패턴은 소프트웨어 디자인 패턴 중 하나로, 클래스의 인스턴스가 단 하나만 생성되도록

보장하는 패턴입니다. 

이 패턴은 어떤 클래스가 항상 하나의 인스턴스만을 갖도록 하며, 그 인스턴스에 접근하는 

전역적인 접근점을 제공합니다. 

주로 리소스를 공유하거나 중복된 작업을 피하고자 할 때 사용됩니다. 



싱글톤 패턴 특징

단일 인스턴스: 

싱글톤 패턴은 클래스의 인스턴스가 오직 하나만 생성되도록 보장합니다. 어떤 이유로든 인스턴스가 

여러 개 생성되지 않습니다.

전역적인 접근 포인트: 

싱글톤 패턴을 사용하면 해당 클래스의 인스턴스에 접근하는 전역적인 접근 지점을 제공합니다. 

이로써 어디서든 동일한 인스턴스에 접근하여 사용할 수 있습니다.

지연 초기화: 

인스턴스가 필요한 시점에 생성됩니다. 이를 통해 프로그램 시작 시에 불필요한 자원 낭비를 줄일 수

있습니다.

자원 공유: 

하나의 인스턴스를 여러 곳에서 공유하여 자원을 효율적으로 관리할 수 있습니다. 

이는 중복된 데이터나 자원 생성을 방지합니다.

중복 코드 제거: 

인스턴스 생성과 관련된 코드 중복을 방지하여 코드 유지 보수의 편의성을 높입니다.

스레드 안전성: 

멀티스레드 환경에서 인스턴스 생성이나 접근 시에 스레드 안전성을 고려하여 구현할 수 있습니다.

객체지향적 설계: 

싱글톤 패턴은 객체지향 프로그래밍 원칙을 준수하며, 관련 기능을 하나의 클래스에 캡슐화할 수 있도록 도와줍니다.

메모리 관리:

인스턴스가 하나만 생성되므로, 메모리 사용을 효율적으로 관리할 수 있습니다.

애플리케이션 전반에서 일관성 유지: 

싱글톤 패턴을 사용하면 애플리케이션 전체에서 같은 인스턴스를 공유하여 일관성을 유지할 수 있습니다.

 

싱글톤 자세히 알기!

예시: 해성이와 싱글톤 패턴

해성이는 학교에서 친구들과 함께 과제를 나눠주고 관리하는 역할을 하는 학생입니다. 이때 싱글톤 패턴을 활용하여 과제 관리 시스템을 구현해 볼 수 있습니다.

과제 관리 시스템 설계: 

해성이는 친구들이 함께 과제를 나누고 관리하는 시스템을 만들기로 결정합니다.

 이 시스템은 모든 학생들이 함께 사용하며, 과제를 추가하고 조회하고 관리하는 기능을 제공합니다.

싱글톤 패턴 적용: 

해성이는 과제 관리 시스템을 싱글톤 패턴으로 구현합니다. 

이렇게 하면 시스템 전체에서 하나의 인스턴스만 생성되어 과제 데이터의 일관성을 유지할 수 있습니다.

해성이의 역할: 

해성이는 과제 관리 시스템의 인스턴스를 사용하여 친구들과 함께 과제를 추가하고 조회합니다. 

싱글톤 패턴을 사용하면 해성이와 친구들이 항상 같은 인스턴스를 공유하게 되어, 

과제 데이터가 일관성을 유지하고 중복된 작업을 방지할 수 있습니다.

친구들과 협업: 

해성이가 시스템을 통해 친구들에게 과제를 나눠주거나 관리하는데 필요한 기능을 제공합니다. 

친구들은 모두 같은 인스턴스를 사용하므로, 과제 데이터의 수정이나 조회가 항상 일관된 결과를 보여줍니다.

중복 과제 방지: 

싱글톤 패턴을 사용하면 과제 관리 시스템 내에서 중복된 과제를 방지할 수 있습니다. 

같은 과제가 여러 번 생성되거나 중복으로 나눠주는 상황을 막을 수 있습니다.

 



*바쁜 사람을 위한 깜찍한 정리

싱글톤 패턴은 코드 중복을 방지하고 하나의 인스턴스를 공유하여 불필요한 코드나 자원 낭비를 줄이는 디자인 패턴입니다. 이는 전역 변수를 선언하여 여러 클래스에서 사용하는 것과 비슷한 개념으로, 자원을 공유하고 중복 코드를 제거할 때 사용하는 것입니다. 개발자가 알아두어야 하는 중요한 내용 중 하나입니다!
728x90
반응형