public static final 필드를 이용한 싱글턴 구현 방식의 동작 원리와 장·단점을 설명하시오.
클래스 로딩 시 한 번만 실행되어 인스턴스를 생성하며, 간결하고 JVM 클래스 로더가 보장하는 스레드 안정성을 갖는다. 다만, 테스트용 가짜 객체로 교체하기 어렵고 애플리케이션 시작 시 불필요한 리소스가 할당될 수 있다.
정적 팩터리 메서드(getInstance)를 이용한 싱글턴 구현 방식이 public static final 필드 방식에 비해 갖는 유연성에 대해 설명하시오
getInstance() 내부 로직만 수정하면 API 호출부를 건드리지 않고도 반환 객체를 멀티톤, 스레드 별 인스턴스, 테스트용 가짜 객체 등으로 유연하게 변경할 수 있다.
열거 타입(enum)을 이용한 싱글턴 구현 방식의 주요 장점을 서술하시오
자바 언어 스펙상 enum은 직렬화 시에도 Instance가 보장되고 리플렉션으로 생성이 불가능해 완벽한 싱글턴을 제공한다. 별도 동기화 없이도 간결하게 구현할 수 있다.
'언어(java, kotlin, python ...)' 카테고리의 다른 글
| 자바의 체크 예외 vs 언체크 예외(with @Transactional) (0) | 2026.06.24 |
|---|---|
| [이펙티브 자바] 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 / 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (3) | 2025.07.30 |
| [이펙티브 자바] 아이템 02. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2025.07.28 |
| [이펙티브 자바] 아이템 01. 생성자 대신 정적 팩토리 메소드를 고려하라 (0) | 2025.07.25 |
| [Kotlin] 기본 문법 정리 (1) | 2025.03.27 |
