inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코딩으로 학습하는 GoF의 디자인 패턴

싱글톤 패턴 4부 - 안전하고 단순하게 구현하는 방법

싱글톤 생성 방법 중 enum 단점에 대해 질문있습니다.

816

김현우

작성한 질문수 2

2

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요~
우선 이런 좋은 강의를 제공해주셔서 정말 감사합니다.
싱글톤 생성 방법 중 enum으로 생성했을 시에 단점 중에 lazy initialization이 안된다고 말씀하셨는데요, 이 부분에서 궁금증이 있어서 질문 남깁니다.
 
예제에서 보여주신 enum 내의 INSTANCE 또한 클래스로딩 시점에 JVM의 static 영역에 변수가 등록되고, SettingsHolder와 마찬가지로 호출시점에 힙영역이 할당되면서 그때, static 영역내 변수에 해당 힙주소가 참조되는것으로 알고 있습니다, 그렇다면 이 부분도 lazy initialization이라고 볼 수 있는것 아닌가요?
혹시 제가 잘못알고 있는 부분이 있다면 알려주시면 감사하겠습니다 ㅜ

enum 싱글톤 디자인-패턴 java 단점

답변 2

3

백기선

보통 "지연 초기화"는 클래스로딩 시점에 만드는게 아니라, 처음 해당 인스턴스를 요청할 때, 그 때 만들어 지는 걸 말하는데요. 말씀하신대로, enum은 클래스로딩 시점에 만들어지니까 지연 초기화가 아니라고 말씀드린겁니다. 하지만, 사실상 해당 enum을 클래스로딩만 하고 구체적인 타입을 쓰지 않는 경우(예, EnumSet.allOf(Difficulty.class);) 는 거의 없으니까, 크게 고민하지 않아도 되는 단점입니다.

사실 지연 초기화를 장점으로 취급하려면 그만큼 무거운 객체여야 하는데, 대부분의 경우에는 지연 초기화 기법이 필요 없는 경우가 많으니 그 점에 대해서 그렇게 크게 신경쓰지 않으셔도 됩니다.

0

김현우

친절한 답변 감사합니다.

많이 사용되는 패턴의 순서를 정한다면 어떤 순서일까요?

0

111

1

@Builder에 대해 사소한 질문

0

52

1

default 기능이 있는 interface와 추상클래스의 차이

0

50

1

실무 코드에 디자인 패턴 적용 시의 '기준'에 대해 조언을 얻고 싶습니다.

0

42

1

데코레이터 패턴, before 가 O(2^n) 인 이유

0

42

0

혹시 다음강의는 언제쯤..

0

346

1

volatile 사용 이유에 대해서 여쭤보고 싶습니다!

0

616

3

Spring Security 의 ProviderManager (AuthenticationManager) 도 옵저버 패턴을 사용하고 있다고 볼 수 있을까요?

0

391

2

싱글톤 패턴을 깨트리는 방법

0

551

1

코드에 약간 오타가 있는거 같습니다.

0

430

1

싱글톤 (Singleton) 패턴 구현 방법 3 - 2번 퀴즈에 대해 질문이 있습니다.

0

568

2

안녕하세요, 강의 순서 질문드립니다.

0

685

1

스프링 시큐리티 WebSecurityConfigurerAdapter deprecated 대체 코드

0

2431

1

팩토리메소드 = 추상팩토리?

2

922

1

중재자 패턴에 관하여~

0

510

1

undo 메소드 작업중에서

1

365

1

익명클래스로 객체 생성시 의문점

0

586

1

mediator패턴에서 객체끼리 순환참조는 어떻게 해결해야할까요

0

479

1

객체간에 this를 넘기는 부분에 관련해 질문이 있습니다..

1

366

1

전략 패턴과 상태 패턴에 관련해서 질문이 있습니다.

0

283

1

플라이웨이트 패턴 3부에서 HashMap 동시성 질문입니다.

0

259

1

enum 이 이른 초기화 방법이 아니라는 것은,

0

505

1

해당 코드가 C# 에선 접근 관련 컴파일 에러가 뜹니다.

0

434

1

설계관련 궁금증이 있습니다.

0

327

0