singleton1 [Java] Singleton LazyHolder는 왜 Thread safe 한가? Singleton 패턴에 대해 공부하다보면 쓰레드로부터 안전한 코드를 작성해야 한다는 이야기를 들어보셨을 것입니다. 그덕에 알게되는 여러가지 방법이 있습니다. Enum을 이용해 Singleton을 보장한다. synchronized 키워드를 메서드에 추가한다. synchronized 블럭을 lazy 생성 조건문 내부에 추가한다. 내부 정적 클래스를 구현하여 내부 클래스에서 생성된 인스턴스를 가져온다. 이 방법들 중에서도 1 ~ 3 번은 각각 단점들이 존재하여 현재는 잘 사용하지 않는 다고 알려져 있습니다. Enum 같은 경우는 상태 정보를 가질 수 없고 synchronized 키워드는 에러 혹은 성능저하를 동반한다. 덕분에 우리는 4번 내부 정적 클래스를 구현하여 내부 클래스에서 생성된 인스턴스를 가져온다.. 2022. 3. 16. 이전 1 다음