1. 싱글톤 패턴이란 무엇이며 어떤 문제를 해결하려고 사용하는가?
- 오직 하나, 인스턴스, 전역 변수, 데이터베이스
답변: 싱글톤 패턴은 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고 객체의 유일한 인스턴스에 접근할 수 있는 방법을 제공합니다. 싱글톤 패턴은 주로 공유 리소스에 대한 일관된 접근 지점을 제공하거나, 시스템 전체에서 공유되어야 하는 설정 정보와 같은 경우에 사용됩니다. 예를 들어, 데이터베이스 연결이나 로그 파일 핸들러 같은 리소스에 대한 중복 생성을 방지하고, 메모리 사용을 최적화하는 데 유용합니다.
2. 싱글톤 패턴을 구현하는 방법에는 어떤 것들이 있나요?
답변: 싱글톤 패턴을 구현하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 private 생성자와 static 메소드를 사용하는 것입니다. 이 방법에서는 클래스 내에 static으로 유일한 객체 인스턴스를 참조하는 변수를 선언하고, 객체 인스턴스를 반환하는 public static 메소드를 제공합니다. 이 메소드는 객체 인스턴스가 아직 생성되지 않았으면 새로 생성하고, 이미 생성되었으면 기존의 인스턴스를 반환합니다.
3. 싱글톤 패턴의 단점은 무엇인가요?
답변: 싱글톤 패턴은 유용하지만 몇 가지 단점이 있습니다. 첫째, 싱글톤 인스턴스는 전역 상태를 만들기 때문에 코드의 결합도를 높일 수 있습니다. 이는 코드의 테스트와 유지보수를 어렵게 만들 수 있습니다. 둘째, 멀티스레드 환경에서 싱글톤 객체의 동기화를 잘못 관리하면 성능 저하나 데드락 같은 문제가 발생할 수 있습니다. 셋째, 싱글톤 패턴의 사용은 객체 지향 디자인 원칙 중 하나인 '개방-폐쇄 원칙(Open/Closed Principle)'을 위배할 수 있습니다. 이 원칙은 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하지만, 변경에는 닫혀 있어야 한다는 것을 의미하는데, 싱글톤 인스턴스는 이 원칙을 준수하기 어렵게 만듭니다.
'개발공부 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
[면접을 위한 cs 전공 지식 노트] 1장. 디자인 패턴과 프로그래밍 패러다임 - 팩토리패턴 질문 답변 모음 (4) | 2024.10.07 |
---|